ТръмпСкрипт или да кодиш с песен. 10 шантави езика за програмиране

авг. 30, 2024 | Технологии

ТръмпСкрипт или да кодиш с песен. 10 шантави езика за програмиране

30 август 2024 | Технологии

Компютърен код, който прилича на готварска рецепта? Създаване на програми с помощта на… цветове или звуци? Езици за програмиране, вдъхновени от Шекспир, от Тери Пратчет и дори Доналд Тръмп? Ако човек излезе от утъпкания път, може да намери доста забавни и неочаквани щрихи в света на информационните технологии.

Езиците за програмиране са дори по-пъстри и интересни от човешките, те не се раждат „по естествен път“ в резултат от еволюция, а са резултат от желанието на създателите си да дадат ново средство на останалите. Достатъчно добро, за да превръща идеите им в компютърните програми, които днес движат света напред. Да, винаги ще ги има сериозните и полезните езици (например JavaScript, този, с който и аз си изкарвам хляба), онези, които се използват всеки ден и навсякъде около нас.

Но я има и другата страна – забавна, шантава, нестандартна.

„Езотерични“ се наричат програмните езици, които по една или друга причина са обречени да не станат популярни. Понякога те са създадени за това целенасочено, в други случаи просто разработчиците им не са се постарали достатъчно и са направили продукт, който няма как да стане масов. Така или иначе, винаги могат да ни изненадат. 10 примера за някои от най-шантавите езици за програмиране ще посрещнем на следващите редове.

 

1. Нека да побъбрим

Всеки може да си измисли поредица от команди, които компютърът да изпълни и нещо да се случи в резултат… За да говорим обаче за език за програмиране, най-честият критерий се нарича „цялостност по Тюринг“. Изпълняват го, макар и като съпътстващо явление, дори някои компютърни игри. И все пак това е универсалният критерий дали говорим за пълноценен език за програмиране. Този, който, съвсем накратко, може да изпълни списък с операции, които са в способностите на теоретичната машина на Тюринг (подробно обяснение ще намерите тук).

Именно такива езотерични езици ще търсим (с едно изключение). Не просто поредици от команди, а цялостни по Тюринг системи, които биха могли да създадат компютърно приложение…

Това съвсем не значи, че трябва да са сложни или с много възможности, както важи за „истинските“ им събратя в ежедневието. Това показва първият ни пример.

SmallTalk (от английски – „неангажиращ разговор“, но буквално „кратки приказки“) – така се казва един малък език с голяма история. Как може един език да е малък ли? Ето така, тук се е събрал на гърба на пощенска картичка:

 

smalltalk

 

През 70-те години трима инженери – Алън Кий, Дан Ингълс и Адел Голдбърг работят в лабораторията “Xerox PARC”. Смятат съществуващите по онова време програмни езици за ненужно усложнени, овъртолени, неудобни за учене. Така решават да създадат език, чийто пълен синтаксис се побира на салфетка.

Първоначалната идея е SmallTalk да се ползва от децата, които учат програмиране. Обаче се оказва толкова успешен, че през 1995 г. е вторият най-популярен обектно-ориентиран език след C++.

В началото на новото хилядолетие американските военни го използват за създаването на софтуер за военни симулации с повече от милион реда код. “JP Morgan” пишат на Smalltalk мащабната си система за анализиране на финансовия риск “Kapital”. Езикът се превръща в любим и за много други компании от финансовата сфера.

Smalltalk е все още тук и се смята, че има солидно бъдеще. Популярен е като подходящ избор за анализ на големи данни, за интернет на нещата и машинно самообучение. Просто най-неочаквано се е оказало, че понякога е достатъчно всичко да е… просто.

 

2. Патриотът програмист

Всички езици са на латиница, без английски е невъзможно да се учи програмиране… Ами, не е точно така (и не само защото днес можеш на български да помолиш ChatGPT да напише код). Езотеричните езици са доста разнообразни, макар, разбира се, в професионалната сфера, през последните няколко десетилетия английският да се наложи като лингва франка.

Има ли програмни езици на български? Ако на власт и у нас дойде патриотично управление, като нищо може да наложи решението държавният софтуер да се пише на български. За щастие, имаме решения. Ето един вариант: езикът „Лого“.

