K nejpopulárnějším i nejpoužívanějším programovacím jazykům už dlouhé roky patří Javascript, Python, Java, PHP, C# a samozřejmě také klasika C/C++. Slyšel o nich naprosto každý, nehledě na to, zdali jej živí vývoj softwaru, anebo cokoliv jiného.
Vedle těchto ikon počítačového světa však máme k dispozici i hromadu bizarních jazyků, ve kterých asi rozumný člověk nic programovat nebude – natož aby v nich implementoval třeba tuzemské systémy pro EET, dálniční známky a správu sociálního zabezpečení.
Obecně se jim říká ezoterické programovací jazyky a vznikly z rozličných důvodů počínaje prostým smyslem pro humor a konče hledání teoretických i praktických hranic, jakým způsobem vyjádřit libovolný počítačový algoritmus.
Pojďme se na některé z nich podívat.
EmojiZvratky (vyrobila AI GPT-4)
Protože – jak praví heslo mnoha sci-fi novel – budoucnost je (díky AI) nyní, mohou za nás fiktivní jazyky vytvářet chatboti. Dal jsem proto modelu GPT-4 (ChatGPT Plus) povel, aby vytvořil ezoterický jazyk výhradně pomocí znaku emoji 🤮 a přiložil také enkodér a dekodér v Pythonu.
Povel k vytvoření zákaldní logiky. Následoval také povel pro tvorbu základního enkodéru a dekodéru – interpretu
AI nový jazyk pojmenovala EmojiPuke (EmojiZvratky) a jediné, co (zatím) umí, je kódování ASCII znaků do emoji zvratků a samozřejmě i pravý opak s výpisem přeloženého emoji zpět do terminálu.
Tento program v EmojiZvratky vypíše text „Mame radi Brno“:
🤮 🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮 🤮🤮🤮🤮🤮🤮 🤮 🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮 🤮🤮🤮🤮🤮🤮 🤮 🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮 🤮🤮🤮🤮🤮🤮 🤮 🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮 🤮🤮🤮🤮🤮🤮 🤮 🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮 🤮🤮🤮🤮🤮🤮 🤮 🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮 🤮🤮🤮🤮🤮🤮 🤮 🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮 🤮🤮🤮🤮🤮🤮 🤮 🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮 🤮🤮🤮🤮🤮🤮 🤮 🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮 🤮🤮🤮🤮🤮🤮 🤮 🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮 🤮🤮🤮🤮🤮🤮 🤮 🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮 🤮🤮🤮🤮🤮🤮 🤮 🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮 🤮🤮🤮🤮🤮🤮 🤮 🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮 🤮🤮🤮🤮🤮🤮 🤮 🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮 🤮🤮🤮🤮🤮🤮 🤮 🤮
Kód základního enkodéru (jen podpora začátku/konce programu a kódování textu) v Pythonu:
import sys
def encode_emojipuke_to_file():
if len(sys.argv) < 3:
print("Please provide a filename as the first argument and the text to encode as the second argument.")
return
filename = sys.argv[1]
text = sys.argv[2]
emojipuke_code = '🤮 ' # začátek programu
for char in text:
char_value = ord(char) # ASCII hodnota znaku
# přičteme k hodnotě paměti
emojipuke_code += ('🤮' * char_value) + ' '
# vypíšeme hodnotu paměti jako ASCII znak
emojipuke_code += '🤮' * 6 + ' '
# resetujeme hodnotu paměti na 0
emojipuke_code += '🤮 '
emojipuke_code += '🤮' # konec programu
with open(filename, 'w', encoding='utf-8') as file:
file.write(emojipuke_code)
print(f"EmojiPuke code saved to file '{filename}'.")
if __name__ == "__main__":
encode_emojipuke_to_file()
Skript spustíte příkazem:
python enkoder.py soubor.ep "Text, ktery se ma zakodovat"
Enkodér zakóduje program do souboru soubor.ep.
Dekodér pro převod EmojiZvratků zpět na text a jeho vypsání do výstupu/terminálu:
import sys
def decode_emojipuke_from_file():
if len(sys.argv) < 2:
print("Please provide a filename as the first argument.")
return
filename = sys.argv[1]
try:
with open(filename, 'r', encoding='utf-8') as file:
emojipuke_code = file.read()
except FileNotFoundError:
print(f"The file '{filename}' was not found.")
return
emojipuke_parts = emojipuke_code.split()
text = ''
if len(emojipuke_parts) < 3:
raise ValueError('Invalid EmojiPuke code')
if len(emojipuke_parts[0]) != 1 or len(emojipuke_parts[-1]) != 1:
raise ValueError('Invalid EmojiPuke code: Missing header/footer')
for i in range(2, len(emojipuke_parts) - 2, 3):
if len(emojipuke_parts[i]) != 6:
raise ValueError('Invalid EmojiPuke code: Missing print command')
if len(emojipuke_parts[i+1]) != 1:
raise ValueError('Invalid EmojiPuke code: Missing reset command')
char_value = len(emojipuke_parts[i-1])
text += chr(char_value)
print(text)
if __name__ == "__main__":
decode_emojipuke_from_file()
Skript spustíte příkazem:
python dekoder.py soubor.ep
Důkaz, že to opravdu funguje. Výpis programu a jeho přeložení pomocí dekodéru
V další kapitole se už ale podíváme na klasické ezoterické jazyky, které se na scéně objevily v posledních dvaceti letech, napsal je člověk a umějí toho mnohem více.
文言
Jeden z nejmladších ezoterických programovacích jazyků se na scéně objevil teprve nedávno. Jmenuje se Wenyan – stejně jako předloha, jedná se totiž o klasickou literární čínštinu, jejíž kořeny sahají hluboko do starověku.
I kdyby se však jednalo o tu moderní, asi se nic nezmění – tedy pokud jste se posledních pár let nevěnovali sinologii.
Ukázkový program, který nakreslí srdíčko:
吾嘗觀「「算經」」之書。方悟「絕對」「平方根」之義。
吾有一術名之曰「畫心」。
欲行是術。必先得一言。曰「心語」。
乃行是術曰。
夫「心語」之長。名之曰「長度」。
吾有一言。曰「「一」」。名之曰「填充符」。
吾有一言。曰「「\n」」。名之曰「换行符」。
除十三以十。名之曰「乙」。
除負十一以十。名之曰「乙止」。
除四十以一千。名之曰「甲步長」。
除六以一百。名之曰「乙步長」。
吾有一數。曰一。名之曰「輸出位置」。
吾有一言。曰「「」」。名之曰「果」。
恆為是。若「乙」小於「乙止」者乃止也。
除負十一以十。名之曰「甲」。
除十一以十。名之曰「甲止」。
吾有一言。曰「「」」。名之曰「本行」。
恆為是。若「甲」大於「甲止」者乃止也。
施「絕對」於「甲」。名之曰「甲絕對」。
施「平方根」於「甲絕對」。名之曰「減數」。
乘五於「乙」。除其以四。名之曰「被減數」。
減「被減數」以「減數」。名之曰「差」。
乘「差」以「差」。名之曰「加數」。
乘「甲」以「甲」。加其以「加數」。減其以一。名之曰「函數值」。
若「函數值」不大於零者。
夫「心語」之「輸出位置」。名之曰「字」。
加「本行」以「字」。昔之「本行」者今其是矣。
除「輸出位置」以「長度」。所餘幾何。加其以一。昔之「輸出位置」者今其是矣。
若非。
加「本行」以「填充符」。昔之「本行」者今其是矣。
终也。
加「甲」以「甲步長」。昔之「甲」者今其是矣。
云云。
減「乙」以「乙步長」。昔之「乙」者今其是矣。
加「本行」以「换行符」。昔之「本行」者今其是矣。
加「果」以「本行」。昔之「果」者今其是矣。
云云。
吾有一言。曰「果」。書之。
是謂「畫心」之術也。
施「畫心」於「「琉璃梳子撫青絲。畫心牽腸癡不癡。」」。
Pro člověka ze západu to bude jistě prakticky nečitelná hatmatilka, která by byla pro Číňany stejně nepochopitelná jako hypotetický ezoterický jazyk, který by naopak použil staroslověnštinu a její písmo hlaholici.
Webový editor (nahoře vlevo), překladač do Javascriptu (nahoře vpravo) a interpret (dole)
Jazyk má přitom svoji bohatou slovní zásobu, zatím ještě živou komunitu na GitHubu a hromadu překladačů do Javascriptu, Pythonu a dalších. Nechybí ani webový editor a překladač, takže si můžete vyzkoušet hromadu funkčních ukázek.
Malbolge, tedy Peklo
Byť bude Wenyan pro většinu čtenářů asi naprosto nečitelný, je to především kvůli jeho písmu. Samotný jazyk má svoji logiku a jednoduchý zápis. Jinak je tomu ale u dalších ezoterických jazyků, jejichž jediným účelem je mnohdy to, abyste vzali do náruče pytel cementu a skočili z nejbližšího mostu do hlubokého jezera.
Přesně to je cílem jazyka Malbolge pojmenovaném po jednom z pekel v Danteho Božské komedii. Malbolge má k dispozici několik základních instrukcí pro operaci s bajty v paměti. Cílem autora však bylo to, aby bylo jejich použití co nejméně pochopitelné a co nejméně logické. Jejich popis tedy přenecháme odkazované Wikipedii výše.
Ukázkový program, který vypíše „Hello, World!“:
(=<`#9]~6ZY32Vx/4Rs+0No-&Jk)"Fh}|Bcy?`=*z]Kw%oG4UUS0/@-ejc(:'8dc
Ukázka výše postupně podle ASCII tabulky nastaví bajty v paměti na jednotlivé znaky anglického pozdravu, který vypíše do výstupu.
K čemu je to dobré? Pokud se někdo v tak šíleném jazyku opravdu vyzná a dokáže pro něj napsat interpret nebo i překladač do nějakého srozumitelnějšího a vyššího programovacího jazyka, pravděpodobně to bude člověk, který opravdu něco umí, a tak si to může klidně napsat i na svůj profesní Linkedin.
Kód z ukázky opravdu funguje!
Na ezoterické programovací jazyky proto můžeme tak trochu pohlížet i jako na test skutečných schopností vývojáře, analytika nebo reverzního inženýra, který se dokáže vyznat opravdu v čemkoliv.
Brainfuck
Malboge se inspiroval v o pár let starším jazyku Brainfuck, jehož zápis a vnitřní logika by sice měly být relativně snadné, i tak se asi zrovna nejedná o ideálního adepta třeba pro vývoj českého e-governmentu a nové verze datových schránek.
Ukázkový program, který vypíše „Hello, World!“:
++++++++++[>+++++++>++++++++++>+++>+<<<<
-]>++.>+.+++++++..+++.>++.<<++++++++++++
+++.>.+++.------.--------.>+.>.
Kód se skládá všehovšudy z pouhých osmi znaků a to buď >, <, +, -, ., ,, [ a ]. Vše ostatní bude překladač ignorovat. Každý z těchto znaků provádí určitou operaci s buňkou pole, která může nabývat hodnot 0-255.
Pokud si teď v duchu říkáte „WTF,“ je vše v naprostém pořádku a Brainfuck splnil svůj účel.
Webový interpret Brainfucku na webu copy.sh
Sacred
Je na vás těch písmenek příliš moc? Proto je tu Sacred, který namísto osmi povolených znaků používá jen tři: Kulaté závorky a mezeru. Vzájemná kombinace těchto znaků pak představuje jednotlivé instrukce a příkazy.
Takže zatímco kombinace () zvýší hodnotu aktuálního bajtu, )( ji naopak sníží. Instrukce (( posune ukazatel doleva, )) naopak doprava, ((( vypíše aktuální bajt jako ASCII znak a tak dále.
Ukázkový program, který vypíše „Hello, World!“:
())( () () () () () () () () ( )) () () () () ( )) () () )) () () () )) () () () )) () (( (( (( (( )( ) )) () )) () )) )( )) )) () ( (( ) (( )( ) )) )) ((( )) )( )( )( ((( () () () () () () () ((( ((( () () () ((( )) )) ((( (( )( ((( (( ((( () () () ((( )( )( )( )( )( )( ((( )( )( )( )( )( )( )( )( ((( )) )) () ((( )) () () (((
Kód výše tedy postupně podle ASCII tabulky nastaví hodnoty bajtů na jednotlivá písmena a vypíše je do výstupu, tedy třeba na obrazovku monitoru. K dispozici je opět několik programů, který kód zpracují.
Whitespace
Oba předchozí jazyky používaly k zápisu běžné znaky ASCII. Whitespace na to jde jinak a už podle svého názvu používá pro jednotlivé instrukce a manipulace s daty v paměti bílé znaky – tedy ty, které používáme třeba pro mezeru, odsazení (Tab), případně pro ukončení řádku (LF) a návrat na začátek (CR).
Ukázkový program, který vypíše „Hello, world of spaces!“:
Dokud tedy kód například neoznačíme, nebo si necháme bílé znaky zobrazit pomocí zástupných symbolů, bude sebekomplikovanější kód vypadat jako nepopsaný kus papíru.
Webový editor a interpret ezojazyka Whitespaces – Whitelips
Velato
Pokud se z Brainfucku nebo Sacred zblázníte a Whitespace ani neuvidíte, Velato si budete muset přehrát. Tento jazyk totiž používá jako zdrojový kód MIDI zvuk. A opět platí, že co daný tón, to jiná funkce, takže když byste si zdrojový kód ve Velatu přehráli, bude znít jako docela dobrý jazz. Ostatně jeden z nich si můžete poslechnout třeba zde.
Zdrojový kód Hello World! napsaný ve Velatu
Chicken
Ezoterický jazyk Chicken má pouze tři výrazy. Programový kód se může skládat jen ze slova chicken, mezery a konce řádku. I tak málo stačí k tomu, abyste napsali jakoukoliv aplikaci. Jak je to možné? Rozhodující je totiž počet kuřat na řádku. Podle počtu pak bude každý řádek představovat určitou instrukci.
Ukázkový program, který vypíše „Hello, World!“:
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
Jednoduše řečeno, nebudete celou noc dělat nic jiného, než psát chicken, chicken, chicken a nad ránem bude program hotový.
Mnoho zábavy zažijete i s podobným jazykem Ook! pro orangutany, který se skládá jen z výkřiků Ook, Ook! a Ook?
Shakespeare Programming Language
Chicken se hodí pro ty, kteří trénují psaní všemi deseti. Pro fanoušky britské klasické literatury je tu pak zase SPL – Shakespeare Programming Language. I ten sebeprimitivnější program má v tomto případě zápis divadelní hry, kdy nejprve představíte účinkující (tedy proměnné) pojmenované podle Shakespearových postav, a s nimi pak tvoříte samotný děj rozdělený do aktů a scén.
Upíšete se opět k smrti, ale už to nebude tak monotónní jako v případě programovatelných kuřat.
Úryvek programu v SPL. Celý by se sem vůbec nevešel:
Act I: Hamlet's insults and flattery.
Scene I: The insulting of Romeo.
[Enter Hamlet and Romeo]
Hamlet:
You lying stupid fatherless big smelly half-witted coward! You are as
stupid as the difference between a handsome rich brave hero and thyself!
Speak your mind!
You are as brave as the sum of your fat little stuffed misused dusty
old rotten codpiece and a beautiful fair warm peaceful sunny summer's
day. You are as healthy as the difference between the sum of the
sweetest reddest rose and my father and yourself! Speak your mind!
You are as cowardly as the sum of yourself and the difference
between a big mighty proud kingdom and a horse. Speak your mind.
Speak your mind!
[Exit Romeo]
Chef
Fanoušci vaření by si mohli naopak oblíbit jazyk Chef, který se namísto v Shakespearovi inspiroval v kulinářských receptech. Programový kód má tedy podobu návodu k vaření, přičemž opět platí, že každá formule fiktivního receptu představuje konkrétní počítačovou instrukci.
Ukázkový program, který vypíše „Hello, World!“:
Hello World Cake with Chocolate sauce.
This prints hello world, while being tastier than Hello World Souffle. The main
chef makes a " world!" cake, which he puts in the baking dish. When he gets the
sous chef to make the "Hello" chocolate sauce, it gets put into the baking dish
and then the whole thing is printed when he refrigerates the sauce. When
actually cooking, I'm interpreting the chocolate sauce baking dish to be
separate from the cake one and Liquify to mean either melt or blend depending on
context.
Ingredients.
33 g chocolate chips
100 g butter
54 ml double cream
2 pinches baking powder
114 g sugar
111 ml beaten eggs
119 g flour
32 g cocoa powder
0 g cake mixture
Cooking time: 25 minutes.
Pre-heat oven to 180 degrees Celsius.
Method.
Put chocolate chips into the mixing bowl.
Put butter into the mixing bowl.
Put sugar into the mixing bowl.
Put beaten eggs into the mixing bowl.
Put flour into the mixing bowl.
Put baking powder into the mixing bowl.
Put cocoa powder into the mixing bowl.
Stir the mixing bowl for 1 minute.
Combine double cream into the mixing bowl.
Stir the mixing bowl for 4 minutes.
Liquefy the contents of the mixing bowl.
Pour contents of the mixing bowl into the baking dish.
bake the cake mixture.
Wait until baked.
Serve with chocolate sauce.
chocolate sauce.
Ingredients.
111 g sugar
108 ml hot water
108 ml heated double cream
101 g dark chocolate
72 g milk chocolate
Method.
Clean the mixing bowl.
Put sugar into the mixing bowl.
Put hot water into the mixing bowl.
Put heated double cream into the mixing bowl.
dissolve the sugar.
agitate the sugar until dissolved.
Liquefy the dark chocolate.
Put dark chocolate into the mixing bowl.
Liquefy the milk chocolate.
Put milk chocolate into the mixing bowl.
Liquefy contents of the mixing bowl.
Pour contents of the mixing bowl into the baking dish.
Refrigerate for 1 hour.
Omgrofl
Hledáte-li pro začátek něco jednoduššího, je tu Omgrofl od Juraje Borzy ze Slovenska. Tento jazyk by mohl být internetové kyberscéně relativně blízký, používá totiž slangové výrazy. Když byste tedy chtěli vytvořit třeba proměnnou (musí se jmenovat lol, lool aj.), která bude mít hodnotu deset, stačí napsat:
lol iz 10
A když byste chtěli napsat podmínku if(lol >10), tedy test, jestli má proměnná lol vyšší hodnotu než deset, stačí použít:
wtf lol iz uber 10
9. OSTRAJava
Předchozí krajně primitivní experimenty bychom mohli doplnit vyšším programovacím jazykem OSTRAJava, který má dle autora za cíl pozvednout kvalitu (nejen ostravského) programování, čehož chce dosáhnout tím, že klíčová slova Javy nahradil severomoravským (chci říci slezským) slangem.
Kód jednoduchého programu, který napíše pozdrav do textové konzole, by tedy mohl vypadat následovně:
banik pyco
tryda Ostrava{
rynek(){
Konzola.pravit("Toz vitaj") pyco
}
}
fajront pyco
Každý soubor musí začínat slovem banik, končit slovíčkem fajront a namísto obvyklých středníků slouží pro ukončení pyco. Pak tu máme typy proměnných cyslo, chachar nebo třeba cyslo_desetinne, které by mohly být příslibem toho, že jednou se snad z Ostravska skutečně stane české Silicon Valley.
ArnoldC
Svůj vlastní programovací jazyk má i Arnold Scharzenegger. Jmenuje se ArnoldC, vychází ze Scaly a podobně jako OSTRAJava používá specifické hlášky – tentokrát ty z Arnieho filmů.
Základní program, který vypíše pozdrav na obrazovku, by tedy mohl vypadat třeba takto:
IT'S SHOWTIME
TALK TO THE HAND "Ahoj lidi"
YOU HAVE BEEN TERMINATED
Jsou jich stovky
Ezoterických jazyků, alespoň tedy těch, o kterých se obecně ví, jsou dnes stovky a najdete je pěkně na jedné hromadě včetně ukázek kódu třeba na webu esolangs.org. Až vás tedy tradiční C/C++, Javascript, Java nebo Python přestanou bavit, vyberte si některý z nich. A jestli to přežijete, dejte nám určitě vědět.
Tento článek je součástí balíčku PREMIUM+
Odemkněte si exkluzivní obsah a videa bez reklam na devíti webech.
Vyzkoušet za 1 Kč
Nebo samostatné Živě Premium