ТръмпСкрипт или да кодиш с песен. 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>

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

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

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

„Днес можем да сме всичко, а избираме да сме еднакви“

„Днес можем да сме всичко, а избираме да сме еднакви“

Можете ли да различите 15 детски рисунки от 15 изображения, генерирани от изкуствен интелект? Предизвикателството за деца и родители на Дигитални истории за броени дни провокира над 2500 души да...

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

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

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

Кой говори – човек или алгоритъм?

Кой говори – човек или алгоритъм?

Не е новина, че ИИ генерира изображения и текстове, които (проверено!) не могат да бъдат различени от създадените от човека. Видеото като че ли все още изостава, но… Можете ли да си представите глас, неразличим от човешкия, който да чете новините? Или да ви се обади по телефона, без да има никакъв шанс да го различите? Не говорим за популярното решение гласът да бъде клониран, а за напълно изкуствено създаден, който обаче е толкова убедителен. При това на чист български, който е почти невъзможен за човек, чийто роден език не е!
Време е за една звучна Дигитална история. А какво предизвикателство ви очаква след това…

повече информация
Колко изкара ИИ на матура?

Колко изкара ИИ на матура?

Какво ще стане, ако изпитаме на матурата по български език и литература три от най-мощните модели изкуствен интелект? Усилията им ще оценят двама опитни проверители на истинските зрелостни изпити. За да е състезанието още по-оспорвано и показателно, включваме двама реални зрелостници и мен, автора на тези редове.
Ще изкарат ли пълни шестици ChatGPT, Claude и Gemini, или ще се провалят с гръм и трясък?
Ще разпознаят ли учителите коя от работите е на изкуствен интелект и коя – на човек?
Кой ще получи най-високата и кой – най-ниската оценка?
Какво ще ни кажат резултатите и за най-показателния изпит в българското образование, и за напредъка на алгоритмите, и за големите въпроси, с които идват новите технологии?

повече информация
Останете любопитни!

Останете любопитни!

Кой е родният град на Яворов? Свищов.
Изхалюцинирал го е изкуственият интелект, доста некадърно, ще предположите. Само че не беше той, казах го аз, участвайки в телевизионно предаване в праймтайма на най-старата българска телевизия. Бих предположил, че е по-вероятно да не позная собственото си име, а не родното място на един от хората, чиято история ме вълнува цял живот. Обаче го сбърках и скоро няма да ходя в Чирпан.
Знанието не е даденост. Любопитството не идва само, а иска усилие.
Има ли обаче смисъл да помним къде е роден Яворов във времената, когато можем да го проверим за части от секундата?
Щеше ли да пише различни стихове, ако беше от Свищов?
Ще знаят ли следващите поколения къде е роден, как е писал? От какво се е вълнувал, къде и как е срещнал любовта?
Ако решите, питайте ChatGPT. Или Конституционния съд.
А моят личен отговор гласи: днес е по-важно отвсякога да останем любопитни!

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

Най-новите:

Кой говори – човек или алгоритъм?

Кой говори – човек или алгоритъм?

Не е новина, че ИИ генерира изображения и текстове, които (проверено!) не могат да бъдат различени от създадените от човека. Видеото като че ли все още изостава, но… Можете ли да си представите глас, неразличим от човешкия, който да чете новините? Или да ви се обади по телефона, без да има никакъв шанс да го различите? Не говорим за популярното решение гласът да бъде клониран, а за напълно изкуствено създаден, който обаче е толкова убедителен. При това на чист български, който е почти невъзможен за човек, чийто роден език не е!
Време е за една звучна Дигитална история. А какво предизвикателство ви очаква след това…

повече информация
Колко изкара ИИ на матура?

Колко изкара ИИ на матура?

Какво ще стане, ако изпитаме на матурата по български език и литература три от най-мощните модели изкуствен интелект? Усилията им ще оценят двама опитни проверители на истинските зрелостни изпити. За да е състезанието още по-оспорвано и показателно, включваме двама реални зрелостници и мен, автора на тези редове.
Ще изкарат ли пълни шестици ChatGPT, Claude и Gemini, или ще се провалят с гръм и трясък?
Ще разпознаят ли учителите коя от работите е на изкуствен интелект и коя – на човек?
Кой ще получи най-високата и кой – най-ниската оценка?
Какво ще ни кажат резултатите и за най-показателния изпит в българското образование, и за напредъка на алгоритмите, и за големите въпроси, с които идват новите технологии?

