Java, Php et Ruby sont dans un bateau…

Après son best seller “Better, Faster, Lighter Java” (il est dans la liste) Bruce Tate fait beaucoup parler de lui. Son interview déchaîne les passions sur theserverside.

En tout cas cette interview contient pas mal de remarques qui m’ont paru très pertinentes et synthétiques.

The problem Java grew up around solving was slapping a web UI around legacy stuff, mostly relational databases.

Si j’y réfléchi deux secondes c’est effectivement ce que je fais depuis que je travaille. Il poursuit en expliquant que java a résolu le problème d’une manière “slow & clean” alors que d’autre langage le font d’une manière “quick & dirty”, je pense à php, Tim Bray aussi.

Avec Ruby On Rails Bruce Tate pense avoir trouvé une manière “quick & clean” le meilleur des deux mondes. La preuve? Un projet java non fini au bout de 4 mois a été bouclé en une grosse semaine avec ROR. J’ai fait passer le “10 minutes test” à ROR. Les 10 minutes se sont transformée en 2 heures mais j’ai effectivement pu réaliser une appli toute bête avec un formulaire CRUD. Et l’appli et effectivement clean quelqu’un qui connaît ROR n’aura aucune difficulté à comprendre ce qu’elle fait et à la maintenir.

Ca ne veut pas dire que ROR est une solution miracle, sur certain point la plateforme java reste incomparablement meilleure. Il donne les exemples des problèmes de two-phase commit et d’intégration avec beaucoup de système legacy.

Il met ensuite le doigt sur une des faiblesses de java:

Java doesn’t express data very well. While Java can declare structures that hold data, it doesn’t express the data itself well. And, that’s a big reason we’re seeing a lot of XML being bolted on to Java frameworks

Et effectivement je code de plus en plus en xml… Mais depuis quand xml est-il un langage de programmation?? Est-ce que les annotations sont la réponse à ce problème?

Enfin il traite du problème du “design by committee

Sometimes, the JCP seems to say ‘Find a problem. Build the standard. And, lastly, gather the experience.’ To me, that’s wrong.

C’est ce qui conduit a des specs comme EJB 1 et 2, WS-*… A l’opposé l’approche qui consiste à implémenter en premier puis à spécifier ce marche a produit par exemple Spring et Hibernate (ATTENTION on parle du processus pour créer un standard pas un application métier). C’est aussi l’approche que recommande l’IETF pour la définition des standards qui font tourner l’Internet, ça leur a plutôt réussi, non?

5 thoughts on “Java, Php et Ruby sont dans un bateau…

  1. balluche

    >“slow & clean” alors que d’autre langage le font d’une manière “quick & dirty”, je pense
    >à php, Tim Bray aussi.

    slow est un mot clé qui convient bien à JAVA. slow pour le développement, slow pour l’exécution. Prétendre que JAVA dans les benchmarks (orientés) peut être plus rapide que du C compilé c’est se moquer du monde … ;-). Pour faire tourner JAVA, il faut déjà charger un GROS framework en mémoire.

    >Avec Ruby On Rails Bruce Tate pense avoir trouvé une manière “quick & clean” le
    >meilleur des deux mondes. La preuve? Un projet java non fini au bout de 4 mois a été
    >bouclé en une grosse semaine avec ROR

    C’est pas la preuve que JAVA est une usine à gaz çà ?

    Des projets JAVA portés vers PHP, on en trouve aussi ;-). Je me fais pas de soucis pour PHP : il a 10 ans et il sera pas remplacé de sitôt par une techno émergente. De toute façons on peut aussi faire du “beau objet” en PHP5.

    C’est sans rancune, mais en tant que PHPGuy, je dis ce que j’en pense ;-). Et çà m’intéresse d’échanger mes points de vue avec un JAVAGuy.

  2. Aurélien Pelletier Post author

    >slow est un mot clé qui convient bien à JAVA. slow pour le développement, slow pour l’exécution.
    Cela fait très longtemps que les problèmes de performance de java (qui date du jdk1.1) sont résolus. Ce qui illustre la beauté du concept de machine virtuelle, un code “lent” sur une jvm 1.1 est rapide sur une jvm 1.4 sans avoir à modifier ou recompiler quoi que ce soit. Si problème de performance il y a, c’est toujours un problème d’architecture ou de codage avec les pieds.
    Si les contraintes de perf sont extrêmes (temps réel, calculs lourds) le C ou le C voir l’assembleur sont certainement plus adapté que java.

    >Pour faire tourner JAVA, il faut déjà charger un GROS framework en mémoire.
    Pour faire tourner PHP on charge un petit framework en mémoire à chaque nouvelle requête. On le fait une seule fois au démarrage en java, c’est pour celà que java a plus de succès côté serveur que client. Ca existe encore les machines avec moins d’1Go de RAM? Les serveurs avec moins de 2Go? Par contre je reconnais que ça pose un problème pour les hébergements mutualisés. C’est la raison pour laquelle on ne trouve pas d’hébergeur java gratuit ou peu cher. (j’en parle ici http://blogpro.toutantic.net/2005/03/24/barcelona/)

    >C’est pas la preuve que JAVA est une usine à gaz çà ?
    Non c’est la preuve que Ror était plus adapté que java pour résoudre le problème que posait ce projet. Comme on n’a pas plus de détail sur ce projet on ne peut rien en déduire de plus.

    >Je me fais pas de soucis pour PHP
    Moi non plus, PHP est une techno simple, efficace et performante qui répond à un besoin. Je ne me fait pas non plus de soucis pour java qui bien que plus complexe répond à d’autres besoins. En fait aucune techno émergeante ne peut se développer de manière importante et remplacer les technos actuelles s’il n’y a pas un nouveau besoin à combler. Par contre pour s’améliorer php comme java ou .net feraient bien de regarder ce qui se passe à côté.

    >C’est sans rancune, mais en tant que PHPGuy, je dis ce que j’en pense 😉 . Et çà m’intéresse d’échanger mes points de vue avec un JAVAGuy.
    Tout à fait d’accord. Mon expérience avec PHP est relativement limité mais elle rejoint l’analyse de Tim Bray. Par exemple j’ai rajouté une fonction tags à dotclear (http://blog.toutantic.net/index.php?2005/04/30/151-tags-multi-categories-pour-dotclear)
    A l’époque Dotclear avait déjà à la réputation d’être orienté objet et d’avoir un code très propre. Mais très sincèrement le code de dotclear n’est pas maintenable par quelqu’un d’autre que son créateur. Et pour avoir aussi mis le nez dans le code de SPIP, oui le code de dotclear est propre! Je tiens à préciser que je sais qu’Olivier Meunier (le créateur de dotclear) fait de gros efforts sur ces points et j’attends avec impatience la nouvelle version de Dotclear.
    Les blogs sont un bon exemple, j’en ai essayé plusieurs. Jroller le logiciel de blog le plus connu dans le monde java est médiocre par rapport à WordPress ou Dotclear. Pour fabriquer un moteur de blog php est plus adapté que java. Par contre je ne m’amuserais pas à bâtir le système d’information complet d’une entreprise que je dois maintenir et faire évoluer pendant des années sur la base de PHP.

    Tout est une question de besoins, la technologie n’est qu’un moyen est l’architecture permet de relier les deux. On en reparle dans le prochain billet qui est en train de mijoter.

Comments are closed.