Paul Graham sur Java et les langages de programmation Hacker (2001)

image

Cet essai était le développement de conversations avec plusieurs développeurs sur le sujet de Java biaisé. Ce n'est pas une critique de Java, mais plutôt un exemple clair d'un "radar de pirate".

Au fil du temps, les pirates développent un sentiment de bonne ou de mauvaise technologie. Je suppose qu'il pourrait être intéressant d'essayer d'expliquer les raisons pour lesquelles Java me semble douteux.

Quelqu'un qui l'a lu l'a considéré comme une tentative notable d'écrire sur quelque chose que personne n'avait écrit auparavant. D'autres ont prévenu que j'écrivais sur des choses dans lesquelles je ne comprenais 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 pensé).


L'expression «ne jugez pas un livre par sa couverture» est apparue à une époque où les livres étaient vendus dans des couvertures en carton vierges, que l'acheteur avait liées à son goût. À cette époque, vous ne pouviez rien dire sur le livre par sa couverture. Depuis lors, cependant, la publication a beaucoup progressé et les éditeurs modernes font beaucoup d'efforts pour que la couverture en dise beaucoup.

J'ai passé beaucoup de temps dans les librairies, et je suppose que j'ai appris à comprendre tout ce que les éditeurs veulent me dire, et peut-être autre chose. La plupart du temps que je passais à l'extérieur des librairies, je passais devant des écrans d'ordinateurs, et je crois avoir appris comment, dans une certaine mesure, juger les technologies par leurs couvertures. Cela peut être une chance aveugle, mais j'ai réussi à éviter plusieurs technologies qui se sont avéré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 je me suis limité à une étude superficielle de la documentation, mais j'ai le sentiment qu'elle n'était pas destinée à devenir un langage trop réussi. Je peux me tromper - faire des prédictions sur la technologie est une entreprise dangereuse. Et pourtant, une sorte de preuve de l'époque est la raison pour laquelle je n'aime pas Java:

  1. Un enthousiasme excessif. Il n'est pas nécessaire d'imposer ces normes. Personne n'a essayé de promouvoir C, Unix ou HTML. Les vraies normes sont établies bien avant que la plupart des gens en entendent parler. Sur le radar d'un hacker, Perl ne ressemble pas moins à Java en raison uniquement de ses avantages.
  2. Balises Java faibles. Dans la description Java originale, Gosling dit explicitement que Java a été créé pour ne pas causer de problèmes aux programmeurs habitués au C. Il a été conçu pour être le prochain C ++: C, avec quelques idées empruntées à des langages plus avancés. En tant que créateurs de sitcoms, de restauration rapide ou de voyages touristiques, les créateurs de Java ont délibérément développé un produit pour les personnes qui ne sont pas aussi intelligentes qu'eux. Historiquement, les langages développés pour être utilisés par d'autres personnes n'ont pas réussi: Kobol, PL / 1, Pascal, Ada, C ++. Le succès, cependant, s'est avéré être celui que les créateurs ont développé pour eux-mêmes: C, Perl, Smalltalk, Lisp.
  3. Motifs cachés. Quelqu'un a dit un jour que le monde serait un meilleur endroit si les gens n'écrivaient des livres que lorsqu'ils avaient quelque chose à dire, au lieu d'écrire lorsqu'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'ils essaient de nous dire quelque chose sur les langages de programmation. Nous entendons parler de Java dans le cadre du plan de rivalité de Microsoft avec Sun.
  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 utilisent Java font ce dont ils ont besoin. Ils croient que cela leur permettra de recevoir du financement, ou ils pensent que les clients vont l'aimer, ou c'est une décision de gestion. Ce sont des gens intelligents; si la technologie était bonne, ils l'utiliseraient volontairement.
  6. C'est le plat de nombreux cuisiniers. Les meilleurs langages de programmation ont été développés par de petites équipes. Java est géré par un comité. S'il s'avère que c'est une langue réussie, ce sera la première fois dans l'histoire que le comité crée une telle langue.
  7. Elle est bureaucratique. D'après le peu que je connais sur Java, il semble qu'il existe de nombreux protocoles pour faire quelque chose. Les langues vraiment bonnes ne sont pas comme ça. Ils vous permettent de tout faire et ne vous gênent pas.
  8. Sensation artificielle. 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 énorme entreprise. La langue court donc le risque d'être aussi misérable que tout ce qui sort des entrailles d'une grande entreprise.
  9. Il est conçu pour les grandes organisations. Les grandes entreprises ont des objectifs différents avec les pirates. Les entreprises ont besoin de langues réputées adaptées à de grandes équipes de programmeurs médiocres. Langages avec des fonctionnalités telles que les limiteurs de vitesse sur les camions U-Haul qui avertissent les imbéciles de faire trop de dégâts. Les pirates n'aiment pas les langues qui leur parlent. Les pirates ont besoin de puissance. Historiquement, les langues créées pour les grandes organisations (PL / 1, Ada) ont perdu, tandis que les langues créées par des pirates (C, Perl) ont gagné. Raison: le pirate juvénile d'aujourd'hui est le CTO de demain.
  10. De mauvaises personnes comme elle. Les programmeurs que j'admire le plus ne sont généralement pas enthousiastes à propos de Java. Qui aime-t-elle? Costumes, ceux qui ne voient pas la différence entre les langues, mais qui entendent constamment parler de Java dans la presse; des programmeurs de grandes entreprises, captivés par l'idée de trouver quelque chose de mieux que même le C ++; étudiants omnivores qui aimeront tout ce qui leur permettra d'obtenir un emploi (ou sera à l'examen). L'opinion de ces gens change avec la direction du vent.
  11. Son parent a du mal. 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 assez rapides pour les serveurs. Et FreeBSD semble obtenir un système d'exploitation serveur aussi bon que Solaris. Dans votre publicité, Sun implique que vous aurez besoin de serveurs Sun pour des applications industrielles. Si cela était vrai, Yahoo serait le premier à faire la queue pour acheter Sun. Mais quand j'y travaillais, des serveurs sur Intel et FreeBSD y étaient utilisés. Cela promet un sombre avenir à Sun. Et si Sun se couche, je peux prendre le problème en bas et Java.
  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 ressemble au pire signe de tous. Le ministère de la Défense réalise un excellent travail (bien que pas bon marché) pour protéger le pays; il adore les plans, procédures et protocoles. Leur culture est complètement opposée au hacker; en matière de logiciels, ils ont tendance à faire les mauvais paris. Le dernier langage de programmation dont le ministère de la Défense est tombé amoureux est Ada.

Gardez à l'esprit 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 ne pas l'aimer. J'essaie juste d'expliquer pourquoi je n'essaie pas d'apprendre Java.

Jeter une langue sans même essayer de la programmer peut sembler hâtif. Mais c'est ce que tous les programmeurs doivent faire. Il y a trop de technologies pour toutes les apprendre. Vous devez apprendre à juger par des signes extérieurs si cela vaudra votre temps. Avec la même hâte, j'ai abandonné Cobol, Ada, Visual Basic, IBM AS400, VRML, ISO 9000, SET, VMS, Novell Netware et CORBA, entre autres. Ils ne l'ont tout simplement pas aimé.

Peut-être qu'en cas de Java je me trompe. Peut-être que le langage promu par une grande entreprise dans le but d'en confronter un autre, développé par le comité pour l'essentiel, avec un battage médiatique et aimé par le ministère de la Défense, se révélera néanmoins être un langage soigné, beau et puissant dans lequel je serai heureux de programmer. C'est possible. Mais c'est très douteux.

Merci pour la traduction: Denis Mitropolsky

PS


Source: https://habr.com/ru/post/fr484244/


All Articles