Vous n'en avez pas cru vos yeux et pourtant il était là. Et bien là. Un humain avait écrit ça.
Il est resté dans votre mémoire comme le pire bout de code que vous ayez jamais vu.
Quelque fois ce "pire code" n'est pas trop méchant. Il relève juste du non sens :
Code java : | Sélectionner tout |
1 2 3 4 5 6 | int length= 0; for(int idx = 0; idx < a.length; i++){ length++; } System.out.println("La taille du tableau est : " + length); |
Ou comment calculer simplement la longueur du tableau à partir de la longueur ("a.length") qu'on a dès le départ...
D'autres sont juste parfaitement inutiles :
Code java : | Sélectionner tout |
1 2 3 4 | public Object toObject(String value){ return (Object) value; } |
En Java tout est Object. Aucun besoin d'effectuer un cast donc.
Mais ce code peut aussi aller jusqu'à vous hanter tant il est horrible. A se demander ce qui a bien pu passer par la tête du "créateur" de ce "monstre", voire si celui-ci sait dans quel langage il code :
Code java : | Sélectionner tout |
1 2 3 4 | public void close(InputStream stream){ stream = null; } |
InputStream est un flux vers une ressource. Pour le fermer, par exemple, il faut invoquer sa méthode close(), mais dans ce cas, le "créateur" s'est contenté de le mettre à null. Les développeurs Java seront d'accord pour admettre l'inutilité crasse de ce bout de code : les variables sont passées par copie de la valeur, donc ce ne sera "null" que dans la méthode.
Allez une dernière pour la route (pardon pour les yeux) :
Code java : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 | public int convert(String value){ if(value == "0"){ return 0; } else if (value == "1"){ return 1; } else if (value == "2"){ return 2; } // jusqu'à 25 ! else { return -1; } } |
Tout cela est faisable en une seule et simple ligne de Java (avec Integer.parseInt(String value) ).
Mais le pire c'est que, en plus, la méthode de cet autre "créateur fou" ne fonctionne pas du tout. En Java, on ne peut pas faire value == "1" pour comparer sa valeur (il faut faire "1".equals(value) ).
Invention de syntaxe, non-sens, aberration dans les raisonnements, vous avez déjà dû croiser ces codes cauchemardesques.
Que vous soyez développeur JavaScript, PHP, Ruby, C, C++, C#, Assembleur, Pascal, Visual Basic, Perl, Python ou autres (désolé de ne pouvoir tous les citer), faîtes nous part de votre expérience de codeur : quel est le pire du pire que vous avez dû lire ?
Une petite explication succincte pour que les non-spécialistes puissent également partager votre émois (qui je n'en doute pas est encore palpable aujourd'hui) est également la bienvenue.
Quant à tous ces honteux bouts de Java reproduits ici, ils m'ont été communiqués par Baptiste Witch (responsable rubrique Java) qui se fera un plaisir de nous en livrer d'autres. Un grand merci à lui.
Mais... je suis sûr que vous avez encore bien pire à raconter.
Pas vrai ?
Lire aussi :
Les rubriques Java, Développement Web et Langages (actus, forums, tutos) de Développez.com
Et pour se détendre après une journée bien chargée, la rubrique Humour Informatique