Cele mai multe limbi Bizarre de programare au fost create vreodată

Nu este nimic mai frustrant pentru un dezvoltator de web decât petrecerea de ore la un moment dat de stabilire a unui bug care ar trebui să doar munca. Adesea voi rămâne blocat într-o stare de programare care simte că nu am nicio idee despre ce fac, ca și cum limba pe care o folosesc (CSS, PHP, orice) este de fapt o limbă străină.

Dacă ceea ce am descris sună familiar pentru dvs., atunci acest articol va oferi confort și umor.

Limbajele de programare ezoterice nu servesc cu adevărat alt scop decît să ofere un pic de distracție sau să dovedească o dovadă a conceptului. Dar băieți, ne dau un chicot pentru ceilalți!

1. Ook!

Dacă v-ați simțit vreodată ca o maimuță care a lovit doar o tastatură, atunci Ook! vă va face să vă simțiți ca acasă. Este un limbaj conceput în primul rând pentru primate, în special pentru urangutan. Cu Ook! utilizați numai trei elemente de sintaxă:

  • Uuk.
  • Uuk?
  • Uuk!

Iată câteva exemple de Ook! în acțiune:

Uuk. Uuk? Deplasați indicatorul de memorie în celula următoare.
Uuk? Uuk. Deplasați indicatorul de memorie în celula anterioară.
Uuk. Uuk. Creșteți celula matrice indicată de indicatorul de memorie.
Uuk! Uuk! Decrementați celula de matrice indicată de indicatorul de memorie.
Uuk. Uuk! Citiți un caracter de la STDIN și puneți valoarea lui ASCII în celula indicată de indicatorul de memorie.

Obțineți ideea? Da, nici eu ...


Fotografie de Suneko.

2. Piet

Pentru cei apreciativi ai artei plastice, Piet este o limbă pe care o veți bucura cu siguranță. Inspirat de artistul abstract Piet Mondrian, Piet este un limbaj de programare care convertește programele în picturi geometrice abstracte. Programele sunt alcătuite din 20 de culori diferite și apoi citite de compilator pe baza valorilor hexate pentru a rula un program.

Uitați-vă la unele dintre exemplele nebunești pe care au venit programele Piet.

3. Spațiul alb

Din păcate, numele pentru acest limbaj de programare este exact ceea ce face: Spațiul alb crează programe bazate pe ... spații. Site-ul albăstruie are o descriere foarte bună a modului în care funcționează limba.

Majoritatea limbajelor de programare moderne nu iau în considerare caracterele spațiului alb (spații, tabele și linii noi), ignorându-le, ca și când nu ar fi acolo. Considerăm că aceasta este o nedreptate grosieră pentru acești membri perfect prietenoși ai setului de caractere. Ar trebui să fie ignorate, doar pentru că sunt invizibile? Spațiul alb este o limbă care încearcă să redreseze echilibrul. Toate caracterele care nu sunt albe sunt ignorate; numai spațiile, filele și liniile noi sunt considerate sintaxă.

4. LOLCODE

LOLCODE este favoritul meu personal în rândul limbilor esoterice. Limba se bazează pe fenomenul LOLCats și utilizează sintaxa LOLCats pentru a face programele să ruleze. Sau ceva de genul ăsta.

Privind doar la un exemplu de program LOLCODE, se va explica de ce este un fan preferat.

HAI CAN STDIO? PLZ OPEN FILE "LOLCATS.TXT"? AWSUM THX FILE VIZIBILE O NOES INVESIBILE "EROARE!" KTHXBYE

În mod surprinzător, LOLCODE a dobândit interes în anumite părți ale comunității de programare. Site-ul oficial conține multe implementări diferite în limbi precum PHP, Python, Perl, .NET și Java. Cine știe, poate că într-o zi vom vedea cursuri de programare LOL predate în școli ...

5. Shakespeare

