Езиците за програмиране са дори по-пъстри и интересни от човешките езици… защото не са се раждали „по естествен път“, създавани са не от натуралната еволюция, а от желанието на човек или група програмисти да дадат нова парадигма на останалите. Да, винаги ще ги има сериозните и полезните, онези, които ще се търсят на пазара на труда още десетилетия (опитали сме се да ги съберем тук). Но я има и другата страна, забавна, шантава, нестандартна.
„Езотерични“ са онези програмни езици, които по една или друга причина са обречени да не станат популярни. Понякога те са създадени за това целенасочено, в други случаи просто разработчиците им не са се постарали достатъчно и са направили продукт, който няма как да стане масово приложим. Така или иначе, винаги могат да ни изненадат. Пет такива примери на шантави езици за програмиране сме ви събрали на следващите редове. Нека се позабавляваме и почудим заедно.
1. #Нямампроизнасяне
Не ви съветвам да опитвате да произнесете това име, първият ни герой е с мелодичното име “CLWNPA”. На български? Дадено! „Сиелдабълюенпией“.
Какво обаче има да ни каже тома словосъчетание? Compiler Language With No Pronounceable Acronym, „компилиран език с непроизносим акроним“. Създаден е през далееечната 1972-а и въпреки че името му е толкова яко, става популярен с доста по-скучното название INTERCAL.
Още нещо, с което ще го запомните. Това е доста учтив език. Вместо да се занимава с това да казва, че нещо е функция, той учтиво отбелязва следния код:
PLEASE DO ,10 <- #1
PLEASE DO ,10SUB#1 <- #176
PLEASE DO ,11 <- #30
PLEASE DO ,11SUB#1 <- #76
DO ,11SUB#2 <- #190
(По-дълъг пример ще намерите тук.)
„Моля те, компютре“ и после следва побитова операция за това, което трябва да се направи. Сякаш още в добрата стара 72-а някой е подозирал, че днес ще сме толкова зависими от компютрите и ще трябва да сме толкова учтиви с тях.
Разбира се, задължително е да отбележим, че този език за програмиране идва от едни съвсем различни времена, когато масово използваните езици далеч не са като днешните. Кодът, предназначен за компютри, изглежда доста повече като такъв. Съответно не е особено четим и разбираем, така че да улеснява разработчиците, което е доста по-важно и успешно изпълнено в днешните програмни езици.
И все пак… Програмистите са неучтиви, процесорът не се церемони с вежливости, някак, хубаво си е да знаеш, че има и един такъв езотеричен език, където нещата се случват толкова вежливо… Вярно, всички сме чували програмист да се моли това, което очаква, да се изпълни, след като проектът му се задейства, но може би просто… трябва да започне с това и нещата ще тръгнат по-лесно.
Интересно е обаче за какво точно служи командата “PLEASE“. Ако не сте достатъчно вежливи да я използвате от време на време, компилаторът работи под особен, значително по-бавен и прецизен режим. Ако пък я слагате на всеки ред, отново компилаторът налага ограничения.
Този език понякога се случва просто да ви „гръмне“ с грешка E774 или „СЛУЧАЕН_БЪГ_НА_КОМПИЛАТОРА“. Дори според официалната документация това се случва напълно случайно. Но пък можете да избегнете тази грешка, като добавите по време на компилирането флаг “-b”.
Мислите, че този език е шега, която не служи за нищо?
Може, но пък отговаря на всички класификации за завършеност по Тюринг. Трябва само да сте доста смели (и учтиви), за да изберете точно него.
2. Патриотът програмист
Всички езици са на латиница, без английски е невъзможно да се учи програмиране… дрън-дрън. Всъщност, има езотерични езици на всякакви езици, просто през последните няколко десетилетия английският се наложи като лингва франка в тази област.
Обаче, ако на власт и у нас дойде някое по-патриотично управление, като нищо може да наложи решението държавният софтуер да се пише на български.
За щастие, имаме решения. Е, повечето ще ни позволяват да изрисуваме някое кръгче на екрана, няма да са пълна алтернатива на JavaScript, но пък то и колко е нужно, за да се покрият изискванията на държавни проекти.
Ето, безплатно им даваме един вариант: езикът „Лого“.
Да, името му го издава, той се използва основно за рисуване на изображения и е създаден през 80-те.
Можете да си го пишете в сивито, синтаксисът му е доста бърз за научаване. Основното му предназначение е да привлича към програмирането децата, които да могат да се учат да рисуват по екрана, дори без да им се налага да знаят чужди езици. У нас през втората половина на 80-те дори се провеждат национални олимпиади по „Лого“, за да отсяват най-перспективните хлапета в информационните технологии.
Искате да видите как изглежда кодът? Ще ви хареса. За да начертаете окръжност, трябва да напишете само:
повтори 360 (нп 1, нд 1)
край
В превод „нп“ ще рече „напред“, а „нд“ – „надясно“. По същия начин квадрат се чертае с:
повтори 4 (нп 10, нд 90)
край
3. Въздух… без налягане
В някои езици се спори колко да са отстъпите преди командата – например два или четири, дали да се ползва табулатор или спейсове. В други езици, сред който най-популярен, разбира се, е Python, отстъпът по-скоро замества някои от скобите, за да подрежда йерархията от команди.
Има обаче и език… който целият е просто и само празни пространства. Нищо повече. Очевидно защо, нарича се Whitespace и всичко в него се изчерпва с интервали и отстъпи.
Поради основната му характеристика… ще ни е малко трудно да ви го представим. Ще го оставим на въображението ви, достатъчно е да знаете, че отделните команди се отделят с нов ред с табулация, а това какво се изпълнява зависи от комбинацията на интервали и табулации на всеки друг език.
4. Казано честно, всичко ми е оокей
Този език ще допадне на ценителите на фентъзито и конкретно на Тери Пратчет. В Света на диска, те много добре знаят, всичко се случва върху гърбовете на четири слона, които пък се разхождат върху една огрооомна костенурка, Великата А’Туин.
Е, в този свят има и един магически университет, където библиотекарят е орангутан, който комуникира, като като казва „Окей“ с различна интонация.
Е, в нашия свят същият орангутан можеше да стане и програмист благодарение на езика, вдъхновен от него и създаден от програмиста Дейвид Моран-Мар. Да, той уточнява: езикът е предвиден за употреба само от орангутани.
Има три команди:
Ook.
Ook!
Ook?
И… също е завършен език по Тюринг. Тоест, можете да правите с него почти всичко, което е позволено на всички днешни модерни езици за програмиране, а никой няма да ви пита дали наистина сте орангутан.
Оставяме ви за размисъл (и упражнение) програмата, която казва прословутото първоначално послание: Hello, world!
Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook.
Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook?
Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook.
Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook.
5. Шеф програмист
Изпращаме ви с мисъл за обяд с петия език в шантавата на колекция.
Chef е създаден още преди модата на телевизионните готварски реалитита и работата му е… да помага в готвенето. Ето и същата команда, „Здравей, свят!“, на този език:
Малко многословно, нали?
Но пък забавно, защото съставките всъщност са променливите, които се дефинират, а самата рецепта е функцията по отпечатването. Различните типове продукти са и различен тип променливи, които си взаимодействат при изпълнението/готвенето.
Идеята на езика? Да покаже на хората, които нямат техническо мислене, а са свикнали повече с рецептите на Гордън Рамзи или Пенка Чолчева, че програмирането е забавно.
Командата „Готово е за сервиране!“ изпълнява функцията.
И така, ако е време за обяд: бон апети!
Ако пък забавните езици ви вдъхновиха да се зачетете повече за това как да започнете с програмирането, още информация ще намерите за фронтенда тук, за бекенда – тук.
И накрая, ако пък програмирането ви е достатъчно любимо занимание и търсите място, където да покажете уменията си, идва ред на нашия хостинг. Опитайте го напълно безплатно и без ограничения във времето тук. Приятно готвене… тъй, де, кодене!