Czym jest Mondrian i dlaczego warto go poznać
Mondrian to ezoteryczny język programowania (esolang) inspirowany sztuką geometryczną Pieta Mondriana. Program w Mondrian wygląda jak obraz — prostokąty w różnych kolorach, ułożone w siatkę, gdzie każdy kolor i rozmiar prostokąta ma znaczenie programistyczne. To język, w którym kod jest dosłownie sztuką wizualną, a programowanie przypomina komponowanie abstrakcyjnego obrazu.
Mondrian należy do kategorii języków ezoterycznych, które nie zostały stworzone do praktycznego użytku, ale do eksploracji konceptów, łamania konwencji i zabawy. W świecie, gdzie większość języków optymalizuje się pod kątem produktywności i czytelności, Mondrian idzie w zupełnie odwrotnym kierunku — optymalizuje pod estetykę wizualną i intelektualną ciekawość.
Warto go poznać, bo ezoteryczne języki jak Mondrian uczą myślenia o programowaniu z zupełnie nowej perspektywy. Kiedy próbujecie napisać prosty algorytm jako kompozycję kolorowych prostokątów, zaczynacie rozumieć, jak wiele konwencji w “normalnych” językach jest arbitralnych. To poszerza horyzonty i daje świeży взгляд na to, czym w ogóle jest program.
Krótka historia i ewolucja
Mondrian został stworzony w 2011 roku przez Mike’a Wortha i Bena Russella jako projekt eksperymentalny. Inspiracja była oczywista — obrazy Pieta Mondriana z ich charakterystycznymi prostokątami w kolorach czerwonym, żółtym, niebieskim, białym i czarnym, oddzielonymi czarnymi liniami. Twórcy zadali sobie pytanie: co jeśli te obrazy byłyby programami?
Język nigdy nie wyszedł poza fazę eksperymentu. Nie ma dużej społeczności, nie ma konferencji, nie ma ecosystemu. Ale zyskał pewną rozpoznawalność w świecie esolangów — pojawia się na esolangs.org (wiki poświęconej językom ezoterycznym) i jest regularnie wspominany w artykułach o najdziwniejszych językach programowania.
Mondrian nie ewoluował znacząco od swojego powstania. Istnieje kilka implementacji interpretera, głównie jako projekty hobbystyczne na GitHubie. To typowe dla esolangów — większość z nich to jednorazowe eksperymenty, które spełniają swoją rolę w momencie powstania i nie potrzebują dalszego rozwoju.
Kluczowe cechy i filozofia
Mondrian jest językiem wizualnym — program to obraz składający się z prostokątów. Każdy prostokąt ma kolor, który determinuje typ operacji: czerwony to operacje arytmetyczne, niebieski to operacje na stosie, żółty to I/O, biały to separatory, a czarne linie to granice między blokami kodu. Rozmiar prostokąta określa wartość — większy prostokąt to większa liczba.
Program wykonuje się przez “czytanie” obrazu w określonej kolejności — zwykle od lewej do prawej, od góry do dołu, jak tekst. Interpreter skanuje obraz, identyfikuje prostokąty, ich kolory i rozmiary, a następnie wykonuje odpowiadające operacje. To sprawia, że debugowanie Mondrian to dosłownie patrzenie na obraz i próba zrozumienia, co autor miał na myśli.
Paradygmat Mondrian jest stack-based — operacje wykonują się na stosie, podobnie jak w Forth czy PostScript. Wartości są pushowane na stos, operacje pobierają argumenty ze stosu i umieszczają na nim wyniki. To naturalny model dla języka wizualnego, bo prostokąty mogą reprezentować zarówno dane, jak i operacje.
Filozofia Mondrian to “kod jako sztuka”. Nie chodzi o efektywność, produktywność ani nawet czytelność. Chodzi o to, żeby programowanie było formą ekspresji artystycznej. Program w Mondrian może być wydrukowany i powieszony na ścianie — i nikt nie musi wiedzieć, że to działający kod.
Gdzie Mondrian sprawdza się najlepiej
Mondrian nie “sprawdza się” w tradycyjnym sensie — to nie jest narzędzie do rozwiązywania problemów biznesowych. Ale ma swoje nisze. Po pierwsze, edukacja — Mondrian jest świetnym narzędziem do nauki konceptów programowania w sposób wizualny i angażujący. Studenci, którzy boją się “prawdziwego” kodu, często czują się komfortowo z kodem-obrazem.
Po drugie, sztuka generatywna i digital art. Artyści cyfrowi używają Mondrian jako medium — tworzą obrazy, które są jednocześnie estetycznymi kompozycjami i działającymi programami. To forma “code poetry” — kodu, który ma wartość artystyczną niezależnie od tego, co robi.
Po trzecie, code golf i programistyczne wyzwania. Społeczność esolangów uwielbia wyzwania typu “napisz FizzBuzz w Mondrian” albo “zaimplementuj sortowanie bąbelkowe jako obraz”. To ćwiczenia intelektualne, które rozwijają umiejętność myślenia algorytmicznego w nietypowych ograniczeniach.
Jak wygląda kod w Mondrian
Kod w Mondrian to obraz, więc “przykład kodu” to opis kompozycji. Oto program, który dodaje dwie liczby i wypisuje wynik:
+-------------------+----------+
| | |
| CZERWONY (3) | ŻÓŁTY |
| push 3 | print |
| | |
+----------+--------+----------+
| | |
| CZERWONY | NIEBIESKI |
| push 2 | add |
| | |
+----------+-------------------+
Czerwony prostokąt o rozmiarze 3 pushuje wartość 3 na stos. Drugi czerwony prostokąt (rozmiar 2) pushuje 2. Niebieski prostokąt wykonuje operację add (pobiera dwie wartości ze stosu, dodaje, wynik na stos). Żółty prostokąt wypisuje wartość ze stosu na wyjście.
W praktyce, program Mondrian tworzycie w edytorze graficznym lub generatorze, a interpreter czyta plik obrazu (PNG, BMP) i wykonuje go. Nie piszecie tekstu — malujecie kod.
Ekosystem i narzędzia
Ekosystem Mondrian jest minimalny — to esolang, więc nie oczekujcie frameworków ani package managerów. Istnieje kilka implementacji interpretera: oryginalna w Pythonie, kilka w JavaScript (pozwalających uruchamiać Mondrian w przeglądarce) i jedna w C. Wszystkie są open source na GitHubie.
Narzędzia do tworzenia programów Mondrian to głównie edytory graficzne. Niektórzy używają zwykłego Painta lub GIMP-a, inni piszą generatory, które tworzą obrazy Mondrian z opisu tekstowego. Istnieje prosty webowy edyor Mondrian, który pozwala rysować prostokąty i od razu widzieć wynik interpretacji.
Społeczność Mondrian to w zasadzie podzbiór społeczności esolangów. Esolangs.org wiki, Reddit r/esolangs i Discord esolang servers to miejsca, gdzie można znaleźć innych entuzjastów. Nie ma konferencji, książek ani kursów — to czysta zabawa i eksploracja.
Mocne i słabe strony
Mocne strony: unikalność, wartość artystyczna i edukacyjna. Mondrian jest piękny — programy wyglądają jak dzieła sztuki, co czyni go idealnym do prezentacji, warsztatów i wprowadzania ludzi w świat programowania. Ograniczenia języka wymuszają kreatywne myślenie i dają satysfakcję, gdy uda się rozwiązać problem w tak nietypowym formacie.
Słabe strony: Mondrian jest kompletnie niepraktyczny. Napisanie czegokolwiek poza trywialnymi programami jest niezwykle trudne i czasochłonne. Debugowanie jest koszmarem — błąd w programie to piksel w złym kolorze albo prostokąt o rozmiarze 5 zamiast 6. Nie ma narzędzi do refaktoryzacji, testowania, profilowania — nic z tego, co czyni programowanie zarządzalnym.
Język jest też niejednoznaczny — różne implementacje interpretera mogą inaczej interpretować te same obrazy, szczególnie na granicach prostokątów i przy anti-aliasingu. To dodaje kolejny poziom trudności.
Podsumowanie
Mondrian to język dla ciekawskich — dla tych, którzy chcą zobaczyć programowanie z zupełnie innej strony. Artyści cyfrowi, edukatorzy, entuzjaści esolangów i wszyscy, którzy lubią intelektualne wyzwania, znajdą w Mondrian coś fascynującego. Nie nauczycie się tu praktycznych umiejętności, ale nauczycie się myśleć o kodzie w nowy sposób.
Przyszłość Mondrian jest taka sama jak większości esolangów — pozostanie niszową ciekawostką, inspiracją i narzędziem do eksploracji. I to jest w porządku. Nie każdy język musi zmieniać świat. Czasem wystarczy, że sprawia, że patrzycie na prostokąty i myślicie: “a co jeśli to jest program?”

