Ezoteryczne języki programowania
Prowadzący: Michał Radwański
Opis
Nie każdy język programowania ma takie same założenia projektowe. Niektóre mają być szybkie, inne bezpieczne, inne proste, jeszcze inne wyewoluowały bez konkretnego designu. Jest też jeszcze inna grupa języków, z bardzo konkretnym, aczkolwiek niepraktycznym celem.
An esoteric programming language, or esolang, is a computer programming language designed to experiment with weird ideas, to be hard to program in, or as a joke, rather than for practical use.
Esolang wiki
Na warsztatach poznamy na przykładach jak mogą takie języki wyglądać. Odkryjemy tworzące je pomysły (każdy się w końcu na jakimś opiera).
Wzbogaceni o idee, stworzymy własne projekty i własne doń interpretery.
Pomimo, że nie było to pierwotnym założeniem tworzenia języków ezoterycznych, duża część społeczności zajmująca się tworzeniem takich, zajmuje się także tak zwanym golfowaniem kodu - jest to optymalizacja programów nie pod kątem ich szybkości, czy też użycia pamięci, ale pod kątem ich rozmiaru, pliku źródłowego - zaskakująco, nie zawsze jest to plik tekstowy! Po prawej jest program przybliżający liczbę Pi w języku Piet. Dlatego, o ile czas pozwoli, odbędą się zawody w golfowaniu w nowo powstałych językach - jest to zaskakująco odprężające zajęcie!
Wymagania
- komputer
- należy umieć programować w dowolnym języku, aczkolwiek z ograniczoną ilością jestem w stanie pomóc - ja będę pokazywał przykłady w Pythonie
Przydatne zasoby
Internetową encyklopedią zbierającą informacje o ezoterycznych językach jest https://esolangs.org
Społeczność związana z golfowaniem kodu zbiera się na https://codegolf.stackexchange.com