Brainfuck – dziwny, ale za to ciekawy język programowania
Świat języków programowania to nie tylko skomplikowane, zaawansowane technologie, które służą tworzeniu nowoczesnych rozwiązań i rozbudowanych aplikacji komercyjnych. Programowanie to także zabawa, czego idealnym przykładem jest jeden z najbardziej oryginalnych języków programowania – Brainfuck. Czym dokładnie jest Brainfuck i czym różni się od innych, dobrze nam znanych technologii?
Czym jest „Brainfuck”?
Minimalizm to trend, który z czasem nieco wychodzi poza dobrze znane nam ramy i przekrada się do absolutnie nieoczywistych obszarów życia. Również do branży IT. Doskonałym przykładem jest ezoteryczny język programowania o nazwie BrainFuck, znany także pod nazwami Brainf*ck, Brainf*** lub po prostu BF.
To technologia, która już w 1993 roku została zaprojektowana przez osobę znaną właśnie z minimalistycznego podejścia do życia – Urbana Müllera. Co wskazuje na minimalizm, który stanowił bazę do stworzenia tego innowacyjnego języka? Przede wszystkim liczba komend, która w całej technologii jest ograniczona do ośmiu. Tak, to prawda – jest to język, który w praktyce wykorzystuje następujące instrukcje:
- < – instrukcja przesunięcia w lewo
- > – instrukcja przesunięcia w prawo
- + – inkrementuj wartość komórki
- – – dekrementuj wartość komórki
- [ – znacznik rozpoczęcia pętli
- ] – wskaźnik zakończenia pętli
- . – instrukcja wyświetlanie znaku z danej komórki
- , – instrukcja wstawienia znaku do bieżącej komórki.
Czym jest maszyna Turinga i jak Brainfuck przeszedł jej test?
To, co może nas zastanawiać to sposób, w jaki tak prosty w mechanice język programowania, który w dużej mierze stanowi ciekawostkę programistyczną, był w stanie pomyślnie przejść legendarny Test Turinga?
Test Turinga to opracowany przez Alana Turinga algorytm, który miał za zadanie weryfikować, czy maszyna jest w stanie osiągnąć pełne kompetencje komunikacyjne, które imitują zachowanie ludzkie. Kluczowym aspektem Testu Turinga, znanego już od 50 lat XX wieku jest sędzia, którego zadaniem jest rozstrzygnąć, czy rozmowa została przeprowadzona przez maszynę, czy człowieka. Test Turinga na przestrzeni lat obrósł wieloma mitami, które stawiają znak zapytania nad zasadnością przeprowadzania takiego testu.
Bez względu na to, czy taka forma weryfikacji nam się podoba, czy nie, musimy przyznać, że Brainfuck złamał algorytm i pozytywnie przeszedł Test Turinga. W jaki sposób? Jest to związane z podstawowymi wymogami, jakie musi przejść każda technologia, która podchodzi do testu Turinga. Instrukcje warunkowe, pętle, nieskończona lub arbitralnie wykorzystywana pamięć, obsługa danych wejściowych i wyjściowych. Nawet tak prosta technologia, jak Brainfuck spełniła wszystkie te warunki, przechodząc pozytywnie test Turinga.
Jak wygląda program Hello World! w tym języku?
Popularny Hello World! to doskonale znana fraza, która stanowi początek przygody z nowym językiem programowania. Często to właśnie Hello World! stanowi efekt pierwszej, najbardziej podstawowej lekcji z podstaw pracy w danym języku. Jak Hello World wygląda w Brainfuck? Możemy z pewnością przyznać, że wygląda dość zaskakująco. By wydrukować procedurę “Hello World!”, musimy wykorzystać następującą instrukcję:
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.——.——–.>+.>.
Dla niewprawionego oka kod ten wygląda jak nic nieznaczący alfabet, który poprzecinany jest masą niezrozumiałych i nielogicznych znaków. W Brainfuck jest to jednak standard, dzięki któremu za pomocą grupy zaledwie kilku znaków możemy tworzyć ciekawy kod programistyczny.
Czy ten język może być czymś więcej niż ciekawostką?
Na przestrzeni lat specjaliści IT i inżynierowie zaprojektowali setki języków programowania. Ich klasyfikacja już kilkanaście lat temu stanowiła duże wyzwanie, dlatego jednym z najczęstszych rozróżnień, które funkcjonują w branży, jest podział na języki konwencjonalne oraz języki ezoteryczne.
Języki konwencjonalne to technologie powstałe w celu przygotowania kompleksowego, złożonego kodu, który dzięki swoim cechom umożliwi wytworzenie i rozwój oprogramowania, systemu lub aplikacji. Java, Python, C++ czy nawet JavaScript stanowią przykłady tego typu technologii.
Czym zatem są języki ezoteryczne? To języki, które w żadnym wypadku nie skupiają się na tym, by zapewnić programistom warunki do tworzenia nowych, lepszych, bardziej skomplikowanych rozwiązań IT. To ciekawostki, które mają pobudzić specjalistów IT i programistów do umysłowego wysiłku, zabawy i konkurowania między sobą w warunkach zdrowej rywalizacji. Nie możemy zatem spodziewać się, że język, złożony w praktyce z ośmiu znaków będzie miał jakiekolwiek zastosowanie w biznesie, nie mówiąc już o konkurowaniu z technologiami takimi jak Python czy Java. Jaki werdykt? Brainfuck to zdecydowanie forma ciekawostki, nad którą możemy spędzić nieco wolnego czasu.
Podsumowanie – po co nam ten język?
Po co nam w ogóle taki język jak Brainfuck? Oprócz takich specyficznych technologii jak Lolcode, Ook!, czy Malbolge to właśnie Brainfuck stanowi jeden z najpopularniejszych wśród programistów języków ezoterycznych, których zadaniem nie jest rozwiązywanie branżowych problemów, a raczej stanowią intelektualne wyzwanie dla tych specjalistów, którzy lubią poznawać nowe języki programowania, bawiąc się przy tym jednocześnie i poszerzając horyzonty.
Brainfuck to język, z którym warto się zapoznać, w którym warto rozwiązać kilka zadań i pamiętać o tym, że IT wcale nie musi być nudne i skupiać się jedynie na poważnych problemach.
Porozmawiajmy!
a my pomożemy Ci wdrożyć najnowsze rozwiązania!