Shakespeare nu este la fel de simplu ca LOLCODE pentru a vă înfășura capul. În cazul în care nu ți-ai dat seama încă, Shakespeare este un limbaj de programare bazat pe scrierile marelui dramaturg. Fiecare program conține un titlu, acte, scene și personaje pentru a face un cod sursă strălucitor, care este de fapt distractiv de citit.

Iată actul I, Scena I a "Hello World":

Programul Infamous Hello World. Romeo, un tânăr cu o răbdare remarcabilă. Julieta, o femeie atît de tînără cu har remarcabil. Ophelia, o femeie remarcabilă în conflict cu Hamlet. Hamlet, flatterul lui Andersen Insulting A / S. Actul I: insultele și lingușirea lui Hamlet. Scena I: insultarea lui Romeo. [Intrați în Hamlet și Romeo] Hamlet: Tată minunat, prost oribil mirositor de orășel! Ești la fel de proastă ca și diferența dintre un erou frumos și curajos și bogat! Vorbesc mintea ta! Ești la fel de curajoasă ca suma grăsimii tale puțin umplute folosită de praf și vechea frumoasă zi de vară însorită. Ești la fel de sănătos ca și diferența dintre suma celor mai dulci trandafiri roșii și tatăl meu și tu! Vorbesc mintea ta! Ești la fel de laș ca și suma ta și diferența dintre un mare regat mândru și un cal. Vorbesc mintea ta. Vorbesc mintea ta! [Exit Romeo]

6. Befunge

Scopul lui Chris Pressey, creatorul limbajului de programare Befunge, a fost simplu: creați o limbă cât mai dificil de compilat. Befunge realizează acest lucru prin cele două caracteristici principale ale limbajului descurajant:

  1. Modificarea automată - instrucțiunea p poate scrie noi instrucțiuni în câmpul de joc; și
  2. Multidimensional "- aceeași instrucțiune poate fi executată în patru contexte diferite (într-o serie de instrucțiuni de la stânga la dreapta sau de la dreapta la stânga sau în sus sau în jos).

Indiferent, există oameni foarte inteligenți, (cu cale prea mult timp liber), care au creat compilatoare pentru Befunge.

\

7. reMorse

reMorse este un limbaj destinat să semene cu codul morse. Viziuni de submarine și telegrame vin în minte cu acest limbaj simplu, dar incredibil de provocator. Iată versiunea reMorse a "Hello World":

- - -… -… -.---.;linie nouă - - - .-. - ... -.- ... -. ---.;! - - - ... - ... -.---; d ---- ... -.---; l ---- ... - ... ---; r ----. - ... - ... - ... - ... - ... -. --- W // autorul nu a simtit ca face parte din aceasta ... - scoate toate caracterele

Acest limbaj ar putea fi unul tare pe partea dificilă pentru restul de noi (cu excepția specialiștilor de radio amatori). Știți că este un urs pentru a programa atunci când autorul limbii nu va termina tot exemplul de bază, din cauza complexității.

8. FALSE

Cu o conotație negativă adecvată, FALSE este o limbă menită să descurajeze chiar și cei mai inteligenți programatori. Pe baza limbii Forth, FALSE utilizează o sintaxă bazată pe punctuație (brut!) Pentru a vă ajuta să vă familiarizați cu experiența de programare.

De la creatorul FALSE însuși:

Am proiectat această limbă cu două obiective particulare: confuzarea tuturor cu o sintaxă obfuscată și proiectarea unei limbi cât mai puternice posibil cu o implementare minusculă: în acest caz un executabil compilator de doar 1024 octeți (!), Scris în asamblare pur 68000.

Cu toate acestea, FALSE nu este cea mai ridicolă dintre limbile esoterice și ar putea servi, de fapt, scopurilor lumii reale, deoarece operațiunile sunt sensibile în mod rezonabil și limba nu este extrem complex. Poate cineva, într-o bună zi, va face o aplicație utilă în lumea reală din limbă ...

Fals.

9. Ori de câte ori

