Ci sono linguaggi di programmazione che fanno impazzire chiunque voglia impararli ed utilizzarli.
Abbiamo iniziato tutti a scrivere programmi in Java, C, C++ ecc. ed i programmatori più vecchi di noi usavano linguaggi leggermente più difficili come Pascal, Fortran, COBOL che comunque in confronto a questi sembrano semplici.
Questi linguaggi di programmazione sono noti come “linguaggi di programmazione esoterici” e sono stati creati sia per testare i limiti dei linguaggi di programmazione sia per scherzo.
Linguaggi particolarmente complessi e volutamente meno chiari possibile, popolari fra hacker ed utenti più abili ma comunque non aventi alcuna utilità nel mondo reale.
Alcuni non sono mai andati al di là dei sistemi degli inventori e probabilmente non li avrete mai sentiti nominare, ma ecco alcuni linguaggi di programmazione che porteranno velocemente il vostro cervello al capolinea.
Questo linguaggio è difficile così come suggerito dal nome stesso.
Inventato da Urban Muller nel 1993, con l’obbiettivo di creare un linguaggio per una macchina di Turing che potesse essere implementato con il compilatore più piccolo possibile.
Brainfuck lavora su un array di byte inizializzato a 0 con un puntatore che inizialmente punta al primo byte, e due stream di byte per I/O.
Esistono soltanto 8 comandi in questo linguaggio e sono:
Esattamente come mucca in inglese è stato creato pensando ai bovini.
Visto che le mucche hanno un vocabolario decisamente limitato, sembrava doveroso incorporare le uniche parole a loro note in un linguaggio di programmazione.
Ne consegue che tutte le istruzioni sono delle varianti di “moo” cosa che è appunto ciò che accade all’unica parola che loro conoscono.
Basato anch’esso sulla macchina di Turing, possiede un set di 11 istruzioni, ovviamente case-sensitive, e mette a disposizione un registro temporaneo che può contenere un intero.
Come condizione iniziale vi è un puntatore che punta alla prima cella ed in ogni cella vi è 0.
Qualsiasi altro simbolo che non è un’istruzione viene ignorato. Quindi possono essere utilizzati o meno spazi, a capo o tabulazioni, il che rende il codice facilmente commentabile a patto che il commento non contenga un’istruzione.
Le 11 istruzioni sono:
The Compiler Language With No Pronounceable Acronym, abbreviato non si sa secondo quale criterio in “INTERCAL”.
Prevede costrutti di controllo che fanno sganasciare dalle risate.
INTERCAL ha caratteristiche che lo rendono davvero fastidioso da usare: usa statement come “READ OUT”, “IGNORE”, “FORGET” e modificatori come “PLEASE”.
PLEASE è integrato in due modi: se il programmatore non lo utilizza frequentemente, il programma è considerato non sufficientemente educato ed un alert viene mostrato, in alternativa viene mostrato un alert anche quando questo viene usato troppo frequentemente perché il programmatore risulta troppo educato.
Rilasciato l’1 Aprile 2003 e questo fece pensare che fosse un “pesce d’aprile”, ma non lo era.
Come si può immaginare, in questo linguaggio hanno senso solo tabulazioni, spazi ed a capo.
L’interprete ignora totalmente gli altri caratteri. Una conseguenza interessante è che un programma Whitespace può essere facilmente contenuto in un qualsiasi altro programma scritto in un altro linguaggio.
Un linguaggio di programmazione basato sullo stack in cui sembra che si stia seguendo una ricetta.
In accordo con la Home Page di Chef, i principi basi per Chef sono:
Vi sono tantissimi altri linguaggi esoterici davvero assurdi tra cui:
Qualcuno di voi, ora che ne conosce l’esistenza, sarebbe così folle da studiarne uno per puro divertimento?