Je n'ai pas l'impression que l'on évalue ce passage d'EiffelStudio au libre à sa juste valeur. Je vois même des commentaires tendant à déprécier l'intérêt du langage (qui, en effet, n'est pas parfait) ou l'activité des commerciaux d'ISE qui n'a pas conduit à une domination mondiale.
D'abord, en vitesse, les principales caractéristiques, maintes fois exposées, d'Eiffel.
La programmation par contrat permet de spécifier les applications ainsi que de les documenter. En passant, la gestion des exceptions est d'une remarquable simplicité : la génération d'une exception est la violation d'une assertion. Quand j'entrevois le pastis de la gestion des exceptions en, par exemple, Java, ça ne me donne pas envie. L'héritage, multiple bien sûr, ne simplifie pas la vie de ceux qui implémentent des compilateurs Eiffel ; mais celle du reste du monde. La généricité (qui peut certes être simulée par l'héritage, surtout quand il est multiple...) évite la duplication inutile de code et concourt à sa lisibilité.
Si l'on cherche un langage ayant ces trois caractéristiques, il n'y a pas pléthore. On peut ajouter une syntaxe d'une lumineuse clarté, héritée de Simula, de Pascal et d'Ada, l'identité entre la classe et le type, associée à l'unicité de leur représentation par un fichier ainsi que les nombreuses facilités, anciennes ou plus récentes, telles que l'héritage d'implémentation.
Le principal manque de la spécification d'Eiffel concerne les concepts de concurrence et d'application répartie. En ce qui concerne la concurrence, EiffelStudio implémente les threads et permet donc le multitâche. Bertrand Meyer a proposé une conception unifiée de ces concepts sous le nom de SCOOP (Simple Concurrent Object Oriented Programming). Son implémentation offrirait une remarquable facilité d'utlisation aux programmeurs, au prix d'une terrible difficulté pour ceux qui auraient à l'implémenter dans un compilateur.
Bertrand Meyer, le géniteur d'Eiffel, occupe désormais une position académique en tant que titulaire de la chaire de Génie Logiciel à l'Ecole Polytechnique Fédérale de Zurich. Parmi les projets de ses collègues ou élèves, on trouve :
Il y a plein d'autres projets concernant Eiffel sur le site de l'ETH. On peut aussi y découvrir des jeux développés par les étudiants comme sujet d'étude.
Ces derniers temps, Eiffel Software promouvait les qualités du langage en tant qu'elles facilitent les pratiques d'outsourcing et d'offshoring, propres à faire grincer les dents de beaucoup de monde, à commencer par les miennes... Cette facilité de sous-traiter le travail logiciel liée à la capacité de bien spécifier, en particulier grâce à la conception par contrats, est une chose à prendre en compte dans l'élaboration collective de logiciels libres. De plus, l'extrême lisibilité du langage, y compris par les non-spécialistes, peut permettre une communication fructueuse entre les praticiens des aspects métier et ceux de la programmation. Je pense qu'un projet métier libre, genre dont on peut espérer la prolification, tirerait grandement parti des qualités d'Eiffel dans le cadre d'un travail distribué et décentralisé, qui sont les caractéristiques fréquentes des projets libres.
Je ne vous parle pas de l'environnement de développement, faites-vous en une idée par votre propre pratique. Je risque d'oublier des délices, entre la navigation dans le code et les multiples outils et facilités qu'il offre et qui font du développement sous EiffelStudio un vrai plaisir. Jusqu'ici, je me retenais de le dire, la chose étant purement propriétaire, maintenant je peux y aller !
En gros, j'ai l'impression, purement subjective probablement, que certains d'entre vous trouvent que la mariée est trop belle.
# Goûtez-y !
Posté par Philip Marlowe . En réponse à la dépêche EiffelStudio devient un logiciel libre. Évalué à 10.
D'abord, en vitesse, les principales caractéristiques, maintes fois exposées, d'Eiffel.
La programmation par contrat permet de spécifier les applications ainsi que de les documenter. En passant, la gestion des exceptions est d'une remarquable simplicité : la génération d'une exception est la violation d'une assertion. Quand j'entrevois le pastis de la gestion des exceptions en, par exemple, Java, ça ne me donne pas envie. L'héritage, multiple bien sûr, ne simplifie pas la vie de ceux qui implémentent des compilateurs Eiffel ; mais celle du reste du monde. La généricité (qui peut certes être simulée par l'héritage, surtout quand il est multiple...) évite la duplication inutile de code et concourt à sa lisibilité.
Si l'on cherche un langage ayant ces trois caractéristiques, il n'y a pas pléthore. On peut ajouter une syntaxe d'une lumineuse clarté, héritée de Simula, de Pascal et d'Ada, l'identité entre la classe et le type, associée à l'unicité de leur représentation par un fichier ainsi que les nombreuses facilités, anciennes ou plus récentes, telles que l'héritage d'implémentation.
Le principal manque de la spécification d'Eiffel concerne les concepts de concurrence et d'application répartie. En ce qui concerne la concurrence, EiffelStudio implémente les threads et permet donc le multitâche. Bertrand Meyer a proposé une conception unifiée de ces concepts sous le nom de SCOOP (Simple Concurrent Object Oriented Programming). Son implémentation offrirait une remarquable facilité d'utlisation aux programmeurs, au prix d'une terrible difficulté pour ceux qui auraient à l'implémenter dans un compilateur.
Bertrand Meyer, le géniteur d'Eiffel, occupe désormais une position académique en tant que titulaire de la chaire de Génie Logiciel à l'Ecole Polytechnique Fédérale de Zurich. Parmi les projets de ses collègues ou élèves, on trouve :
une ébauche d'implémentation de SCOOP, SCOOPLI par Volkan Arslan
http://se.inf.ethz.ch/research/scoop.html
http://eiffelzone.com/esd/scoopli/index.html
AutoTest, un outil de test automatique de code Eiffel, écrit par Andreas Leitner et Ilinca Ciupa comme project de recherche
http://se.ethz.ch/people/leitner/auto_test/
Erl-G, une bibliothèque permettant la réflexivité et l'introspection du langage écrite par Andreas Leitner.
http://se.inf.ethz.ch/people/leitner/erl_g/
Il y a plein d'autres projets concernant Eiffel sur le site de l'ETH. On peut aussi y découvrir des jeux développés par les étudiants comme sujet d'étude.
Ces derniers temps, Eiffel Software promouvait les qualités du langage en tant qu'elles facilitent les pratiques d'outsourcing et d'offshoring, propres à faire grincer les dents de beaucoup de monde, à commencer par les miennes... Cette facilité de sous-traiter le travail logiciel liée à la capacité de bien spécifier, en particulier grâce à la conception par contrats, est une chose à prendre en compte dans l'élaboration collective de logiciels libres. De plus, l'extrême lisibilité du langage, y compris par les non-spécialistes, peut permettre une communication fructueuse entre les praticiens des aspects métier et ceux de la programmation. Je pense qu'un projet métier libre, genre dont on peut espérer la prolification, tirerait grandement parti des qualités d'Eiffel dans le cadre d'un travail distribué et décentralisé, qui sont les caractéristiques fréquentes des projets libres.
Je ne vous parle pas de l'environnement de développement, faites-vous en une idée par votre propre pratique. Je risque d'oublier des délices, entre la navigation dans le code et les multiples outils et facilités qu'il offre et qui font du développement sous EiffelStudio un vrai plaisir. Jusqu'ici, je me retenais de le dire, la chose étant purement propriétaire, maintenant je peux y aller !
En gros, j'ai l'impression, purement subjective probablement, que certains d'entre vous trouvent que la mariée est trop belle.