How to shoot yourself in the foot...

La version française

Nouveau : saisissez votre propre code !


Dernière mise à jour: 16 février 2000 (46 langages)

[ADA] [APL] [AWK] [Assembleur_6800] [Assembleur_68K] [Assembleur_8086] [Basic] [Visual_Basic] [C] [C++] [Caml_Light] [Cobol] [E] [Eiffel] [Emacs] [Euclid] [Forth] [Fortran] [H.P._Fortran] [CM_Fortran] [Calculatrice_HP_48_S/SX] [HTML] [OMG-IDL] [JAVA] [370_JCL] [Le_LISP] [Modula-2] [Motif] [Objective_C] [Pascal] [Paradox] [PERL] [PL/1] [Prolog] [Reveration] [Reverse_Polish_Language_(RPL)] [Scheme] [sh_(bourne_shell)] [zsh] [ksh] [csh] [tcsh] [SPL_(pour_HP3000)] [TeX] [Unix] [XBase]

Voici la traduction (par mes soins) d'un texte que j'ai découvert il y a quelques temps et qui essaie -à sa manière- d'expliquer la différence entre plusieurs languages... Je trouve que, humour mis à part, cela aide vraiment à s'y retrouver dans tous ces languages, et en plus vous trouverez même un contact qui pourra surement vous aider si vous avez des problèmes...

"La prolifération des langages de programmation modernes (qui semblent tous avoir piqué des idées les uns sur les autres) fait qu'il est parfois difficile de se souvenir quel langage vous êtes en train d'utiliser. Ce guide est conçut pour aider les programmeurs qui se trouvent dans un tel dilemme."

C:

Vous vous tirez dans le pied.


C++:

Vous créez accidentellement une douzaine d'instances de vous-même et leur tirez tous dans le pied. Apporter une aide médicale est impossible car vous ne pouvez pas affirmer quelles sont les copies, chacune se montrant du doigt et disant "c'est moi, là-bas."


PERL:

#!/usr/local/bin/perl

@J = split //,"J!k Phau^eHeens%rarrot&\ncl t ";for(0..24){print $J[$_*7%($#J+1)]}
(Fabien TASSIN )


JAVA:

1) Définir les classe 'Pied' et 'Pistolet'.

2) Lancer la compilation. Aller chercher un cafe. Revenir devant sa machine. Boire le café pendant que la compilation se termine. Verifier le nombre d'erreurs de compilation dues a l'oubli d'une majuscule dans un nom de fonction de trente lettres. Recommencer le processus jusqu'a elimination complete des erreurs. (Le cas echeant, recharger la machine a cafe)

3)Enfin, apres avoir réussi la compilation, lancer l'applet 'Shoot_Foot' - qui plantera parce que vous n'avez pas intercepté l'exception "Chaussure_non_enlevée". Ca vous apprendra a pas etre rigoureux dans vos programmes...

4) Recommencer depuis le debut jusqu'à obtention d'une applet qui tourne. Si votre Browser est bon, si votre machine a 32+ megs de ram et un CPU cadence a minimum 200 MHz, d'ici une demi-heure, la balle devrait avoir traverse la totalite du pied...

* PS : Java © Sun Microsystems, Inc - Building the Future

* PS2 : Sun Microsystems, Inc - Building the Future ne fournit pas les stocks de poudre a café.

* PS3 : Il se peut que votre applet ne puisse se lancer, faute de pouvoir accéder en écriture à la ressource locale 'Pied'. Dans ce cas, contactez Sun Microsystems, Inc - Building the Future, déposez une réclamation, et attendez la version 2.0 du JDK qui vous permettra d'accéder à la ressource - mais comme toutes les fonctions que vous avez utilisé seront declarees obsoletes entre-temps, vous pourrez jeter votre programme a la poubelle et retourner programmer en Fortran, qui, apres tout, n'est pas si mauvais que ca...

* PS4 : En fait je rale, mais j'adore Java... Seulement j'adore la mechanceté gratuite.. :)