Да, името му го издава, той се използва основно за рисуване на изображения и е създаден през 80-те.

Можете да си го пишете в сивито, синтаксисът му е бърз за научаване. Основното му предназначение отново е да привлича към програмирането децата, които да рисуват по екрана, без да им се налага да знаят чужди езици. У нас през втората половина на 80-те се провеждат национални олимпиади по „Лого“, за да отсяват най-перспективните хлапета в информационните технологии.

Как изглежда кодът? Ще ви хареса. За да начертаете окръжност, трябва да напишете само:

 

повтори 360 (нп 1, нд 1)

край

 

В превод „нп“ ще рече „напред“, а „нд“ – „надясно“. По същия начин квадрат се чертае с:

 

повтори 4 (нп 10, нд 90)

край

 

3. Въздух… без налягане

В някои езици се спори колко да са отстъпите преди командата – два или четири, дали да се използва табулация или единично поле. В други, сред който най-популярен е Python, отстъпът по-скоро замества някои от скобите, за да подрежда йерархията от команди.

Има обаче и език…, който е просто и само празни пространства. Нищо повече. Очевидно защо, нарича се Whitespace и всичко в него се изчерпва с интервали и отстъпи.

Поради основната му характеристика… ще ни е малко трудно да ви го представим. И все пак не е невъзможно. Приемете, че S e единично поле, T – табулация:

 

S S S T S S T S S S

T

S S S S S T T S S T S T

T

Командите се отделят с нов ред с табулация, а това какво се изпълнява зависи от комбинацията на интервали и табулации.

 

4. Казано честно, всичко ми е ооокей

Технологиите и литературата не вървят ръка за ръка? Нищо подобно! Този език ще допадне на ценителите на фентъзито и Тери Пратчет. В Света на диска, те много добре знаят, всичко се случва върху гърбовете на четири слона, които пък се разхождат върху една огрооомна костенурка, Великата А’Туин.

В този свят има един магически университет, библиотекарят му е орангутан, който комуникира, като казва само „Окей“ с различна интонация.

Е, в нашия свят същият орангутан можеше да стане програмист благодарение на езика, вдъхновен от него и създаден от програмиста Дейвид Моран-Мар. Да, той уточнява: езикът е предвиден за употреба само от орангутани.

Оок – така се казва и има три команди:

Ook.

Ook!

Ook?

И… също е завършен език по Тюринг! Тоест, можете да правите с него почти всичко, което е позволено на всички днешни модерни езици за програмиране, а никой няма да ви пита дали наистина сте орангутан.

Оставяме ви за размисъл (и упражнение) програмата, която казва прословутото първоначално послание: Hello, world!

 

ook

 

И докато сме в литературния свят, понякога нещата могат да са много по-драматични. Буквално – ако изберете да програмирате на Shakespeare. В него направо може да се каже, че светът е сцена и всички сме актьори.

Имената на шекспировите герои са променливи, а дали числените стойности са положителни или отрицателни зависи от комбинацията на двама от героите в дадена сцена.

Ако например Хамлет е с отрицателна стойност, можете да включите и друг герой, който да го обиди и по този начин да промени знака пред числото. Можете да добавите входни и изходни данни, като в първия случай накарате някого да слуша сърцето си, а в другия – да изкаже мнението си. Шантаво, колкото си искате! Ето толкова:

 

shakespeare

 

Ето, дори да не знаете английски, вече можете да се похвалите, че разбирате основното за езика на Shakespeare…

 

5. Шеф програмист

Както пише Дъглас Адамс, в третия етап от развитието си всяка висша цивилизация стига до въпроса „Къде ще вечеряме?“. Е, програмистите отдавна са на това ниво, както личи от следващия ни гост. Chef е създаден още преди модата на телевизионните готварски риалитита и работата му е да помага в готвенето. Ето най-стандартната команда „Здравей, свят!“, на този език:

 

chef

 

Доста многословно, нали?

Но пък забавно, съставките са променливите, които се дефинират, а самата рецепта е функцията по отпечатване. Различните групи продукти са и типове променливи, които си взаимодействат при изпълнението/готвенето.

Идеята на езика? Да покаже на хората, които нямат техническо мислене, а са свикнали повече с рецептите на Гордън Рамзи или Пенка Чолчева, че програмирането е забавно.

