Loading...

LA COUVERTURE DE JAVA

Original

Avril 2001

Cet essai est né de conversations que j'ai eues avec plusieurs autres programmeurs sur les raisons pour lesquelles Java semblait suspect. Ce n'est pas une critique de Java ! C'est une étude de cas du radar des hackers.

Au fil du temps, les hackers développent un flair pour les bonnes (et les mauvaises) technologies. J'ai pensé qu'il pourrait être intéressant d'essayer de mettre par écrit ce qui rendait Java suspect à mes yeux.

Certaines personnes qui ont lu cela pensent que c'est une tentative intéressante d'écrire sur quelque chose qui n'a jamais été écrit auparavant. D'autres disent que je voudrai avoir des ennuis pour avoir l'air d'écrire sur des choses que je ne comprends pas. Donc, juste au cas où cela servirait à quelque chose, permettez-moi de préciser que je n'écris pas ici sur Java (que je n'ai jamais utilisé) mais sur le radar des hackers (sur lequel j'ai beaucoup réfléchi).

L'aphorisme « on ne peut pas juger un livre à sa couverture » est né à l'époque où les livres étaient vendus dans des couvertures en carton simples, à relier par chaque acheteur selon ses goûts. À cette époque, on ne pouvait pas juger un livre à sa couverture. Mais l'édition a progressé depuis : les éditeurs d'aujourd'hui travaillent dur pour faire de la couverture quelque chose à laquelle on peut juger un livre.

Je passe beaucoup de temps dans les librairies et j'ai l'impression d'avoir maintenant appris à comprendre tout ce que les éditeurs veulent me dire sur un livre, et peut-être un peu plus. Le temps que je n'ai pas passé dans les librairies, je l'ai passé principalement devant des ordinateurs, et j'ai l'impression d'avoir appris, dans une certaine mesure, à juger la technologie à sa couverture aussi. Ce n'est peut-être que de la chance, mais je me suis épargné quelques technologies qui se sont avérées être de véritables horreurs.

Jusqu'à présent, Java me semble être une horreur. Je n'ai jamais écrit de Java programme, jamais plus que jeté un coup d'œil sur des livres de référence à ce sujet, mais j'ai le pressentiment que ce ne sera pas un langage très réussi. Je me trompe peut-être ; faire des prédictions sur la technologie est une entreprise dangereuse. Mais pour ce que cela vaut, comme une sorte de capsule temporelle, voici pourquoi je n'aime pas l'apparence de Java :

  1. Il a été tellement énergiquement promu. Les vraies normes n'ont pas besoin d'être promues. Personne n'a eu à promouvoir C, ou Unix, ou HTML. Un vrai standard a tendance à être déjà établi au moment où la plupart des gens en entendent parler. Sur l'écran radar des hackers, Perl est aussi grand que Java, ou plus grand, juste sur la force de ses propres mérites.

  2. Il vise bas. Dans le livre blanc original de Java, Gosling dit explicitement que Java a été conçu pour ne pas être trop difficile pour les programmeurs habitués à C. Il a été conçu pour être un autre C++ : C plus quelques idées tirées de langages plus avancés. Comme les créateurs de sitcoms ou de malbouffe ou de voyages organisés, les concepteurs de Java étaient conscients de la conception d'un produit pour des personnes moins intelligentes qu'eux. Historiquement, les langages conçus pour que d'autres personnes les utilisent ont été mauvais : Cobol, PL/I, Pascal, Ada, C++. Les bons langages ont été ceux qui ont été conçus pour leurs propres créateurs : C, Perl, Smalltalk, Lisp.

  3. Il a des motivations cachées. Quelqu'un a dit un jour que le monde serait un endroit meilleur si les gens n'écrivaient des livres que parce qu'ils avaient quelque chose à dire, plutôt que parce qu'ils voulaient écrire un livre. De même, la raison pour laquelle nous entendons parler de Java tout le temps n'est pas parce qu'il a quelque chose à dire sur les langages de programmation. Nous entendons parler de Java dans le cadre d'un plan de Sun pour saper Microsoft.

  4. Personne ne l'aime. Les programmeurs C, Perl, Python, Smalltalk et Lisp aiment leurs langages. Je n'ai jamais entendu personne dire qu'il aimait Java.

  5. Les gens sont obligés de l'utiliser. Beaucoup de personnes que je connais qui utilisent Java l'utilisent parce qu'ils estiment qu'ils doivent le faire. Soit c'est quelque chose qu'ils ont estimé devoir faire pour obtenir des fonds, soit quelque chose qu'ils pensaient que les clients voudraient, soit quelque chose que la direction leur a demandé de faire. Ce sont des personnes intelligentes ; si la technologie était bonne, ils l'auraient utilisée volontairement.

  6. Il y a trop de cuisiniers. Les meilleurs langages de programmation ont été développés par de petits groupes. Java semble être géré par un comité. S'il s'avère être un bon langage, ce sera la première fois dans l'histoire qu'un comité a conçu un bon langage.

  7. Il est bureaucratique. D'après ce que je sais de Java, il y a semble-t-il beaucoup de protocoles pour faire les choses. Les vraiment bons langages ne sont pas comme ça. Ils vous laissent faire ce que vous voulez et se mettent de côté.

  8. Il est pseudo-branché. Sun prétend maintenant que Java est un effort communautaire, un langage open source comme Perl ou Python. Celui-ci se trouve juste à être contrôlé par une grande entreprise. Le langage est donc susceptible d'avoir la même lourdeur terne que tout ce qui sort d'une grande entreprise.

  9. Il est conçu pour les grandes organisations. Les grandes organisations ont des objectifs différents de ceux des hackers. Ils veulent des langages qui sont (censés être) adaptés à l'utilisation par de grandes équipes de programmeurs médiocres -- des langages avec des fonctionnalités qui, comme les limiteurs de vitesse dans les camions U-Haul, empêchent les imbéciles de faire trop de dégâts. Les hackers n'aiment pas un langage qui leur parle de haut. Les hackers veulent juste du pouvoir. Historiquement, les langages conçus pour les grandes organisations (PL/I, Ada) ont perdu, tandis que les langages de hackers (C, Perl) ont gagné. La raison : le hacker adolescent d'aujourd'hui est le CTO de demain.

  10. Les mauvaises personnes l'aiment. Les programmeurs que j'admire le plus ne sont pas, dans l'ensemble, captivés par Java. Qui aime Java ? Les costumes, qui ne connaissent pas un langage d'un autre, mais qui savent qu'ils continuent d'entendre parler de Java dans la presse ; les programmeurs des grandes entreprises, qui sont étonnés de découvrir qu'il existe quelque chose de mieux que C++ ; et les étudiants de premier cycle plug-and-chug, qui sont prêts à aimer tout ce qui pourrait leur trouver un emploi (est-ce que ce sera au test ?). Les opinions de ces personnes changent au gré du vent.

  11. Son papa est dans le pétrin. Le modèle économique de Sun est sapé sur deux fronts. Les processeurs Intel bon marché, du même type que ceux utilisés dans les ordinateurs de bureau, sont maintenant plus que suffisamment rapides pour les serveurs. Et FreeBSD semble être au moins aussi bon système d'exploitation pour les serveurs que Solaris. La publicité de Sun implique que vous avez besoin de serveurs Sun pour les applications de niveau industriel. Si cela était vrai, Yahoo serait le premier en ligne pour acheter des Suns ; mais lorsque j'y travaillais, les serveurs étaient tous des boîtes Intel exécutant FreeBSD. Cela augure mal pour l'avenir de Sun. Si Sun rencontre des difficultés, ils pourraient entraîner Java dans leur chute.

  12. Le DoD l'aime. Le département de la Défense encourage les développeurs à utiliser Java. Cela me semble être le signe le plus damné de tous. Le département de la Défense fait un excellent travail (bien que coûteux) de défense du pays, mais ils adorent les plans, les procédures et les protocoles. Leur culture est à l'opposé de la culture des hackers ; sur les questions de logiciels, ils auront tendance à parier sur le mauvais cheval. La dernière fois que le DoD a vraiment aimé un langage de programmation, c'était Ada.

N'oubliez pas que ce n'est pas une critique de Java, mais une critique de sa couverture. Je ne connais pas assez bien Java pour l'aimer ou le détester. Ce n'est qu'une explication de la raison pour laquelle je ne trouve pas que j'ai hâte de l'apprendre.

Il peut sembler cavalier de rejeter un langage avant même d'avoir essayé d'écrire des programmes dans celui-ci. Mais c'est quelque chose que tous les programmeurs doivent faire. Il y a trop de technologies à apprendre pour les apprendre toutes. Vous devez apprendre à juger par des signes extérieurs lesquels seront valoir votre temps. J'ai de même rejeté cavalierement Cobol, Ada, Visual Basic, l'IBM AS400, VRML, ISO 9000, le protocole SET, VMS, Novell Netware et CORBA, entre autres. Ils sentaient juste mauvais.

Il se pourrait que dans le cas de Java, je me trompe. Il se pourrait qu'un langage promu par une grande entreprise pour en saper une autre, conçu par un comité pour un public « grand public », promu aux nues, et aimé du DoD, soit néanmoins un langage propre, beau, puissant que j'aimerais programmer. C'est possible, mais cela semble très improbable.