Non c'è nulla di più frustrante per uno sviluppatore web che passare ore a risolvere un bug in quel momento dovrebbero solo lavoro. Spesso rimango bloccato in uno stato di programmazione che sembra non avere assolutamente idea di cosa sto facendo, come se la lingua che sto usando (CSS, PHP, qualunque cosa), sia in realtà una lingua straniera.
Se quello che ho descritto sembra familiare, allora questo articolo fornirà conforto e umorismo.
I linguaggi di programmazione esoterici non servono in realtà a scopi diversi dal fornire un po 'di divertimento o dimostrare una dimostrazione di concetto. Ma ragazzo, fanno una risatina per il resto di noi!
Se ti sei mai sentito come una scimmia che batte la tastiera, allora Ook! ti farà sentire come a casa. È un linguaggio progettato principalmente per i primati, in particolare l'orangutan. Con Ook! usi solo tre elementi di sintassi:
Ecco alcuni esempi di Ook! in azione:
Ook. Ook? Spostare il puntatore della memoria sulla successiva cella dell'array.
Ook? Ook. Spostare il puntatore della memoria sulla cella matrice precedente.
Ook. Ook. Incrementa la cella dell'array puntata dal puntatore della memoria.
Ook! Ook! Decrementa la cella dell'array puntata dal puntatore della memoria.
Ook. Ook! Leggi un carattere da STDIN e metti il suo valore ASCII nella cella indicata dal puntatore di memoria.
Ottenere l'idea? Sì, neanche io ...
Per coloro che apprezzano l'arte, Piet è una lingua che ti piacerà sicuramente. Ispirato dall'artista astratto Piet Mondrian, Piet è un linguaggio di programmazione che converte i programmi in dipinti geometrici astratti. I programmi sono costituiti da 20 colori diversi e quindi letti dal compilatore in base ai valori esadecimali per eseguire un programma.
Guarda alcuni dei pazzi esempi che i programmatori Piet hanno inventato.
Sfortunatamente, il nome di questo linguaggio di programmazione è esattamente quello che fa: Whitespace crea programmi basati su ... spazi bianchi. Il sito web di Whitespace ha un'ottima descrizione di come funziona la lingua.
La maggior parte dei moderni linguaggi di programmazione non considera la sintassi dei caratteri dello spazio bianco (spazi, tabulazioni e nuova riga), ignorandoli, come se non esistessero. Riteniamo che questa sia una grave ingiustizia per questi membri perfettamente amichevoli del set di caratteri. Dovrebbero essere ignorati, solo perché sono invisibili? Lo spazio bianco è un linguaggio che cerca di ristabilire l'equilibrio. Qualsiasi carattere non di spazio bianco viene ignorato; solo gli spazi, le schede e le nuove linee sono considerate sintassi.
LOLCODE è il mio preferito tra le lingue esoteriche. Il linguaggio è basato sul fenomeno LOLCats e utilizza la sintassi di LOLCats per far funzionare i programmi. O qualcosa di simile.
Solo guardando un esempio di un programma LOLCODE spiegheremo perché è un fan preferito.
HAI PUO AVERE STDIO? PLZ OPEN FILE "LOLCATS.TXT"? AWSUM THX VISIBLE FILE O NOES INVISIBILE "ERRORE!" KTHXBYE
Sorprendentemente, LOLCODE ha catturato l'interesse in alcune parti della comunità di programmazione. Il sito ufficiale elenca molte diverse implementazioni in linguaggi come PHP, Python, Perl, .NET e Java. Chissà, forse un giorno vedremo corsi di programmazione LOL insegnati nelle scuole ...
Shakespeare non è semplice come LOLCODE per avvolgere la tua mente. Nel caso in cui non l'hai ancora capito, Shakespeare è un linguaggio di programmazione basato sugli scritti del grande drammaturgo. Ogni programma contiene un titolo, atti, scene e personaggi per rendere il codice sorgente geniale che è davvero divertente da leggere.
Ecco Act I, Scene I di "Hello World":
Il famigerato programma Hello World. Romeo, un giovane con una notevole pazienza. Giulietta, una donna altrettanto giovane di notevole grazia. Ofelia, una donna straordinaria molto in disputa con Amleto. Amleto, l'adulatore di Andersen Insulting A / S. Atto I: insulti e lusinghe di Amleto. Scena I: l'insulto di Romeo. [Entra in Amleto e Romeo] Amleto: stai mentendo stupido pandemonio e puzzolente vigliacco codardo! Sei stupido quanto la differenza tra un eroe ricco e coraggioso e te stesso! Parla la tua mente! Sei coraggioso come la somma della tua grassa peluria maltrattata e usurata da vecchi codini marci e una bella bella giornata calda e soleggiata d'estate. Sei sano come la differenza tra la somma della più dolce rosa più rossa e mio padre e te stesso! Parla la tua mente! Sei vigliacco come la somma di te stesso e la differenza tra un grande e orgoglioso regno e un cavallo. Parla la tua mente Parla la tua mente! [Esci da Romeo]
L'obiettivo per Chris Pressey, creatore del linguaggio di programmazione Befunge, era semplice: creare un linguaggio che fosse difficile da compilare il più possibile. Befunge lo realizza con le due caratteristiche principali del linguaggio scoraggiante:
Indipendentemente da ciò, ci sono persone molto intelligenti, (con modo troppo tempo libero), che ha creato compilatori per Befunge.
\
reMorse è un linguaggio destinato a sembrare un codice morse. Visioni di sottomarini e telegrammi vengono in mente con questo linguaggio semplice ma incredibilmente difficile. Ecco la versione reMorse di "Hello World":
- - -… -… -.---.;nuova linea - - - .-. - ... -.- ... -. ---.;! - - - ... - ... -.--- .; d ---- ... -.--- .; l ---- ... - ... --- .; r ----. - ... --- .; o ---- ... -.- ... -. --- .; W // autore non ha voglia di fare questa parte - ...; emette tutti i personaggi
Questo linguaggio potrebbe essere un po 'difficile per il resto di noi (con l'eccezione degli specialisti di radioamatori). Sai che è un orso da programmare quando l'autore della lingua non finirà tutto l'esempio di base, a causa della complessità.
Con una connotazione negativa appropriata, FALSE è un linguaggio destinato a scoraggiare anche i programmatori più intelligenti. Basato sulla lingua Forth, FALSE usa una sintassi basata sulla punteggiatura (gross!) Per aiutare l'esperienza di programmazione.
Dal creatore di FALSE stesso:
Ho progettato questo linguaggio con due obiettivi particolari: confondere tutti con una sintassi offuscata e progettare il linguaggio più potente possibile con una piccola implementazione: in questo caso un eseguibile del compilatore di soli 1024 byte (!), Scritto in puro assembler 68000.
Tuttavia FALSE non è il più ridicolo dei linguaggi esoterici e potrebbe effettivamente servire a scopi del mondo reale, poiché le operazioni sono ragionevolmente sensibili e il linguaggio non è estremamente complesso. Forse qualcuno, un giorno, realizzerà un'applicazione utile nel mondo reale ...
falso.
Immagina un adolescente scontroso come un linguaggio di programmazione, e hai te stesso ogni volta. Ogni volta che è un linguaggio semplice che fa ciò che vuole, quando vuole.
Prende il codice del programma e considera ogni linea come un elemento in una lista di cose da fare. L'interprete sceglie a caso un elemento dalla lista da eseguire ed esegue la dichiarazione. In alcuni casi, la dichiarazione conterrà una clausola che specifica che non può essere eseguita fino a quando non si applicano determinate condizioni. Ciò comporta che la dichiarazione viene rinviata e rimessa nella lista delle cose da fare.
Non pensare per un minuto che puoi effettivamente controllare un programma Whenever. Immagina quanto sia difficile programmare qualcosa come "99 Bottles of Beer"! Il programma restituirebbe qualcosa che ha letto come se avesse già consumato tutto 99.
posticipare (4 || N (1) posticipo (4 || N (1) == N (2)) stampa ("Prendi uno verso il basso e passalo intorno"); differisci (4 || N (2) == N (3)) stampa (N (1) + "bottiglie di birra sul muro".) 1 # 98,2 # 98,3 # 98;
Hai mai desiderato parlare come "l33t H4xX0r5"? Ora puoi imparare il linguaggio di programmazione l33t. Controlla l'applicazione "Hello World" di l33t:
// Nota che le viste espresse in questo codice sorgente non coincidono necessariamente con quelle dell'autore: o) Gr34t l33tN3 $$? M3h ... iT 41n's s0 7rIckY. l33t sP33k è U8er keWl 4nD eA5y wehn u 7hink 1t tHr0uGh. 1f u w4nn4be UB3R-l33t u d3f1n1t3lY w4nt in 0n a b4d4sS h4xX0r1ng s1tE !!! ; p w4r3Z c0ll3cT10n2 r 7eh l3Et3r! Qu4k3 cL4nS r 7eh bE5t tH1ng 1n teh 3nTIr3 w0rlD !!! g4m3s wh3r3 u g3t a 5h00t ppl r 70tAl1_y w1cK1d !! Io sono fr4GM4stEr aN I 'tl tt tt1_1lY wIpE teh phr34k1ng fL00r *** j3d1 5tYlE *** wItH y0uR h1dE !!!! L0L0L0L! l4m3rs t3lEphR4gG1nG mio spirito m8tes r34lLy k1kK $ A $$ l33t hAxX0r $ CrE4t3 u8er- k3wL 5tUff come n34t pR0gR4mm1nG lAnguidGe $ ... s0m3tIm3 $ teh l4nGu4gES l00k solo l1k3 rE41_ 0neS 7o fare ppl Th1nk th3y'r3 ju $ t n0rMal lEE7 5pEEk ma th3y' re 5ecRetLy c0dE !!!! n080DY unDer5tAnD $ l33t SpEaK 4p4rT fr0m j3d1 !!!!! 50mE kId 0n A me $$ 4gEb04rD m1ghT 8E a r0xX0r1nG hAxX0r wH0 w4nT2 t0 bR34k 5tuFf, 0r mAyb3 ju5t sh0w 7eh wAy5 l33t ppl cAn 8E m0re lIkE y0d4 !!! hI i5 teh u8ER !!!! 1t m1ght 8E 5omE v1rus 0r a Pl4ySt4tI0n ch34t c0dE. 1t 3v3n MiTe jUs7 s4y "H3LL0 W0RLD !!!" u ju5t non puoi gu3s5. tH3r3's n3v3r anY p0iNt l00KiNg sC3pT1c4l c0s th4t, be1_1Ev3 iT 0r n0t, 1s whIt1s 1s !!!!! 5uxX0r5 !!! L0L0L0L0L!!!!!!!
Nella vita reale, l33t è "teh sXxXr" a causa del fatto che non puoi usarlo per qualcosa di utile. Ah bene, torniamo all'hacking con tutti gli altri script kiddies e troll!