Командата „Готово е за сервиране!“ изпълнява функцията.

 

6. #Нямампроизнасяне

Не ви съветвам да опитвате да произнесете името на езика 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 или… „СЛУЧАЕН_БЪГ_НА_КОМПИЛАТОРА“. Дори според официалната документация това се случва напълно случайно. Мислите, че този език е шега? Може, но пък отговаря на всички класификации за цялостност по Тюринг. Трябва само да сте достатъчно смели (и учтиви), за да изберете точно него.

 

7. Ток и жица

След литературата е време да надникнем в останалите изкуства. Музиката например често влиза в арсенала на програмистите – достатъчно е да споменем примера за джаза и различните версии на платформата WordPress.

Така стигаме до езика за програмиране Rockstar.

Искате да сте рокзвезда, но сте обикновен програмист? Няма проблем! Този език служи едновременно и за писане на текстове на песни. Да, тук няма толкова вежливост като при предишния ни герой или драматизъм, като при Шекспир, просто ток и жица:

 

rockstar

 

Създателите изрично обясняват, че оставянето на коментари в кода е силно нежелателно, всеки трябва да намери своя смисъл в рок поезията. Вие ще намерите ли смисъл в написаното по-горе?

 

8. Като на картинка

Стигаме до универсалния свят на изображенията. Тук обръщаме традиционната схема, която през последните години ни наложиха Midjourney и събратята му – човекът рисува, а компютърът се опитва да разбере какво трябва да направи. Този език се нарича Piet.

Създателят му Дейвид Морган-Мар използва като входни данни битови картини, които на пръв поглед приличат на случайни мацаници… или на модерно изкуство, преценете сами:

 

piet

 

Изпълнението на кода се прави точка по точка, все едно показалецът се движи по самата картина. Използват се 20 различни цвята, всеки от които е конкретна команда. Добавя се и различна яркост за съответните операции. Белите позиции не извършват операции, а черните за знак изпълнението на кода да спре. Езикът е кръстен на холандския модернист Питер (на английски Piet) Мондриан, а ако се чудите защо… ето една от най-известните картини на майстора:

 

mondrian

 

 

9. Мейк програминг грейт агейн

След като разбрахме на какви езици програмират музикантите, художниците и орангутаните, навлизаме в политиката, особено актуална в сегашната година на избори и политически вълнения.

След като се поуспокоихме, че алгоритмите няма да ни вземат (изцяло и поне засега) програмирането като човешка дейност е време… да направим програмирането велико отново!

TrumpScript (ако се абстрахираме от политическите му послания) не претендира да има общо дори с изискванията на Тюринг, но пък е забавен.

При него няма числа с плаваща запетая, а само цели, защото „Америка никога не прави нищо наполовина“. Всички числа трябва да са по-големи от 1 млн., защото малките са несъществени. Не са разрешени външни библиотеки, защото целият код трябва да е домашно американски. Вместо обичайните термини True (вярно) и False (невярно) се използват любимите на кандидат-президента fact (факт) и lie (лъжа).

Ще го пребъде ли езикът… предстои да разберем след 5 ноември

 

10. Ум патки пасе

Пропуснахме любопитни кандидати за този списък като ReMorse, използващ точки и тирета в духа на добре познатия от миналото морзов код; Taxi, при който кодът прилича на пътна карта (без непременно да е пълен с житейските напътствия, с които у нас свързваме тази професия) или ArnoldC, използващ само едносрични реплики от филми с Арнолд Шварценегер.

Целенасочено за накрая (с идеята, че вече сме изгубили детската аудитория) остана езикът със звучното название Brainf*ck, което няма да превеждам, но метафорично се отнася за умствена гимнастика.

Той е целенасочено труден, създаден така, че всяка елементарна задача да се превърне в предизвикателство за програмиста. Ежегодно се организират състезания, според почитателите му научиш ли се да пишеш код на него, след това ще си факир във всеки друг познат програмен език.

И всичко това… със само 8 команди, които отново са достатъчни, за да го направят цялостен по Тюринг. През 1993 г. Урбан Мюлер го разработва, докато следва физика, постепенно създанието заживява свой живот и си извоюва култов статус. За прословутото „Здравей, свят!“ е достатъчно да напишете:

 