Imaginați-vă un adolescent supărat ca un limbaj de programare, și te-ai luat oriunde. Ori de câte ori este un limbaj simplu care face ceea ce vrea, când dorește.

Este nevoie de codul programului și tratează fiecare linie ca un element dintr-o listă de sarcini. Interpretul alege un articol dintr-o listă la întâmplare pentru a executa și execută instrucțiunea. În unele cazuri, declarația va conține o clauză care specifică faptul că nu poate fi executată până când nu se aplică anumite condiții. Acest lucru duce la întârzierea și întoarcerea declarației în lista de sarcini.

Nu vă gândiți că, pentru un minut, puteți controla de fapt un program Whenever. Imaginați-vă cât de greu acest lucru face programarea ceva de genul "99 Butelii de bere"! Programul ar readuce ceva care citea ca și cum ar fi consumat deja toate cele 99.

defer (4 || N (1) defer (4 || N (1) == N (2)) print (" N (3)) (N (1) + "sticle de bere pe perete"); 1 # 98,2 # 98,3 # 98;

Fotografie de foundphotoslj.

10. l33t

Ai vrut vreodată să vorbești ca un "l33t H4xX0r5"? Acum, puteți învăța limba de programare l33t. Verificați aplicația l33t "Hello World":

// Rețineți că opiniile exprimate în acest cod sursă nu coincid neapărat cu cele ale autorului: o) Gr34t l33tN3 $$? M3h ... iT 41 nu s0 7rIckY. l33t sP33k este U8er keWl 4nD eA5y wehn u 7hink 1t tHr0uGh. 1f u w4nn4be UB3R-l33t și d3f1n1t3lY w4nt în 0n a b4d4sS h4xX0r1ng s1tE !!! ; p w4r3Z c0ll3cT10n2 r 7eh l3Et3r! Qu4k3 cL4nS r 7eh bE5t tH1ng în 3nTIr3 w0rlD !!! g4m3s wh3r3 u g3t la 5h00t ppl r 70tAl1_y w1cK1d !! Eu sunt fr4GM4stEr și o să am t0t41_1Ly wpp phr34k1ng fL00r *** j3d1 5tYlE *** wIt y0uR h1dE !!!! L0L0L0L! l4m3rs t3lEphR4gG1nG wit m8tes k1kK $ r34lLy MELE A $$ l33t hAxX0r $ CrE4t3 u8er- k3wL 5tUff n34t pR0gR4mm1nG lAnguidGe, cum ar fi $ ... s0m3tIm3 $ Teh l4nGu4gES l00k l1k3 rE41_ 0neS la doar 7o PPL Th1nk th3y'r3 a face ju $ t n0rMal Lee7 5pEEk dar th3y“ re 5ecRetLy c0dE !!!! n080DY unDer5tAnD $ l33t SpEaK 4p4rT fr0m j3d1 !!!!! 50mE kId 0n A m $$ 4gEb04rD m1ghT 8E a r0xX0r1nG hAxX0r wH0 w4nT2 t0 bR34k 5tuFf, 0r mAyb3 ju5t sh0w 7eh wAy5 l33t ppl cAn 8E m0re lIkE y0d4 !!! hE i5 u8ER !!!! 1t m1ght 8E 5omE v1rus 0r a Pl4ySt4tI0n ch34t c0dE. 1t 3v3n MiTe jUs7 s4y "H3LL0 W0RLD !!!" u ju5t nu poate gu3s5. tH3r3 n3v3r any p0iNt l00KiNg sC3pT1c4l c0s th4t, be1_1Ev3 iT 0r n0t, 1s whAt th1s 1s !!!!! 5uxX0r5 !!! L0L0L0L0L!!!!!!!

În viața reală, l33t este "sUxX0r" din cauza faptului că nu îl puteți folosi pentru ceva util. Ei bine, înapoi la hacking cu toți ceilalți scenarii și trolls!


Fotografie de Yoz.


Cod