Czym jest Bosque, nowy język programowania od Microsoftu?

Czym jest Bosque, nowy język programowania od Microsoftu?

Czym jest Bosque, nowy język programowania od Microsoftu?

Historię języków programowania można przedstawić jako przecinające się trendy. Jeden z nich to coraz większa abstrakcja struktur danych – dzięki czemu programista nie musi się martwić np. o to, w jaki sposób reprezentowane są dane na poziomie sprzętowym.

Drugi z tych trendów to z kolei coraz większa możliwość reprezentacji logiki biznesowej i modelowania zjawisk rzeczywistych. To właśnie dzięki temu drugiemu trendowi mamy między innymi programowanie obiektowe, ale i… machine learning.

Pracujący dla Microsoftu Marc Marron zaprojektował i zaproponował w swoim artykule Regularized Programming with the BOSQUE Language kolejny krok w rozwoju języków programowania. Jest to odzwierciedlenie właściwie obu trendów, o których wspomniałem: Marron postanowił pozbyć się podstawowych struktur typu pętle czy iteracje. Dlaczego? Uważa, że są one przyczyną niespodziewanych problemów i nieprzewidzianego przez programistę zachowania pisanych programów.

Marron projektując Bosque (który inspirowany jest nieco składnią TypeScriptu), wskazał kilka innych źródeł problematyczności, między innymi mutowalność obiektów (możliwość zmiany ich cech bez tworzenia nowego), niedeterministyczne zachowanie oraz… porównania typów referencyjnych, czyli coś, do czego już w sumie każdy programista przywykł.

Bosque nie podąża więc za typowymi konwencjami, jakie reprezentuje większość języków programowania. Jednak spojrzenie na przykładowy kod umieszczony na GitHub pokazuje, że programista zaznajomiony chociażby z wyrażeniami Lambda, poradzi sobie z funktorami, które zastąpiły zwykłe pętle, bez problemu. To podstawa do możliwej adopcji nowego języka: musi on wyglądać tak, że uczący się go programista od razu zrozumie tworzone tam konstrukcje.

Jak sprawdzić samemu Bosque?

Bosque nie istnieje jedynie w teorii. Powstał też interpreter, który możemy zainstalować, mając zainstalowany menadżer pakietów npm. Znajdziemy go po sklonowaniu repozytorium języka z GitHub. Umożliwia on uruchamianie prostych programów napisanych w tym języku z linii poleceń. Istnieje też rozszerzenie dla Visual Studio Code, kolorujące składnię i wywołujące interpreter.

Po sklonowaniu repozytorium przechodzimy to katalogu ref_impl i wywołujemy:

npm install && npm run-script build && npm test

Interpreter powinien się zbudować i wywołać serię testów:

W katalogu src/test znajdują się przykładowe aplikacje, które możemy uruchomić za pomocą kolejnego skryptu:

node bin/test/app_runner.js src/test/apps/tictactoe/main.bsq

I po chwili możemy obserwować wynik działania aplikacji napisanej w Bosque:

Co dalej?

Implementacja nie jest jeszcze pełna – niektóre z elementów zaproponowanych w artykule Marrona jeszcze w niej brakuje. Jednak prawdopodobnie dzięki umieszczeniu źródeł na GitHub język będzie się rozwijał i wkrótce zapewne zobaczymy również dodatkowe narzędzia, umożliwiające pisanie części aplikacji w tym języku. Trudno oczywiście przewidzieć, jaka będzie reakcja ze strony programistów – jednak praktyka uczy nas, że każdy język znajduje sobie zwolenników i swoją niszę.

Dołącz do dyskusji