Paul Graham sur Java et les langages de programmation « hacker » (2001)

Paul Graham sur Java et les langages de programmation « hacker » (2001)

Cet essai est né de conversations que j'ai eues avec plusieurs développeurs sur le sujet des préjugés contre Java. Il ne s’agit pas d’une critique de Java, mais plutôt d’un exemple clair du « radar des hackers ».

Au fil du temps, les pirates informatiques développent un flair pour la bonne ou la mauvaise technologie. J'ai pensé qu'il pourrait être intéressant d'essayer d'exposer les raisons pour lesquelles je trouve Java discutable.

Certains de ceux qui l'ont lu l'ont considéré comme une tentative remarquable d'écrire sur quelque chose qui n'avait jamais été écrit auparavant. D’autres m’ont prévenu que j’écrivais sur des choses dont je ne savais rien. Donc, juste au cas où, je voudrais préciser que je n'écris pas sur Java (avec lequel je n'ai jamais travaillé), mais sur le « radar des hackers » (auquel j'ai beaucoup réfléchi).

L'expression « ne jugez pas un livre à sa couverture » trouve son origine à l'époque où les livres étaient vendus dans des couvertures en carton vierge que l'acheteur reliait à son goût. À cette époque, on ne pouvait pas reconnaître un livre à sa couverture. Depuis lors, cependant, l’industrie de l’édition a beaucoup progressé et les éditeurs modernes font de grands efforts pour que la couverture en dise beaucoup.

J'ai passé beaucoup de temps dans les librairies et je pense avoir appris à comprendre tout ce que les éditeurs veulent me dire, et probablement plus encore. La plupart du temps que j'ai passé à l'extérieur des librairies, je l'ai passé devant des écrans d'ordinateur, et je suppose que j'ai appris, dans une certaine mesure, à juger la technologie par ses couvertures. C'est peut-être une chance aveugle, mais j'ai réussi à éviter quelques technologies qui se sont révélées vraiment mauvaises.

L'une de ces technologies s'est avérée être Java pour moi. Je n'ai pas écrit un seul programme en Java et j'ai seulement parcouru la documentation, mais j'ai le sentiment que ce n'est pas destiné à devenir un langage très performant. Je peux me tromper : faire des prédictions sur la technologie est une activité dangereuse. Et pourtant, sorte de témoignage de l'époque, voici pourquoi je n'aime pas Java :

  1. Enthousiasme excessif. Ces normes ne doivent pas être imposées. Personne n'a essayé de promouvoir C, Unix ou HTML. Les véritables normes sont établies bien avant que la plupart des gens n’en entendent parler. Sur le radar d'un hacker, Perl n'a rien de moins que Java en raison uniquement de ses mérites.
  2. Java ne vise pas haut. Dans la description originale de Java, Gosling déclare explicitement que Java a été conçu pour être simple pour les programmeurs habitués au C. Il a été conçu pour être un autre C++:C avec quelques idées empruntées à des langages plus avancés. Comme les créateurs de sitcoms, de restauration rapide ou de circuits touristiques, les créateurs de Java ont consciemment conçu un produit pour des personnes qui n'étaient pas aussi intelligentes qu'eux. Historiquement, les langages conçus pour que d’autres puissent les utiliser ont échoué : Cobol, PL/1, Pascal, Ada, C++. Les plus réussis, cependant, sont ceux que les créateurs ont développés pour eux-mêmes : C, Perl, Smalltalk, Lisp.
  3. Motifs cachés. Quelqu’un a dit un jour que le monde serait meilleur si les gens n’écrivaient des livres que lorsqu’ils ont quelque chose à dire, au lieu d’écrire lorsqu’ils en ont envie. De même, la raison pour laquelle nous entendons parler de Java n’est pas parce qu’ils essaient de nous dire quelque chose sur les langages de programmation. Nous entendons parler de Java dans le cadre du projet de Sun de s'attaquer à Microsoft.
  4. Personne ne l'aime. Les programmeurs C, Perl, Python, Smalltalk ou Lisp sont amoureux de leurs langages. Je n'ai jamais entendu personne déclarer son amour pour Java.
  5. Les gens sont obligés de l'utiliser. Beaucoup de gens que je connais et qui utilisent Java le font par nécessité. Ils pensent que cela leur procurera du financement, ou ils pensent que cela attirera les clients, ou encore c'est une décision de la direction. Ce sont des gens intelligents ; si la technologie était bonne, ils l’utiliseraient volontairement.
  6. C'est un plat de nombreux chefs. Les meilleurs langages de programmation ont été développés par de petites équipes. Java est piloté par un comité. S’il s’avère que c’est un langage réussi, ce sera la première fois dans l’histoire qu’un comité crée un tel langage.
  7. Elle est bureaucratique. D'après le peu que je sais sur Java, il semble qu'il existe de nombreux protocoles pour faire quoi que ce soit. Les très bonnes langues ne sont pas comme ça. Ils vous laissent faire ce que vous voulez et ne vous gênent pas.
  8. Un battage médiatique artificiel. Maintenant, Sun essaie de prétendre que Java est piloté par la communauté, qu'il s'agit d'un projet open source comme Perl ou Python. Et pourtant, le développement est contrôlé par une immense entreprise. Le langage risque donc de se transformer en la même misère ennuyeuse que tout ce qui sort des entrailles d’une grande entreprise.
  9. Il est créé pour les grandes organisations. Les grandes entreprises ont des objectifs différents avec les pirates. Les entreprises ont besoin de langages réputés adaptés aux grandes équipes de programmeurs médiocres. Des langages avec des caractéristiques comme les limiteurs de vitesse sur les camions U-Haul, avertissant les imbéciles de ne pas causer trop de dégâts. Les hackers n'aiment pas les langages qui leur parlent de haut. Les pirates ont besoin de pouvoir. Historiquement, les langages créés pour les grandes organisations (PL/1, Ada) ont perdu, tandis que les langages créés par des hackers (C, Perl) ont gagné. Raison : le jeune hacker d'aujourd'hui est le CTO de demain.
  10. Les mauvaises personnes l'aiment. Les programmeurs que j’admire le plus ne sont généralement pas fous de Java. Qui l'aime ? Convient à ceux qui ne voient pas la différence entre les langages, mais entendent constamment parler de Java dans la presse ; des programmeurs de grandes entreprises, obsédés par la recherche de quelque chose de meilleur que le C++ ; des étudiants omnivores de pré-diplôme qui adoreront tout ce qui leur permettra de trouver un emploi (ou de passer un examen). Les opinions de ces personnes changent avec la direction du vent.
  11. Son parent traverse une période difficile. Le modèle économique de Sun est attaqué sur deux fronts. Les processeurs Intel bon marché utilisés dans les ordinateurs de bureau sont devenus suffisamment rapides pour les serveurs. Et FreeBSD semble devenir un système d'exploitation serveur aussi performant que Solaris. La publicité de Sun implique que vous aurez besoin de serveurs Sun pour les applications de production. Si cela était vrai, Yahoo serait le premier à racheter Sun. Mais quand je travaillais là-bas, ils utilisaient des serveurs Intel et FreeBSD. Cela est de bon augure pour l'avenir de Sun. Et si Sun tombe en panne, des problèmes peuvent entraîner Java vers le bas.
  12. L'amour du ministère de la Défense. Le ministère de la Défense encourage les développeurs à utiliser Java. Et cela semble être le pire signe de tous. Le ministère de la Défense fait un excellent travail (bien que coûteux) pour protéger le pays, il adore les plans, les procédures et les protocoles. Leur culture est complètement opposée à la culture des hackers ; lorsqu’il s’agit de logiciels, ils ont tendance à faire de mauvais paris. Le dernier langage de programmation dont le ministère de la Défense est tombé amoureux était Ada.

Attention, 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 ne pas l'aimer. J'essaie juste d'expliquer pourquoi je ne suis pas intéressé à apprendre Java.

Il peut sembler hâtif de rejeter un langage sans même tenter de le programmer. Mais c’est ce à quoi tous les programmeurs doivent faire face. Il existe trop de technologies pour toutes les explorer. Vous devez apprendre à juger par des signes extérieurs si cela en vaudra la peine. Avec la même hâte, j'ai abandonné Cobol, Ada, Visual Basic, IBM AS400, VRML, ISO 9000, SET Protocol, VMS, Novell Netware et CORBA, entre autres. Ils ne m'ont tout simplement pas plu.

Peut-être que je me trompe dans le cas de Java. Peut-être qu'un langage promu par une grande entreprise pour rivaliser avec une autre, développé par un comité pour les masses, avec beaucoup de battage médiatique, et apprécié par le ministère de la Défense, se révélera néanmoins être un langage soigné, beau et puissant que je serai heureux d'utiliser. programme dans. Peut être. Mais c'est très douteux.

Merci pour la traduction : Denis Mitropolsky

PS

Source: habr.com

Ajouter un commentaire