A prima vista, si potrebbe pensare che alcuni linguaggi di programmazione siano solo scherzi o progetti sperimentali privi di utilità pratica, ma la realtà dimostra il contrario. Esistono veri e propri linguaggi di programmazione progettati con idee non convenzionali, e possono sembrare inventati a causa dei loro nomi, della sintassi o delle filosofie uniche.
Questi linguaggi rientrano nella categoria di quelli che a volte vengono definiti linguaggi di programmazione non convenzionali o esotici, ma sono in realtà in grado di eseguire comandi reali e di creare applicazioni, e talvolta vengono persino utilizzati per scopi didattici o di ricerca. Alcuni di questi linguaggi mirano a semplificare i concetti, mentre altri cercano di sfidare il pensiero della programmazione tradizionale.
Esplorare linguaggi di programmazione apparentemente fantasiosi offre una prospettiva più ampia sull'evoluzione della programmazione e rivela come la creatività possa trascendere gli approcci convenzionali. Questo articolo esplora esempi concreti di linguaggi di programmazione sconosciuti che dimostrano l'infinito potenziale di innovazione in questo campo.
I programmatori tendono a utilizzare un set limitato di linguaggi di programmazione nel loro lavoro quotidiano, sia per fattori esterni che per preferenze personali. I linguaggi cambiano ed evolvono in base alle tendenze, ma noi ne conosciamo solo una piccola parte.
Le seguenti lingue sono così specializzate, o semplicemente bizzarre, che potresti non essere nemmeno a conoscenza della loro esistenza, o almeno non conoscerle. Sono reali o parte di uno scherzo elaborato? La scelta è tua.
Spazi vuoti: il codice è invisibile?
Immagina di consegnare un foglio bianco per il tuo prossimo compito di programmazione e che il tuo insegnante si congratuli con te per il risultato ottenuto. Questa promessa può essere mantenuta con il linguaggio spazio biancoÈ un linguaggio di programmazione davvero strano.
Se non ti piace il metodo di Python che ti obbliga a formattare il codice in modo regolare, smetti di leggere ora.
In quello screenshot, il codice sorgente del programma è chiaramente contrassegnato per evidenziare nuove righe, tabulazioni e spazi, poiché questi sono gli unici caratteri significativi in Whitespace. È difficile credere che si tratti di codice reale, codice in grado di fare tutto ciò che fa qualsiasi altro linguaggio, ma lo è.
Tutto in Whitespace dipende dalla combinazione e dal numero di spazi consecutivi. Quindi, spazio, spazio significa "aggiungi il numero successivo allo stack", mentre tabulazione, spazio, spazio, nuova riga significa "moltiplica i due numeri in cima allo stack".
Scrivere un programma con spazi bianchi è estremamente difficile. Non solo dovrai gestire un set limitato di istruzioni, ma dovrai anche prestare molta attenzione quando usi un editor di testo per evitare di formattare accidentalmente gli spazi automaticamente. Inoltre, il codice con spazi bianchi stampato è difficile da leggere…
Chef: Le ricette sono ora codice sorgente?
Se il prossimo pasto che ti verrà servito fosse preparato con una ricetta che funge anche da codice sorgente per il programma "Hello World", vorresti davvero mangiarlo? Se quella ricetta fosse scritta in un linguaggio ChefPuoi procedere con sicurezza, sapendo che questo codice dovrebbe:
Non è importante solo ottenere i risultati giusti, ma anche che il piatto sia facile da preparare e delizioso.
Questo è uno dei principi di Chef Design, un linguaggio che rappresenta i dati come ingredienti e le istruzioni del programma come ricette di cucina. Esempi di quest'ultimo includono: "Togli il latte dal frigorifero" per leggere l'input in una variabile e "Mescola bene la seconda ciotola" per ordinare casualmente un insieme di valori.
In superficie, i programmi Chef possono sembrare sorprendentemente simili a quelli che si possono trovare in un libro di cucina, anche se non è consigliabile seguire a casa una ricetta che prevede 101 uova e 111 tazze di olio, anche se poi si stampa "Hello World".
LOLCODE è solo uno scherzo, non è vero?
Qualsiasi linguaggio che includa la parola "LOL" nel suo nome dovrebbe essere trattato con cautela: questo è un altro programma Chef. Pertanto, è chiaro che LOLCODE Richiede di non prenderla troppo sul serio, ma la frase "CAN HAS STDIO?" è davvero un codice utilizzabile? Sì, con LOLCODE, ovviamente.
Questa lingua celebra il fenomeno del linguaggio della risata (lolspeak), che ci ha dato le immagini dei LOLcats, la frase "I CAN HAS CHEEZBURGER?" e molte altre assurdità dell'inizio del XXI secolo che potresti aver completamente dimenticato.
Oltre a riutilizzare frasi come "BTW" (per inserire un commento) e il simpatico "KTHXBYE" per concludere il programma, LOLCODE utilizza le emoticon, gli antichi predecessori degli attuali emoji. La sequenza ":)" non è solo una faccina sorridente capovolta, ma anche un carattere di nuova riga in LOLCODE.
In linea con la natura satirica di questo linguaggio, gli errori di ortografia sono comuni, quindi fate attenzione a non confondere errori di battitura autentici con errori intenzionali. Ad esempio, potete verificare che una variabile denominata "ANIMAL" contenga il valore "CAT" utilizzando l'operatore "BOTH SAEM", ovvero BOTH SAEM ANIMAL AN "CAT".
Malbolge: Puoi semplicemente premere a caso sulla tastiera.
Il Malpulge è un'antica lingua esoterica, quindi potresti riconoscerne il nome anche se non ne capisci il significato. Tuttavia, probabilmente è meglio non saperlo: il nome si riferisce all'ottavo cerchio dell'Inferno dantesco, un luogo in cui potresti sentirti come se ti chiedessero di scrivere in quel luogo.
Anche se hai familiarità con il linguaggio, potresti non riconoscerlo da alcuni esempi di codice sorgente.
(=<`#9]~6ZY327Uv4-QsqpMn&+Ij"'E%e{Ab~w=_:]Kw%o44Uqp0/Q?xNvL:`H%c#DD2^WV>gY;dts76qKJImZkj
Questo torrente di parole incomprensibili presenta, come avrete intuito, il classico messaggio "Hello World".
Tuttavia, scrivere programmi dev'essere così difficile una volta capito il linguaggio, giusto? Ma state tranquilli: è difficile. Potreste non sentirvi sicuri quando scoprirete che il creatore di Malpolj non ha mai scritto un solo programma in quel linguaggio.
La maggior parte, se non tutti, i programmi Malpulge vengono generati automaticamente a partire da codice scritto nei linguaggi più comuni. Questo è comprensibile, dato che Malpulge è stato intenzionalmente progettato per essere il più difficile possibile da scrivere.
Velato: L'azzeramento è programmazione?
In italiano, "filato" significa "velato", e il linguaggio è innegabilmente oscuro e indiretto. Ma la bellezza del suo nome impallidisce in confronto alla bellezza del suo codice sorgente.
Sì, i programmi Velato sono composizioni musicali, e questo è un altro esempio di utilizzo di codice sorgente duale. Sia l'altezza che l'ordine delle note sono espressi nei comandi Velato, ed è anche possibile utilizzare più tracce per gli armonici; il linguaggio ignora qualsiasi traccia successiva alla prima.
Consigli
Perché non servire un po' di Velato Source Code alla vostra prossima cena, mentre gustate un piatto principale Chef Code? Questa interazione sensoriale potrebbe portare a qualsiasi cosa!
Forse la caratteristica più impressionante di Velato è l'estensione 2024, che aggiunge il supporto per il fischietto. Immagina di usare le mani liberamente, rilassarti e fischiare una melodia allegra per programmare il tuo computer. Se hai un orecchio perfetto per la musica e una mente acuta, perché non provarci?
Funzione: I diagrammi di flusso non sono in realtà codice, vero?
Se comporre musica non è un'alternativa ideale alla scrittura di codice, che ne dici di disegnare? Il linguaggio Funciton interpreta i programmi utilizzando i caratteri quadrati Unicode, così ora puoi eseguire la tua ASCII art oltre che ammirarla.
I programmi sembrano Funzioni Simile in qualche modo agli schemi elettrici o ai diagrammi di flusso che potresti disegnare quando progetti un programma:
A differenza della maggior parte dei linguaggi menzionati qui, che hanno set di istruzioni limitati, l'interprete Funciton ha un'enorme libreria di funzioni, che copre tutto, dalla fusione di stringhe (ʝ) e dal filtraggio di sequenze (ƒ) alla corrispondenza di espressioni di pattern (℞).
Anche in questo caso, potrebbe essere necessario regolare attentamente le impostazioni dell'editor di testo per gestire il processo di scrittura dei programmi Funciton. Avrai bisogno di un buon font a spaziatura fissa per supportare un corretto allineamento e potresti voler scrivere prima le bozze dei tuoi programmi su carta per evitare spiacevoli modifiche di formattazione.
I linguaggi di programmazione non si limitano a strumenti comuni; comprendono esperimenti creativi che possono sembrare strani a prima vista, ma contengono idee tecniche autentiche. Esplorare questi linguaggi amplia la comprensione del pensiero programmatico e incoraggia a esplorare nuovi orizzonti.
Se sei interessato a sviluppare le tue competenze, prova a leggere la documentazione di uno di questi linguaggi o a implementare un semplice esempio con esso. Potresti scoprire una prospettiva diversa che cambierà completamente il tuo approccio alla programmazione.






