C’est pas le langage qui est laid, c’est ton code.
Combien de fois ai-je pu balancer cette sentence sur les différents forums et sur les réseaux sociaux (du temps où j’y allais encore). A la longue, c’est lassant je vous assure. Alors pour me répéter une nouvelle fois autant le faire dans les grandes largeurs en espérant sans trop y croire que l’idée pourrait s’ancrer une fois pour toute dans le cerveau de certains réfractaires.
Je suis PHPiste et à défaut d’en être fier, je ne m’en plains pas et je m’efforce de ne pas trop verser dans l’évangélisme béa de mon langage de prédilection.
Le PHP à une mauvaise réputation auprès de nombreux développeurs. Pour certains bas du front qui tapent sur un clavier avec une massue préhistorique : le PHP est un langage bas de gamme qui est réservé aux bidouilleurs du dimanche. Avec tout le respect que je leur doit : qu’ils se mettent au tricot et qu’ils nous foutent la paix.
Tout les langages (ou presque, on ne va pas se lancer dans une digression sur les langages exotiques) ont leur horreurs et incohérences. En gros, il est possible d’écrire du code élégant dans un langage et du code à faire saigner les yeux dans un autre et vice versa.
J’explique pour ceux du fond qui n’ont pas suivi. Donnez moi le langage de votre choix et je pourrais vous écrire le code le plus obscur et puant qui soit.
Éloignez les enfants et les personnes sensibles de l’écran, la suite va être choquante. Par exemple, combien de langages permettent de faire ce genre de truc
if (true) { ... }
On est d’accord, c’est aussi inutile que laid. Y a pas à tortiller, franchement même à trois grammes : on n’écrit pas une horreur pareille. Tout le monde est d’accord ? Poursuivons.
On peut écrire ce genre de monstruosité aussi bien en Java qu’en PHP ou en Ruby. Est-ce pour autant que l’on s’autoriserait à dire que le Java est un langage pourri ? Non, bien sur. Et pourtant il suffit de voir ce bout de code en PHP pour cracher sur le langage à l’éléphant bleu.
Choisir un langage, tel qu’il soit, n’est pas la garantie d’un code élégant et propre : ça c’est le travail du dev derrière son clavier de ne pas pondre des lignes de bouses à la chaîne.
Pour la petite histoire, les concours d’ugly code se font principalement en C/C++. Voilà, je pense que ces deux langages ont suffisamment fait leurs preuves avec le temps pour qu’on ne viennent pas cracher sur leurs bottes.
Ne tapez plus sur le langage mais sur le dev qui commet l’horreur, surtout s’il hante votre openspace.
Juste pour rire, en PHP un hello world s’écrit :
<!--?=${[${[${[${[${[${[${[${[${${![]}.=[]}.=${![]}{!![]}]}.=${!![${[${[
${[${[${[${[${[]}++]}++]}++]}++]}++]}++]}++]}{![]+![]+![]}]}.=${[${[$
{[${[${[]}++]}++]}++]}++]}{![]}]}.=${[${[${[${[${[${[${[${[]}++]}++]}
++]}++]}++]}++]}++]}{![]+![]}.${[]}{![]+![]}]}.=${![]}^${!![${[${[${[
]}++]}++]}++]}{![]+![]+![]}]}.=${[]}{!![]}]}.=${[${[${[${[${[${[${[${
[${[${[${[${[${[${[${[${[]}++]}++]}++]}++]}++]}++]}++]}++]}++]}++]}++
]}++]}++]}++]}++]}{![]+![]+![]+![]}.${[]}{![]+![]+![]+![]}]}.=${[${[$
{[${[]}++]}++]}++]}{![]+![]}.${![]}{![]+![]+![]}]}.=${[${![]}=${![]}{
!![]}]}{!![${!![${!![${![]}++]}++]}++]}^${!![${[${[${[]}++]}++]}++]};
Enjoy !
Image : cats and keyboards – Lucas Falcão – CC – BY – NC – SA