++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.
<<+++++++++++++++.>.+++.——.——–.>+.>.

 

И така, какъв език за програмиране ще изберем днес, може би дори не е толкова важно. Колкото това имаме ли да кажем нещо смислено онлайн

Дигитални истории

Дигитални истории е и ще си остане изцяло некомерсиално начинание, на което посвещавам доста време и усилия. За създаването на сайта обаче са нужни определени разходи. Ако имате възможност и желание да подпомогнете сайта, вече можете да го направите. Разбира се, все така важна подкрепа си остава всяка добра дума, всяко споделяне на темите.

<a href="https://karamanev.me/author/georgik" target="_self">Георги Караманев</a>

Георги Караманев

Програмист, журналист и писател. Още за мен – тук.
Дигитални истории

Най-нови публикации:

Мистър Макгонигъл. Американският ирландец от България

Мистър Макгонигъл. Американският ирландец от България

„Опитвам се да изтръгна тази история от себе си, но коя страна ще я приеме?“ Дали историите си имат дом? От Бруклин ли започва тази, където се е родил нейният герой през 1944 г.? Или пък началото ѝ...

повече информация
„Трябва ни нещо много мощно, което да рестартира света. Дано не е война“

„Трябва ни нещо много мощно, което да рестартира света. Дано не е война“

„Технологията е като нож – зависи как я използваш.“ Често чуваме това клише. Според днешния ни гост обаче то изобщо не е вярно. Защото: Технологията не е неутрална. Технологията е средство на...

повече информация
„Живеем в света на преписването, на плиткото, на бързото“

„Живеем в света на преписването, на плиткото, на бързото“

На 21 г. той застава пред камерата на „По света и у нас“. 17 години по-късно си тръгва и преминава… в света на технологиите. Защото там вижда промяната, за която иска да допринесе. Там е бъдещето, в...

повече информация
„ИИ не е по-добър програмист от този, когото имате!“

„ИИ не е по-добър програмист от този, когото имате!“

„Както и да интегрираме ИИ, накрая всеки ред код трябва да бъде прочетен от човек.“   „Пълно безумие е да вярваме, че генерален ИИ може да бъде постигнат с големите езикови модели.“  ...

повече информация

Още публикации по темата:

От рубриката:

Литератрон. ChatGPT през… 1964 г.?!

Литератрон. ChatGPT през… 1964 г.?!

Чували ли сте за литератрона? Представлява… машина, която създава текст по указания на потребителя. Анализира текстове, пише бестселъри, съчинява предизборни речи, сглобява комикси и заплашва да сведе езика на медиите до 500 разрешени думи.
Нищо ново, нали вече всички си имаме ИИ, тези сюжети са ежедневие, само това „литератрон“ звучи малко ретро. А защо е така, става ясно, ако погледнем датата на корицата на една тънка книжка, която обаче не е пресилено да се нарече пророческа.
Романът „Литератрон“ на французина Робер Ескарпи излиза през 1964 г. в поредицата „Le Meilleur des mondes“.
Толкова ли обаче изобретението прилича на големите езикови модели?
Меко казано.

повече информация
Нямате работа?!

Нямате работа?!

Темата за работните места, които ИИ вече завзема, тепърва излиза на дневен ред. Как точно технологията ще промени професиите? Кого ще замени и какви нови поприща ще създаде? Ще остане ли изобщо работа за хората? Дали не е време да помислим за въвеждането на безусловен базов доход?

повече информация

Най-новите:

Литератрон. ChatGPT през… 1964 г.?!

Литератрон. ChatGPT през… 1964 г.?!

Чували ли сте за литератрона? Представлява… машина, която създава текст по указания на потребителя. Анализира текстове, пише бестселъри, съчинява предизборни речи, сглобява комикси и заплашва да сведе езика на медиите до 500 разрешени думи.
Нищо ново, нали вече всички си имаме ИИ, тези сюжети са ежедневие, само това „литератрон“ звучи малко ретро. А защо е така, става ясно, ако погледнем датата на корицата на една тънка книжка, която обаче не е пресилено да се нарече пророческа.
Романът „Литератрон“ на французина Робер Ескарпи излиза през 1964 г. в поредицата „Le Meilleur des mondes“.
Толкова ли обаче изобретението прилича на големите езикови модели?
Меко казано.

