Er is niets frustrerender voor een webontwikkelaar dan uren te besteden aan het herstellen van een bug moeten gewoon werk. Vaak kom ik vast te zitten in een programmeringsstaat die aanvoelt alsof ik absoluut geen idee heb wat ik aan het doen ben, alsof de taal die ik gebruik (CSS, PHP, wat dan ook) eigenlijk een vreemde taal is.
Als wat ik heb beschreven je bekend voorkomt, biedt dit artikel troost en humor.
Esoterische programmeertalen hebben niet echt een ander doel dan het bieden van een beetje plezier of het bewijzen van een concept. Maar jongen, geven ze een lachje voor de rest van ons!
Als je ooit het gevoel hebt gehad dat een aap gewoon op een toetsenbord bonst, dan ook! zal je je meteen thuis voelen. Het is een taal die primair is ontworpen voor primaten, met name de orang-oetan. Met Ook! je gebruikt alleen drie syntax-elementen:
Hier zijn een paar voorbeelden van Ook! in actie:
Ook. Ook? Verplaats de geheugenpointer naar de volgende arraycel.
Ook? Ook. Verplaats de geheugenpointer naar de vorige arraycel.
Ook. Ook. Verhoog de arraycel waarnaar wordt verwezen door de geheugenaanwijzer.
Ook! Ook! Verlaag de arraycel waarnaar wordt verwezen door de geheugenaanwijzer.
Ook. Ook! Lees een personage uit STDIN en plaats de ASCII-waarde in de cel waarnaar de Memory Pointer verwijst.
Het idee krijgen? Ja ik ook niet…
Voor degenen die de kunst waarderen, is Piet een taal die je zeker leuk zult vinden. Geïnspireerd door de abstracte kunstenaar Piet Mondriaan, is Piet een programmeertaal die programma's omzet in abstracte geometrische schilderijen. Programma's bestaan uit 20 verschillende kleuren en worden vervolgens door de compiler gelezen op basis van hex-waarden om een programma uit te voeren.
Bekijk enkele van de gekke voorbeelden die Piet-programmeurs bedenken.
Helaas is de naam voor deze programmeertaal precies wat het doet: Whitespace maakt programma's op basis van ... witruimte. De Whitespace-website heeft een geweldige beschrijving van hoe de taal werkt.
De meeste moderne programmeertalen houden geen rekening met spaties in de witte spatietekens (spaties, tabbladen en nieuwe regels) en negeren ze, alsof ze er niet waren. We beschouwen dit als een grove onrechtvaardigheid voor deze perfect vriendelijke leden van de personageset. Moeten ze worden genegeerd, alleen omdat ze onzichtbaar zijn? Whitespace is een taal die de balans probeert te herstellen. Alle niet-witruimtetekens worden genegeerd; alleen spaties, tabbladen en nieuwe regels worden als syntax beschouwd.
LOLCODE is mijn persoonlijke favoriet onder esoterische talen. De taal is gebaseerd op het fenomeen LOLCats en gebruikt de syntaxis van LOLCats om programma's te laten uitvoeren. Of zoiets.
Als u alleen naar een voorbeeld van een LOLCODE-programma kijkt, wordt uitgelegd waarom het een favoriete favoriet is.
HAI KAN HEEFT STDIO? PLZ OPEN BESTAND "LOLCATS.TXT"? AWSUM THX ZICHTBARE FILE O NOES ONZICHTBARE "FOUT!" KTHXBYE
Verrassend genoeg heeft LOLCODE interesse getoond in delen van de programmeergemeenschap. De officiële site bevat een lijst met veel verschillende implementaties in talen zoals PHP, Python, Perl, .NET en Java. Wie weet, misschien zien we LOL-programmeercursussen ooit op school worden gegeven ...
Shakespeare is niet zo eenvoudig als LOLCODE om je hoofd rond te wikkelen. In het geval dat je het nog niet hebt uitgedacht, Shakespeare is een programmeertaal gebaseerd op de geschriften van de grote toneelschrijver. Elk programma bevat een titel, acts, scènes en personages om briljante broncode te maken die eigenlijk leuk is om te lezen.
Hier is Act I, Scene I van "Hello World":
Het beruchte Hello World-programma. Romeo, een jonge man met een opmerkelijk geduld. Juliet, een eveneens jonge vrouw met een opmerkelijke genade. Ophelia, een opmerkelijke vrouw die veel ruzie heeft met Hamlet. Hamlet, de vleier van Andersen die A / S beledigt. Act I: Hamlet's beledigingen en vleierij. Scene I: De belediging van Romeo. [Voer Hamlet en Romeo in] Hamlet: Je liegt domme vaderloze grote, stinkende, half-witte lafaard! Je bent net zo dom als het verschil tussen een knappe rijke dappere held en jezelf! Zeggen wat je denkt! Je bent zo dapper als de som van je dikke, kleine, gevulde, misbruikte, stoffige, oude, rotte stukjes en een mooie, eerlijke warme, vredige zonnige zomerdag. Je bent zo gezond als het verschil tussen de som van de zoetste roodste roos en mijn vader en jezelf! Zeggen wat je denkt! Je bent net zo laf als de som van jezelf en het verschil tussen een groot machtig trots koninkrijk en een paard. Zeggen wat je denkt. Zeggen wat je denkt! [Romeo afsluiten]
Het doel voor Chris Pressey, de maker van de Befunge-programmeertaal, was simpel: maak een taal die zo moeilijk te compileren mogelijk was. Befunge bereikt dit door de twee belangrijkste kenmerken van de ontmoedigende taal:
Hoe dan ook, er zijn erg slimme mensen (met manier te veel vrije tijd), die compilers voor Befunge hebben gemaakt.
\
reMorse is een taal die bedoeld is om op morsecode te lijken. Visioenen van onderzeeërs en telegrammen komen voor de geest met deze eenvoudige maar ongelooflijk uitdagende taal. Dit is de vernieuwingsversie van "Hello World":
- - -… -… -.---.;nieuwe lijn - - - .-. - ... -.- ... -. ---.;! - - - ... - ... -.---; d ---- ... -.---; l ---- ... - ... ---; r ----. - ... ---; o ---- ... -.- ... -. ---. W // auteur had geen zin om dit deel te doen - ...; voer alle karakters uit
Deze taal is misschien een beetje een lastige zaak voor de rest van ons (met uitzondering van amateurradiospecialisten). Je weet dat het een beer is om te programmeren als de auteur van de taal het basisvoorbeeld niet volledig afrondt vanwege de complexiteit.
Met een toepasselijke negatieve connotatie is FALSE een taal bedoeld om zelfs de slimste programmeurs te ontmoedigen. FALSE is gebaseerd op de Forth-taal en gebruikt een op leestekens gebaseerde syntaxis (bruto!) Om de programmeerervaring te verzachten.
Van de FALSE maker zelf:
Ik heb deze taal ontworpen met twee specifieke doelstellingen: iedereen verwarren met een versluierde syntaxis en een zo krachtig mogelijke taal ontwerpen met een kleine implementatie: in dit geval een compiler-uitvoerbaar bestand van slechts 1024 bytes (!), Geschreven in pure 68000-assembler.
Maar FALSE is niet het meest belachelijke van de esoterische talen, en zou eigenlijk echte werelddoelen kunnen dienen, omdat de operaties redelijk verstandig zijn en de taal niet uiterst complex. Misschien zal iemand ooit een bruikbare toepassing in de echte wereld maken vanuit de taal ...
vals.
Stel je een norse tiener voor als een programmeertaal en je hebt jezelf altijd. Wanneer is een eenvoudige taal die doet wat hij wil, wanneer hij wil.
Het neemt de programmacode en behandelt elke regel als een item in een takenlijst. De interpreter kiest willekeurig een item uit de lijst om uit te voeren en voert de instructie uit. In sommige gevallen bevat de verklaring een clausule die aangeeft dat deze niet kan worden uitgevoerd totdat bepaalde voorwaarden van toepassing zijn. Dit resulteert in uitstel van de verklaring en plaatsing op de takenlijst.
Denk niet dat je een momentopname kunt regelen wanneer je maar wilt. Stel je voor hoe moeilijk het programmeren zoiets als "99 Flessen Bier" maakt! Het programma retourneert iets dat leest alsof het al 99 heeft verbruikt.
uitgesteld (4 || N (1) uitgesteld (4 || N (1) == N (2)) print ("Haal er één uit en geef het door,"); uitstel (4 || N (2) == N (3)) afdrukken (N (1) + "flessen bier aan de muur."); 1 # 98,2 # 98,3 # 98;
Ooit al eens willen spreken als een "l33t H4xX0r5"? Nu kunt u door de l33t programmeertaal te leren. Bekijk de l33t "Hello World" -toepassing:
// Merk op dat de opvattingen in deze broncode niet noodzakelijk samenvallen met die van de auteur: o) Gr34t l33tN3 $$? M3h ... IT 41n't s0 7RIckY. l33t sP33k is 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 tot 5h00t ppl r 70tAl1_y w1cK1d !! Ik ben de fr4GM4stEr en ik zal t0t41_1Ly wIpE de fr34k1ng fL00r *** j3d1 5tYlE *** wItH y0uR h1dE !!!! L0L0L0L! t3lEphR4gG1nG l4m3rs wit mijn m8tes r34lLy k1kK $ A $$ l33t hAxX0r $ CrE4t3 u8er- k3wL 5tUff zoals n34t pR0gR4mm1nG lAnguidGe $ ... s0m3tIm3 $ teh l4nGu4gES l00k net l1k3 rE41_ 0neS 7o maken ppl Th1nk th3y'r3 ju $ t n0rMal lEE7 5pEEk maar th3y' re 5ecRetLy c0dE !!!! n080DY unDer5tAnD $ l33t SpEaK 4p4rT fr0m j3d1 !!!!! 50mE kld 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 !!! hE i5 de u8ER !!!! 1t m1ght 8E 5omE v1rus 0r a Pl4ySt4tI0n ch34t c0dE. 1t 3v3n MiTe jUs7 s4y "H3LL0 W0RLD !!!" u ju5t kan niet gu3s5. tH3r3's n3v3r anY p0iNt l00KiNg sC3pT1c4l c0s th4t, be1_1Ev3 iT 0r n0t, 1s whAt th1s 1s !!!!! 5uxX0r5 !!! L0L0L0L0L!!!!!!!
In het echte leven is l33t "de sUxX0r" vanwege het feit dat je het niet voor iets nuttigs kunt gebruiken. Ach, terug naar hacking met alle andere scriptkiddies en trollen!