Pourquoi les logiciels Eclipse sont-ils écrits en Java ?


Si nous examinons la question d'un point de vue purement orienté langage et technique, quelle serait l'alternative ?

Au moment des origines du projet Eclipse, C# n'existait pas. On peut soutenir qu'il n'est toujours pas suffisamment multiplateforme pour prendre en charge des fonctionnalités Eclipse virtuellement identiques et complètes sur toutes les plates-formes sur lesquelles Eclipse fonctionne actuellement.


Visual Basic, un langage de développement d'applications polyvalent populaire à l'époque, aurait été viable mais il était mono-plateforme - Windows - donc il est exclu. Même chose pour un concurrent populaire (à l'époque) de Visual Basic, Borland Delphi.

Maintenant, Delphi a essentiellement disparu et Visual Basic .NET a les mêmes limites que C#.

Peut-être que Python aurait pu être - ou pourrait maintenant être - utilisé. Mais si un langage typé dynamiquement est formidable pour les petits projets légers, il devient rapidement un fardeau pour les grands projets. La nature auto-documentée des déclarations de types manifestes explicites est une grande aide sur les grands projets, en particulier lors du développement en équipe.

Et Python est plutôt lent par rapport à Java.

Le C++ aurait certainement été - et pourrait maintenant être - un candidat. Il prend en charge les interfaces utilisateur multiplateformes et d'autres bibliothèques, et il est suffisamment performant et plus que puissant, et il est statiquement typé, mais il a de nombreux bords tranchants et "gotchas" qui peuvent ralentir le développement et entraîner des logiciels fragiles et peu fiables. En effet, ce sont certaines des questions qui ont motivé le développement et la promotion de Java en premier lieu.

Presque tous les autres choix de langage sont plus obscurs, et donc ont moins de choix de bibliothèques ainsi que d'autres limitations potentielles. Seuls quelques-uns - comme peut-être Haskell - auraient une chance, mais ils sont tous suffisamment hors bande en termes de développement polyvalent pour qu'ils n'aient probablement même pas été - ou soient maintenant - considérés.

Donc, il n'y avait vraiment rien d'autre de convenable lorsque le projet a démarré, et il n'y a toujours pas de réelles alternatives - sauf peut-être d'autres langages JVM (et compatibles avec Java) comme Kotlin ou Scala.

Donc, si l'objectif est de produire un IDE à grande échelle, extensible et multiplateforme, qu'utiliseriez-vous d'autre que Java ?

.