повече информация
Мистър Макгонигъл. Американският ирландец от България

Мистър Макгонигъл. Американският ирландец от България

„Опитвам се да изтръгна тази история от себе си, но коя страна ще я приеме?“
Дали историите си имат дом? От Бруклин ли започва тази, където се е родил нейният герой през 1944 г.? Или пък началото ѝ е през 1947 г., в събитията, чието описание започва с изречението по-горе? А с какво са толкова различни и толкова еднакви онези далечни времена с прехвърлилия първата си четвърт 21-и век?
Говорим си за Борисовата градина с Томас Макгонигъл, после той ми разказва за онзи ден през 60-те, когато най-неочаквано се озовава на софийската Централна гара. Картата с неумело прехвърлени на английски имена на улици се оказва неизползваема, затова той търси някой, който да го упъти. Влиза в първото магазинче, което попада пред очите му. Момичето зад щанда след време ще стане негова съпруга. А България ще се превърне в тема и на първия, и на най-новия му роман.
Защо е толкова лесно да се роди една любов и още по-лесно – да си отиде? Може ли човек да се влюби в държава? Томас Макгонигъл със сигурност обича България. Но… защо?

повече информация
„Трябва ни нещо много мощно, което да рестартира света. Дано не е война“

„Трябва ни нещо много мощно, което да рестартира света. Дано не е война“

Променя ли се световният ред без война? Кое може да е събитието, което да го направи днес? Как можем да ограничим властта на корпорациите, които се оказаха по-силни от държавите в епохата на технологиите?
„Технологията е като нож – зависи как я използваш.“
Често чуваме това клише. Според днешния ни гост обаче то изобщо не е вярно. Защото:
Технологията не е неутрална.
Технологията е средство на управление и манипулиране.
Технологията разкрива властови и йерархични структури.
Технологията създава монополи.
Йозеф Мюлбауер изследва най-ценното – мира. Макар да е австрийски политолог и журналист, учен от Университета в Грац, си говорим на български – майка му е предала езика ни. А темите за технологиите, мира и демокрацията, за преосмислянето на обществения договор, са толкова важни, че е крайно време да започнем истинския цивилизационен разговор за тях.

повече информация
Адриен Бачи. Поуките на Синята брада

Адриен Бачи. Поуките на Синята брада

Адриен обича да тича. И тича ли, тича по предприемаческия път, а и в истински маратон. Но най-вече тича срещу стереотипите. Ако го видите веднъж, ще го запомните, даже не е нужно да ви казвам с какъв детайл от характерната му визия.
Струва си да го запомните и защото историята му дава неподправено вдъхновение. Адриен Бачи живее в София от 18 години, развива успешна компания за компютърни игри, която дава работа на българи, осиновява българско момиче и е събрал много дигитални истории, които да ни разкаже. Ето ги!

повече информация
„Живеем в света на преписването, на плиткото, на бързото“

„Живеем в света на преписването, на плиткото, на бързото“

На 21 г. той застава пред камерата на „По света и у нас“. 17 години по-късно си тръгва и преминава… в света на технологиите. Защото там вижда промяната, за която иска да допринесе. Там е бъдещето, в което ще живеят трите му хлапета.
Спас Кьосев е сред най-разпознаваемите телевизионни лица, най-младият водещ на централните новини в историята на БНТ. Дълги години кара „БНТ такси“ в награждавано и смислено предаване, което даваше думата на всеки за важните теми от деня.
Толкова много неща има да обсъдим – за технологиите и журналистиката, за телевизията и четенето, за новината и публицистиката.
Хайде, качвайте се и вие в „Дигитални истории такси“! Безплатно е и винаги ще бъде!

повече информация
„ИИ не е по-добър програмист от този, когото имате!“

„ИИ не е по-добър програмист от този, когото имате!“

„Както и да интегрираме ИИ, накрая всеки ред код трябва да бъде прочетен от човек.“
„Пълно безумие е да вярваме, че генерален ИИ може да бъде постигнат с големите езикови модели.“
„Светът, такъв, какъвто го познавахме, е мъртъв и няма да се върне.“
На Иван Ванков – Гатака винаги може да се разчита за собствен, неортодоксален, провокативен и замислящ поглед към технологиите, ще се убедите от следващите редове.

повече информация
Share This