Langages de prog : la gallerie des horreurs

En espérant que ca a pas été posté 50 fois ici, un pote m’a envoyé une news de linuxfr :

[quote]Ça fait un mois que vous apprenez le C et vous comprenez toujours pas les pointeurs ?
Vous n’arrivez pas à relire votre programme Perl ?
Votre tortue Logo se déplace toute seul ?

Sachez que vous n’êtes PAS à plaindre !

La gallerie des horreurs.

 Les Quines

Bon, si quand même, parce que ce qui va suivre ne va pas vous aider à résoudre votre problème. En tout cas il existe des langages pires. Des programmes pires. Et il y a même des gens qui font ces programmes pires dans ces langages pires!

Parmi les langages on trouve (avec leur “hello world”):

Befunge qui est un langage bi-dimensionnel.
55+".dlrow ,olleH">:#,_@

BrainFuck : Il y a un tableau d’entiers de 1 octet et un pointeur sur ce tableau. Tous les entiers sont initialisés à zéro, et le pointeur pointe vers le premier élément. Il ne reste plus qu’à déplacer le pointeur, et à incrémenter/decrémenter la valeur vers laquelle il pointe.
Rudimentaire non?

+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++…+++.[-]
++++++++[<++++>-]<.#>+++++++++++[<+++++>-]<.>++++++++[<+++
-]<.+++.------.--------.[-]>++++++++[<++++>-]<+.[-]++++++++++.
(il n’y a pas de retour à la ligne en vrai. Ca fait une seule ligne.)

Unlambda est un autre langage de programmation obscure créé dans le seul but de rendre la programmation douloureuse et ardue (ou amusante et pleine de défis si vous préférez).
Tout comme le Scheme, ce langage ne manipule que des fonctions. Et dire que ça suffit!
```ssii`kiss`ksss`ksskskr ``sksi``sksk
d````````````.H.e.l.l.o.,. .w.o.r.l.d.! k kksskskk.*
(atroce non?)

Orthonormal est un autre langage bi-directionnel sympathique
0 ‘d’ ‘l’ ‘r’ ‘o’ ‘w’ ’ ’ ‘,’ ‘o’ ‘l’ ‘l’ ‘e’ ‘h’ s 0 c 0 ret

Il y en a plein d autres. tous plus immondes (attrayants) les uns que les autres.

Maintenant que vous avez trouvé votre langage de prédilection, essayez de programmer un (une?) quine.
C’est un programme qui affiche son propre code. Mais attention! Pas un qui lit sa source! Et c’est la que ça devient difficile…
Je n’ai pas réussi de mon coté… je vous en poste quelques uns ici… il y en a d’autres avec les liens… essayez si vous avez du temps!!

Scheme ou Lisp:
((lambda (x)
(list x (list (quote quote) x)))
(quote
(lambda (x)
(list x (list (quote quote) x)))))

C:
charf="charf=%c%s%c;main()
{printf(f,34,f,34,10);}%c";
main(){printf(f,34,f,34,10);}

Perl:
$=q{$=q{Q};s/Q/$/;print};s/Q/$/;print

Y’a des tarés je vous jure
Bon, je vous aurait prévenu, n’essayez pas ces langages ni de faire de quines avant d’avoir résolu vos problèmes avec vos langages favoris![/quote]

Excellent ! (enfin je trouve )
en tout cas ca m’a permis de retrouver le fameux Hello World ! qui, vous allez rire… je trouve souvent tres tres utiles !! sisi !

C’est tous des langages qui ont l’air obscures à premiere vu mais il suffit d’apprendre un peu la syntaxe et je suis sur qu’on pourra trouver au moins un avantage à chacun d’eux … Il ne sont peut être pas destiner à faire des Hello world !

Si je retrouve l’url j’edite mon post.

bah ouais, pourquoi ?

faut bien occuper ses week-end, non ??

ou alors peut-etre que c’est moi…

(et puis y a plus con hein : j’en ai vue qui ecrivait des system multi-tache pour dos, apres une beuverie, entre pote, a la cool quoi (d’ailleurs ca marchait super bien ce truc…))

[quote]Excellent ! (enfin je trouve )
en tout cas ca m’a permis de retrouver le fameux Hello World ! qui, vous allez rire… je trouve souvent tres tres utiles !! sisi ![/quote]Woa, ça existe même en RPG, c’est sur que c’est fun de faire tourner un AS400 pour afficher ça  ! Au passage quelqu’un sait si ils ont fini par faire une interface graphique sous Windows ? 

C’est interessant ces “Quines”, je connaissais même pas, en fait. J’adore les trucs absurdes. J’imagine des programmeurs en train de se marrer, une bière à la main, en se les racontant… Bah, faut bien qu’ils se défoulent, leur boulot est tellement “carré”. Ca me fait penser aussi aux Easter Eggs aussi, tiens.