6 najdziwniejszych języków programowania w historii IT

6 najdziwniejszych języków programowania w historii IT

Ktoś, kto powiedział, że przy programowaniu nie ma zabawy, z pewnością nie wiedział co mówi. Autorzy poniższych języków programowania potrafili połączyć przyjemne z pożytecznym i na kanwie szalonych pomysłów, stworzyli kody źródłowe, których składnia nie ma nic wspólnego z klasycznymi językami programowania, a mimo tego, może być wykorzystywana przy tworzeniu programów, komend i poleceń. Przed Wami 6 wyjątkowych języków programowania, które brzmią  i wyglądają nieco niepoważnie, ale za to całkiem poważnie działają: 

LOLCODE

Weteranem spośród specyficznych języków programowania jest niewątpliwie LOLCODE, język programowania stworzony w 2007 roku przez Adama Lindseya. Inspiracją do powstania tego języka, był Lolcat – zabawa, popularna swego czasu na forach internetowych, takich jak np. 4chan, która polega na tworzeniu memów, zawierających obraz kota, z zabawnym podpisem oraz nieprawidłową składnią, wraz z celowymi błędami w zapisie poszczególnych słów. 

To właśnie nietypowy zapis treści memów stał się podstawą języka LOLCODE, bowiem komendy pisane są slangiem i jeśli jest on zrozumiały dla odbiorcy, wystarczy do odczytania składni LOLCODE. Poniżej przykład zapisu “Hello World” w LOLCODE:

HAI – “Hello”

CAN HAS STDIO? – Odpowiada za załadowanie bibliotek z dodatkowymi funkcjami

VISIBLE “HAI WORLD!” – Odpowiada za widoczność tekstu

KTHXBYE – Komenda kończąca każdy program

Co ciekawe, język LOLCODE nadaje się do powszechnego użycia, ze względu na swoją komplementarność. W sieci można także znaleźć sporo tutoriali, dedykowanych różnym elementom LOLCODE. 

ARNOLD C

ARNOLD C to język programowania inspirowany…prawdziwym bohaterem. Nazwa pochodzi od imienia odtwórcy głównej roli w kultowej już serii “Terminator”, Arnolda Schwarzeneggera, a składnia języka zawiera cytaty pochodzące wyłącznie z tych filmów. Zatem jeśli jesteś za pan brat z historią o żądnym krwi androidzie, powinieneś także bez problemu zrozumieć w jaki sposób koduje się “Hello World” w ARNOLD C:

IT’S SHOWTIME

TALK TO THE HAND “hello world”

YOU HAVE BEEN TERMINATED

Do tego przykładu chyba nie potrzeba tłumaczenia, prawda? A dla wszystkich chętnych, którzy jeszcze nie znają kultowych tekstów z Terminatora, polecamy zbiór tych najlepszych, oczywiście w ramach nauki nowej technologii i poszerzania horyzontów: https://www.radiotimes.com/movies/arnold-schwarzenegger-quotes/

WHITESPACE

Whitespace opiera się na znakach, które reprezentują niewidoczne odstępy na stronie, czyli na spacjach, tabulatorach, lub nowych wierszach. Każde inne polecenie, czy znak są ignorowane. Ale jak to właściwie działa? Whitespace korzysta z kodu binarnego do reprezentowania danych ze spacjami jako zerami i tabulatorami jako jedynkami. Tak więc na przykład sekwencja tab-tab-tab-space-space przekłada się na 1100 w systemie dwójkowym lub „12” w systemie dziesiętnym. Ze względu na swoją specyfikę, oraz fakt, że do stworzenia klasycznego “Hello World” w Whitespace konieczne jest użycie niemal 1000 niewidocznych znaków, język ten, sam w sobie nie jest zbyt użyteczny, stanowi raczej coś w rodzaju ciekawostki programistycznej. 

VELATO

VELATO to język programowania, który został napisany przy użyciu plików MIDI. Pliki dźwiękowe pełnią w tym przypadku zarówno rolę utworu muzycznego, jak i komend programistycznych. Kluczowe w przypadku tego zapisu są wysokości nut i wielkości odstępów między nimi. Zapis “Hello World” w języku VELATO wygląda tak:

Źródło: http://velato.net/Language/HelloWorld/

reMORSE

Jak już można zauważyć, twórcy specyficznych języków programowania zazwyczaj czerpią inspirację z już istniejących elementów kultury czy nauki. W tym przypadku nie jest inaczej – jak można wnioskować z nazwy, reMORSE jest oparty na założeniach języka Morse’a. Istnieją w nim tylko cztery komendy: kropka (.), Kropka (.I spacja), myślnik (-) i kreska (- i spacja). Specyfikacja reMORSE jest niepełna, ponieważ sam autor jej nie ukończył. 

Na przestrzeni lat powstały odmiany języka reMORSE w postaci: reMorse2, reMorse2.- i reMorse4ever, które miały za zadanie wypełnić luki w pierwotnej wersji tego języka, niestety żadna z nich nie jest postrzegana jako kompleksowy, gotowy do potencjalnego wykorzystania, kod. Poniżej, zapis “Hello World” w reMORSE:

– – – ..- …-.—.;newline

– – – .-. – ..-.- …-. —.;!

– – – …- . . -.—.;d

—-. . . -.—.;l

—-. . -…—.;r

—-. -…—.;o

—-…-.- ..-. —.;W

//author didn’t feel like doing this part

-…………..;output all characters

SHAKESPEARE

SHAKESPEARE to język programowania, który ma za zadanie sprawiać wrażenie, że jest wszystkim, tylko nie kodem źródłowym. Dlatego też, na pierwszy rzut oka, SHAKESPEARE wydaje się wyłącznie sztuką dramatyczną, a to dlatego, że jest zbudowany wyłącznie z aktów, scen i postaci, czyli elementów, które zwyczajowo tworzą dramat. Brzmi jak szaleństwo? Zdecydowanie tak, ale w tym szaleństwie jest metoda. 

W języku SHAKESPEARE, bohaterowie przyjmują rolę zmiennych, z kolei ich wypowiedzi, traktowane są jako wyrażenia o zmiennych wartościach. Pytania, zadawane sobie wzajemne przez postaci, to instrukcje warunkowe, natomiast wartości określają przymiotniki i rzeczowniki. Poza ewidentnym odwróceniem konwencji, charakterystyczne w języku SHAKESPEARE jest to, iż programy w nim pisane są bardzo długie. Poniżej fragment “Hello World”: 

To tylko mała próbka najdziwniejszych instrukcji “Hello World” na świecie – w sieci możecie znaleźć ich dużo więcej, a my wybraliśmy te, naszym zdaniem, najciekawsze. Zważywszy na to, że branża IT rozwija się w zawrotnym tempie, na świecie istnieje około 7 000 języków programowania, a w czasie gdy czytasz ten artykuł, powstały pewnie już trzy lub cztery nowe javascriptowe frameworki, takie drobne, dowcipne odstępstwa od normy nie stanowią żadnej przeciwwagi dla “poważnego” programowania. My jednak uważamy, że są potrzebne, bo wskazują, jak można bawić się kodowaniem i tworzyć coś, co może i nie jest specjalnie użyteczne, za to odsłania tę żartobliwą i humorystyczną stronę branży IT, o której tyle się mówi, a zdecydowanie zbyt rzadko pokazuje.