повече информация
„Хайде да спрем да се подценяваме!“

„Хайде да спрем да се подценяваме!“

Как да сме по-щастливи като общество? Как да изведем на следващо ниво ИТ сектора в България?
Седнали двама програмисти да си говорят за счупения обществен разговор, за разделението, за пътя на успеха. Звучи като начало на виц, а се получи сериозно и замислящо интервю в подкаста на DEV.BG. Думите, които разменихме, ми се сториха толкова важни, че ще ви ги представя и тук.
Веско Колев е начело на Icanpreneur – стартъп, който помага на повече ИТ компании да създадат работещ продукт. Има богат опит в софтуерния свят и особено интересни наблюдения, с които ще се срещнем днес.
Защо и как е време отново да започнем не само да се слушаме, но и да си говорим, дори когато ни разделя актуалният спор на деня? Защо е изграждащо и осмислящо честото „настъпване на мотиката“ и си струва да се радваме, когато детето ни получи слаба оценка? Какво ни е нужно като общество, за да вървим заедно напред, и то в епохата на напредналия изкуствен интелект?

повече информация
Питър Тийл. Консервативният визионер

Питър Тийл. Консервативният визионер

Facebook, SpaceX, Airbnb, LinkedIn, PayPal, Ethereum. Революцията на OpenAI и ChatGPT, възходът на Доналд Тръмп и вездесъщия му (доскорошен) съюзник Илон Мъск.
Наистина ли има една личност, която събира всички тези явления? Нещо повече – не е преувеличено да се каже, че ако не беше днешният ни герой, надали някое от тях щеше да се претвори в реалност…
Питър Тийл си е спечелил името на пророк, на гуру. На големия визионер на технологичните времена. Докато в същото време има толкова противоречиви възгледи, които някак си остават встрани от големия медиен шум. Но това е типично за родения в Германия предприемач. Някои го приемат за сивия кардинал на Силициевата долина, други – за мъдрец, който може да покаже на всеки пътя към големия успех в технологичната епоха.
Мултимилиардер, той казва, че конкуренцията е измамно благо, а монополите са решението на бъдещето. Създава мащабна програма, за да помага на хора, избрали да изоставят образованието си, за да създадат собствен бизнес, което пък проправя пътя на следващото поколение технологични лидери.
Всичко това и още много е г-н Тийл. Време е да застане под светлината на прожекторите, защото със сигурност е един от хората, които вече са променили живота на всеки от нас. Нещо повече – от него се очаква да зависи все повече в турболентните технологични времена, в които живеем.

повече информация
„Днес можем да сме всичко, а избираме да сме еднакви“

„Днес можем да сме всичко, а избираме да сме еднакви“

Защо е толкова важно да разберем умеем ли да различаваме детските рисунки от генерирани изображения? Как изглежда бъдещето на творчеството, на изкуството, на човека във времената, когато алгоритмите се оказват неразличими и дори по-добри автори от нас самите? На какво има смисъл да учим децата днес?
Можете ли да различите 15 детски рисунки от 15 изображения, генерирани от изкуствен интелект? Предизвикателството за деца и родители на Дигитални истории за броени дни провокира над 2500 души да проверят интуицията си! Резултатите от теста се очертават изключително интересни, ще поговорим за тях след края му – на 1 юли.
Експериментът е създаден заедно с днешната ни гостенка – Елица Станева-Бритън. Психолог, журналист, преподавател, в момента тя работи по докторската си дисертация в БАН, а темата е творчеството в ерата на изкуствения интелект. Дойде време да поговорим по всяка от тези теми.

повече информация
Какъв ще станеш, когато пораснеш?

Какъв ще станеш, когато пораснеш?

Какви искат да бъдат, когато пораснат, днешните хлапета? Навръх техния празник, време е за резултатите от една любопитна анкета.
Поредицата на Дигитални истории за срещата на децата с технологиите събра важни гледни точки по много теми. От 350 души, включили се в анкетата на сайта, 289 избраха да отговорят:
Какви искат да станат децата, когато пораснат?
„Инфлуенсър“ или „лекар“ – кой според вас ще се окаже най-срещаният отговор?
Как се променят мечтите на хлапетата?
Какво говори това за нас, възрастните, за технологиите, за духа на времето?

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