Loading...

JAVA'S COVER

Original

Avril 2001

Cet essai est issu 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 nez pour les bonnes (et les mauvaises) technologies. J'ai pensé qu'il pourrait être intéressant d'essayer d'écrire ce qui me faisait penser que Java me semblait suspect.

Certaines personnes qui ont lu cela pensent que c'est une tentative intéressante d'écrire sur quelque chose qui n'a pas encore été écrit. D'autres disent que je m'attirerai des ennuis en ayant l'air d'écrire sur des choses que je ne comprends pas. Donc, au cas où cela pourrait être utile, permettez-moi de clarifier que je n'écris pas ici sur Java (que je n'ai jamais utilisé) mais sur le radar des hackers (auquel 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 de carton brut, pour être reliés par chaque acheteur selon son propre goût. À 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 par lequel on peut juger un livre.

Je passe beaucoup de temps dans les librairies et j'ai l'impression d'avoir 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 par sa couverture aussi. C'est peut-être juste de la chance, mais je me suis épargné quelques technologies qui se sont avérées être de véritables puanteurs.

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

  1. Il a été tellement énergiquement vanté. Les vrais standards n'ont pas besoin d'être promus. Personne n'a dû 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 gros que Java, ou plus, rien que par la force de ses propres mérites.

  2. Il vise bas. Dans le document 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, de malbouffe ou de circuits touristiques, les concepteurs de Java concevaient consciemment un produit pour des gens moins intelligents qu'eux. Historiquement, les langages conçus pour que d'autres 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 motifs cachés. 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 on entend parler de Java tout le temps n'est pas parce qu'il a quelque chose à dire sur les langages de programmation. On entend 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 quelqu'un dire qu'il aimait Java.

  5. Les gens sont forcés de l'utiliser. Beaucoup des gens que je connais qui utilisent Java l'utilisent parce qu'ils ont l'impression de devoir le faire. Soit c'est quelque chose qu'ils ont senti devoir faire pour obtenir un financement, soit quelque chose qu'ils pensaient que les clients voudraient, soit quelque chose que la direction leur a dit de faire. Ce sont des gens intelligents ; 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. C'est bureaucratique. D'après ce que je sais de Java, il semble y avoir beaucoup de protocoles pour faire les choses. Les vrais bons langages ne sont pas comme ça. Ils vous laissent faire ce que vous voulez et se mettent hors du chemin.

  8. C'est pseudo-tendance. Sun fait maintenant semblant que Java est un effort de langage open source de base comme Perl ou Python. Celui-ci se trouve juste être contrôlé par une grande entreprise. Donc le langage aura probablement 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. Elles 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 comme à des enfants. 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 directeur technique de demain.

  10. Les mauvaises personnes l'aiment. Les programmeurs que j'admire le plus ne sont, dans l'ensemble, pas captivés par Java. Qui aime Java ? Les cadres, qui ne savent pas distinguer un langage d'un autre, mais savent qu'ils entendent 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, prêts à aimer tout ce qui pourrait leur trouver un emploi (sera-ce dans l'examen ?). L'opinion de ces gens change avec chaque vent.

  11. Son papa est dans l'embarras. Le modèle économique de Sun est miné sur deux fronts. Les processeurs Intel bon marché, du même type que ceux utilisés dans les machines de bureau, sont maintenant plus que suffisamment rapides pour les serveurs. Et FreeBSD semble être au moins aussi bon un système d'exploitation pour les serveurs que Solaris. La publicité de Sun laisse entendre que vous avez besoin de serveurs Sun pour des applications de haute qualité industrielle. Si c'était vrai, Yahoo serait en première ligne pour acheter des Suns ; mais quand j'y travaillais, les serveurs étaient tous des boîtes Intel exécutant FreeBSD. Cela ne présage rien de bon 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 le signe le plus accablant de tous. Le Département de la Défense fait un excellent travail (bien que coûteux) pour défendre le pays, mais ils adorent les plans et 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 de travers. La dernière fois que le DoD a vraiment aimé un langage de programmation, c'était Ada.

Gardez à l'esprit qu'il ne s'agit pas d'une critique de Java, mais d'une critique de sa couverture. Je ne connais pas assez bien Java pour l'aimer ou le détester. C'est juste une explication de la raison pour laquelle je ne suis pas impatient de l'apprendre.

Il peut sembler cavalier de rejeter un langage avant même d'avoir essayé d'écrire des programmes dedans. Mais c'est quelque chose que tous les programmeurs doivent faire. Il y a trop de technologies là-bas pour les apprendre toutes. Vous devez apprendre à juger d'après les signes extérieurs lesquelles vaudront la peine de votre temps. J'ai de même cavalièrement rejeté 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 peut que dans le cas de Java, je me trompe. Il se peut qu'un langage promu par une grande entreprise pour en saper une autre, conçu par un comité pour un public "grand public", vanté jusqu'à plus soif, et aimé du DoD, se révèle néanmoins être un langage propre, beau, puissant que j'adorerais programmer. C'est possible, mais cela semble très peu probable.