COUVERTURE DE JAVA
OriginalAvril 2001
Cet essai est le fruit de conversations que j'ai eues avec plusieurs autres programmeurs sur les raisons pour lesquelles Java me semblait suspect. Ce n'est pas une critique de Java ! C'est une étude de cas sur le 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 d'écrire ce qui me fait penser que Java est suspect.
Certains de ceux qui ont lu cet article pensent que c'est une tentative intéressante d'écrire sur un sujet qui n'a jamais été traité auparavant. D'autres disent que je vais avoir des ennuis si je donne l'impression d'écrire sur des sujets que je ne comprends pas. Donc, juste au cas où cela vous aiderait, laissez-moi préciser 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 reconnaît pas un livre à sa couverture » trouve son origine à l'époque où les livres étaient vendus dans de simples couvertures en carton, que chaque acheteur pouvait relier selon ses goûts. À cette époque, on ne reconnaissait pas un livre à sa couverture. Mais l'édition a progressé depuis : les éditeurs actuels travaillent dur pour que la couverture soit un élément qui permette de reconnaître 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 à propos d'un livre, et peut-être même 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 à son apparence. C'est peut-être juste un coup de chance, mais j'ai réussi à me sauver de quelques technologies qui se sont révélées être de véritables horreurs.
Jusqu'à présent, Java me semble être un fléau. Je n'ai jamais écrit de programme Java, je n'ai même pas parcouru d'ouvrages de référence à ce sujet, mais j'ai le sentiment que ce langage ne connaîtra pas beaucoup de succès. Je peux me tromper : faire des prédictions sur la technologie est une entreprise dangereuse. Mais pour ce que ça vaut, en guise de capsule temporelle, voici pourquoi je n'aime pas l'apparence de Java :
-
On en a fait un battage médiatique très énergique. Les véritables standards n'ont pas besoin d'être promus. Personne n'a eu besoin de promouvoir C, Unix ou HTML. Un véritable standard a tendance à être déjà établi au moment où la plupart des gens en entendent parler. Sur le radar des hackers, Perl est aussi important que Java, voire plus, simplement en raison de ses propres mérites.
-
C'est un choix peu ambitieux. Dans le livre blanc original sur Java, Gosling dit explicitement que Java a été conçu pour ne pas être trop difficile pour les programmeurs habitués au 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 junk food ou de voyages organisés, les concepteurs de Java ont délibérément conçu un produit pour des gens moins intelligents qu'eux. Historiquement, les langages conçus pour être utilisés par d'autres personnes 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.
-
Il y a des arrière-pensées derrière tout ça. Quelqu’un a dit un jour que le monde serait meilleur si les gens écrivaient des livres uniquement parce qu’ils ont quelque chose à dire, plutôt que parce qu’ils le souhaitent. De même, si nous entendons parler de Java tout le temps, ce 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 affaiblir Microsoft.
-
Personne ne l'aime. Les programmeurs C, Perl, Python, Smalltalk et Lisp adorent leurs langages. Je n'ai jamais entendu personne dire qu'il aimait Java.
-
Les gens sont obligés de l'utiliser. Beaucoup de ceux que je connais utilisent Java parce qu'ils se sentent obligés de le faire. Soit parce qu'ils ont estimé qu'ils devaient le faire pour obtenir un financement, soit parce qu'ils pensaient que les clients le souhaiteraient, soit parce que la direction leur a demandé de le faire. Ce sont des gens intelligents ; si la technologie était bonne, ils l'auraient utilisée volontairement.
-
Il y a trop de cuisiniers. Les meilleurs langages de programmation ont été développés par de petits groupes. Java semble être dirigé par un comité. S'il s'avère être un bon langage, ce sera la première fois dans l'histoire qu'un comité aura conçu un bon langage.
-
C'est bureaucratique. D'après ce que je sais de Java, il semble y avoir beaucoup de protocoles pour faire certaines choses. Les très bons langages ne sont pas comme ça. Ils vous laissent faire ce que vous voulez et ne vous gênent pas.
-
C'est une pseudo-tendance. Sun prétend désormais que Java est un langage open source populaire comme Perl ou Python. Il se trouve que ce langage est contrôlé par une société géante. Il est donc probable que le langage ait la même lourdeur terne que tout autre langage issu d'une grande entreprise.
-
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 (supposés) adaptés à l'utilisation par de grandes équipes de programmeurs médiocres - des langages avec des fonctionnalités qui, comme les limiteurs de vitesse des 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. Ils 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.
-
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 professionnels en costume, qui ne distinguent pas un langage d'un autre, mais savent qu'ils n'arrêtent pas 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 d'encore meilleur que C++ ; et les étudiants de premier cycle qui sont prêts à aimer tout ce qui pourrait leur permettre d'obtenir un emploi (est-ce que ce sera au test ?). L'opinion de ces gens change à chaque vent.
-
Son père est dans une situation difficile. Le modèle économique de Sun est mis à mal sur deux fronts. Les processeurs Intel bon marché, du même type que ceux utilisés dans les ordinateurs de bureau, sont désormais plus que suffisamment rapides pour les serveurs. Et FreeBSD semble être un système d'exploitation au moins aussi bon pour les serveurs que Solaris. La publicité de Sun laisse entendre que les applications industrielles nécessitent des serveurs Sun. Si c'était vrai, Yahoo serait le premier à acheter des serveurs Sun ; mais lorsque j'y travaillais, les serveurs étaient tous des boîtiers Intel sous-jacents à FreeBSD. Cela ne présage rien de bon pour l'avenir de Sun. Si Sun rencontre des problèmes, ils pourraient entraîner Java dans leur chute.
-
Le ministère de la Défense aime ça. Il encourage les développeurs à utiliser Java. C’est à mon avis le signe le plus accablant de tous. Le ministère de la Défense fait un bon travail (bien que coûteux) pour défendre le pays, mais il adore les plans, les procédures et les protocoles. Sa culture est à l’opposé de celle des hackers ; sur les questions de logiciels, ils ont tendance à faire de mauvais paris. La dernière fois que le ministère de la Défense 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 suffisamment Java pour l'aimer ou le détester. C'est juste une explication de la raison pour laquelle je ne trouve pas que je sois désireux de l'apprendre.
Il peut sembler désinvolte de rejeter un langage avant même d'avoir essayé d'écrire des programmes avec. Mais c'est quelque chose que tous les programmeurs doivent faire. Il existe trop de technologies pour les apprendre toutes. Vous devez apprendre à juger par des signes extérieurs qui en valent la peine. J'ai également rejeté avec désinvolture Cobol, Ada, Visual Basic, IBM AS400, VRML, ISO 9000, le protocole SET, VMS, Novell Netware et CORBA, entre autres. Ils sentaient 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 affaiblir une autre, conçu par un comité pour un public « grand public », vanté à l'extrême et adoré par le DoD, se révèle néanmoins être un langage propre, beau et puissant dans lequel j'aimerais programmer. C'est possible, mais cela semble très peu probable.