(CortoMalt de #France2)

AWK:

awk: syntax error near line 1

awk: illegal statement near your foot, Please shoot again.
(Fabien TASSIN )


Objective C:

Le code source se compile sans problèmes, mais à l'éxécution on a :

Pied does not respond to selector Blessure: .
(Le Maje: Jean Alexis Montignies)


Eiffel:

C'est au C++ ce que Sharon Stone est à Josiane Balasko.

(Stephane JANTZEN)


OMG-IDL (object management group - Interface Definition Language ) :

// shoot.idl - revision 1 - Corba 1.0 compliant



typedef long Balle;

typedef string Cri;

enum Arme { pistolet, carabine, laser, bazooka };

typedef sequence<Balle> Chargeur;



interface Pied {



        void Ouch_ca_fait_mal(

                in Balle en_plomb,

                out Cri arghhhhh);

        void Reaction(

                // operations transactionelles

                // et Qualites de Service non

                // encore supportees par Corba.

                );

};



// Note pour le futur: chercher l'interoperabilite

// avec votre paire de Nike trouee par la balle

// ( bonne à jeter au Garbage Collector )
(Laurent REYNAUD)


ADA:

Vous ne pouvez pas vous tirer dans le pied car vous ne pouvez produire les 100 pages de spécifications des mots 'tirer', 'pied' et 'pistolet'.
De toutes façons, ADA interdit l'usage des armes...

('Un': Sylvain ROUGIER)


FORTRAN:

Vous vous tirez dans chaque doigt de pied, itérativement, jusqu'à ce que vous n'ayez plus de doigts de pied, puis vous changez de pied et recommencez l'opération. Si vous n'avez plus de balles, vous continuez quand-même, car vous n'avez pas pensé à installer un gestionnaire d'exceptions.


CM Fortran:

Vous tendez le pied, pointez l'arme et tirez. Manque de bol, vous vous ratez : la balle et le pied n'étaient pas alignés sur le meme processeur!

(Arnaud Ruch)


HPF (High Performance Fortran):

Après avoir lu les spécifs, vous pensez savoir comment vous tirer dans le pied. Malheureusement, aucun compilateur n'étant encore disponible, vous ne pouvez pas vérifier que ca marche.

(Arnaud Ruch)


Modula-2:

Après avoir réalisé que vous ne pouviez rien faire en ce langage, vous vous tirez une balle dans la tête.


COBOL:

AVEC un REVOLVER COLT45 VISER PISTOLER à JAMBE.PIED, ALORS appuyer BRAS.MAIN.DOIGT sur REVOLVER.GACHETTE. ALORS retourner REVOLVER à HOLSTER. VERIFIER si CHAUSSURE.LACET doit être refait.


FORTH:

Pied dans votre tirez.


APL:

Vous vous tirez dans le pied, puis vous passez tout le reste de la journée à vous demander comment le faire avec moins de caractères.


Pascal:

Le compilateur ne vous laissera pas vous tirer dans le pied.


Concurrent Euclid:

Vous tirez dans le pied de quelqu'un d'autre...


Motif:

Vous passez des jours à écrire une description UIL de votre pied, la trajectoire, la balle, et du motif complexe du manche en ivoire du pistolet. Quand vous arrivez enfin à appuyer sur la gâchette, le revolver s'enraye...


Unix: (les premiers jours...)

 % ls 

  foot.c foot.h foot.o ortiel.c orteil.o

 % rm * .o

  rm: .o: No such file or directory

 %ls

 %

 % mail root
(PhB: Philippe Brand)


ou avec un clavier QWERTY:

 % ls

  foot.c foot.h foot.o ortiel.c orteil.o

 % rm *;o

 o: Command not found.

 %ls

 %

 % mail root
(testé et approuvé par JnB: JB Jaquemard)


XBase:

Vous tirer dans le pied, pas de problème. Si vous voulez vous tirer dans le pied, vous devez utiliser "Clipper".


Paradox:

Non seulement vous pouvez vous tirer dans votre pied, mais les autres utilisateurs aussi.


Reveration:

Vous pourrez vous tirer dans le pied dès que vous aurez compris à quoi servent toutes ces balles.


BASIC:

Tirez dans votre pied avec un pistolet à eau. Sur gros système, continuez tant que tout le corps n'est pas trempé.


PL/1:

Vous définissez une area et en voulant resourcer le source du programme à partir du dump, le jcl vous tire une balle dans le pied.


Visual Basic:

Vous allez vous tirer dans le pied, mais vous allez tellement prendre votre pied à le faire que vous n'allez rien sentir.


Prolog:

Vous dites au programme que vous voulez vous faire tirer dans le pied. Le programme comprend comment le faire, mais la syntaxe ne permet pas de l'exprimer.


370 JCL:

Vous envoyez votre pied à MIS avec un document de 4000 pages expliquant comment vous voulez vous faire tirer dessus. Trois ans plus tard, votre pied revient, cuit à point.


(shell) SH: (Bourne Shell)

Vous tirez en l'air, car vous n'avez pas défini le bon environnement ou la bonne syntaxe. Vous décidez alors de le faire en CSH.


(shell) ZSH:

Voir SH.


(shell) KSH:

Voir SH, car votre adminstrateur systeme a fait un lien symbolique sur le sh (bourne shell).


(shell) CSH:

Vous prenez trois semaines pour confectionner votre programme, et lorsque vous le lancez, vous vous apercevez que vous avez oublié de tenir compte du nombre de balles. Vous abandonnez et décidez de recommencer en SH.


(shell) TCSH:

Voir CSH.


Assembleur 6800:

Vous n'avez pas assez d'accumulateurs pour accéder en même temps à votre main et au pistolet.

(Francis Mouthaud)


Assembleur 68000:

Le coup est partit trop tôt et vous avez pris la balle dans la tête.

(Francis Mouthaud)


Assembleur 80X86:

Vous ne pouvez pas tirer car le pistolet et les balles ne se trouvent pas dans le même segment.

(Francis Mouthaud)


Calculatrices HP 48 S/SX:

{ "Gauche" Droit" } 'PIEDS' STO



<< IF 'PIEDS' {} ==

   THEN

"Vous n'avez plus de pieds"

1 DISP

  ELSE

 "1 pied de moins" 1

DISP

     IF PIED SIZE 1 ==

     THEN {}

     ELSE 'PIED' 1 GET

1 ->LIST

     END 'PIED' STO

  END

>> 'SHOOT' STO



<< { "Gauche" "Droit" }

'PIEDS' STO

"Miracle, vos pieds ont repousse"

1 DISP >> 'LOURDES' 1 STO



SHOOT

 Un pied de moins



SHOOT

 Un pied de moins



SHOOT

 Vous n'avez plus de pied



LOURDES

  Miracles vos pieds ont repoussé



SHOOT

 Un pied de moins

........etc......

NB : au bout de 20 régénérations/destructions de vos pieds consultez un psychiatre (ou contactez J.M. Morandini pour passer dans son émission)

(FSA: Franck Aniere)


E:

Vous commencez bien sagement à définir en E ce qu'est un pied, puis comment tirer dessus. Soudain vous réalisez une chose épouvantable : le E n'existe que sur Amiga, et donc seul un Amiga peut vous tirer dans le pied. Dans un élan purement démocratique vous décidez que tous les modèles d'ordinateur ont le droit légitime de vous tirer dans le pied et vous recommencez en C.

(FSA: Franck Aniere)


Caml Light:

L'interprétation du code source est tellement lente que votre pied se tire en courant bien avant que la balle ne soit tirée.

(FSA: Franck Aniere)


Autre expérience:

"Erreur de type. Cette expression est du type tirage_dans_le_pied mais

est utilisee avec le type tirage_dans_le_pied"

En plus c'est véridique, à part le nom du type...

(Hubert Canon)


Scheme:

Il est possible de se tirer dans le pied, mais il faut d'abord définir les fonctions nécessaires pour manipuler les armes, les pieds, et eventuellement se soigner. Des journées de travail en perspective.

(Hubert Canon)


Le LISP (c'est à dire "a Lot of stupId Parentheses"):

Le LISP et aussi un langage fonctionnel manipulant des listes... D'ou son nom LISt-Processor généralement disponible sous forme d'interpreteur de commande.

; commentaires délimités par ;

; (def pour définir une fonction ici tirer avec un argument v

; celui ci est une liste v (terme1 terme2 terme3 ...)

; (car v) renvoie terme1

; (cdr v) renvoie (terme2 terme3 ...)

; (cadr v) revoie (car (cdr v)) c'est a dire terme2

; un terme 'quote n'est pas évalué, (eval x) évalue son argument

; ansi (eval '(+ 1 4)) renvoie 5

(def tirer (v) (print (car (eval v)) 'tirer (cadr (eval v)) v))

; la fonction (toplevel) correspond à la boucle principale

; de l'interpreteur de commande ; avec (end) elle est une des

; seules fonction a ne renvoyer aucun argument.

; dans le cas general (toplevel) lit l'entree au clavier, affiche

; le resultat puis se rapelle elle-meme.

(def toplevel () (let ((pieds (list 'se 'dans))) (tirer 'pieds)) (toplevel))

(toplevel)

(Le programme plante car le toplevel ne fait que le print et recommence...)

(Francois Maltey)


SPL (langage de programmation système des HP 3000):

Pour vous tirer dans le pied:
- Posez une balle sur votre pied
- Tapez dessus avec la crosse du revolver
- Si vous n'avez pas de revolver, posez la balle sur le sol et pietinez-la
- Si vous n'avez pas de balle, ou si vous n'avez pas de pied, utilisez un autre langage.

(Roger Costandi)


Emacs:

Comme on peut tout faire en emacs, il suffit de taper:

M-x tirer-dans-le-pied

après avoir mis dans son .emacs :

(require 'armes)

(require 'parties-du-corps)

(autoload 'tirer-dans-le-pied "tirer-dans-le-pied.el"

          "Pour se tirer dans le pied." t)
(Hubert Canon)


RPL (Reverse Polish Language):

6:piedskov

5:le

4:dans

3:balle

2:une

1:tirervitsh
(Radio-Nysos, Radio etudiante de Marne-la-Vallee.)


HTML:

Les armes ne sont pas encore implémentées en HTML mais si ça vous amuse vous pouvez toujours mettre votre pied sur votre Home Page en attendant.

(FSA: Franck Aniere)


TeX:

Quel est le point commun entre un medecin et un traitement de texte ? TeX bien sûr ! Car:

  1. TeX ne vous demande ni votre age, ni votre sexe, ni votre religion, ni le nom de votre machine, ni les caracteristiques de votre systeme d'exploitation...
  2. TeX soigne votre presentation sans licence d'utilisation, sans demander d'argent, ni de clef electronique
  3. TeX est d'usage libre deja compile sur toutes les machines existantes compilable sur votre prochain grille-pain virtuel si celui-ci a un lecteur de disquettes et poss e!de une machine de Turing dans ses entrailles.


"Docteur, ma question est, Comment se tirer dans les pieds avec un traitement de texte ?"

Voici l'ordonnance...

% Commentaire apres le %

\magnification 1200

% Pour tirer des balles 20 pour-cent plus grosses que prevu

% c'est 20 pour-cent plus facile a lire.

def\se{$\cal SE$}

% definir la macro \se pour ecrire SE avec des lettres

% calligraphiees a la facon des lettres rondes des formules mathematiques

% d'ou le mode mathematique $...$

\def\tirer{\hskip1.5truemm tirer}

% avancer de 1.5mm avant de tirer

\def\dans{{\bf\hbox{ dans }}}

% dans est gras et forcement dans une boite

\def\les{\raise-0.2em\vbox{\hbox{ les }\vskip0.3em\hrule}}

% les est souligne et l'ensemble est legerement descendu

\def\pieds{\it{ }\bgroup pieds \egroup\vfill\eject}

% pieds est en italique car ils tremblent

% puis la page est terminee et "ejectee"

\se\tirer\dans\les\pieds\string.

% La phrase se termine par un point qui est un caractere point et nom un

% macro caractere qui ecrit trois points...

\end

% fin des commandes TeX

Mais quelle idee de vouloir se tirer dans les pieds en TeX... c'est compliqué.

Par contre, TeX vous comprendra en une seule commande:

(Francois Maltey)


Saisissez votre code !

03/07/01 03h20

 REBOL

eric

http://

REBOL []
pied: [ 2 [ 10 "orteils" ]]
tirer: func [ balles arme ] [ foreach balles arme charger appuyer gachette ]
tirer 6 revolver [ pied/1 pied /2]

>>>ok 0.00001 seconde 0.2 kbytes


REBOL [ v2.0 non registered version ]
[ if you want strong encryption 457856521 bits
buy nerds version 13.56$]
[ if you want coffe maker version and wife version
buy familial version 19.88$]
[ if you want new concept compress artificial chicken your children 4568$ per server 556 $ per children and 5$ per chicken/bytes
buy the vegetarian version ]


17/07/00 16h56

 Rebol

USAmiga

http://hostwork.com

REBOL [
Title: "Balle-au-pied"
Date: 17-Jul-2000
File: ºll-au-pied.r
Purpose: { Se faire mal pour rire }
Comment: { Ca marche sur toutes les plateformes y-compris les pieds plats }
]

send pied@jambe.corps.com {Balle}


17/02/00 09h07

 PHP

Appleseed

http://

<?
echo "Moi j'prefere PHP parce que je peux faire...";

$db=mysql_connect("Localhost",$LOGIN,$PASS);
mysql_selectdb("Dummy",$db);

echo "etc... etc... et sans include des";
echo "perl_dbi, perl_datadumper, et j'en passe...";
?>


16/02/00 15h59

 PHP

Francis

http://bp.noos.org

<?

#heu... c'est comment déjà.... Finalement je préfère PERL ! :o)

?>


Nom/Pseudo: Language:
URL:

Vous pouvez voir la version originale (anglaise) ici.


Retour