Au programme des nouveautés, côté organisation du projet. On a d'abord assisté à la mise en place d'un wiki, ensuite le projet est arrivé sur InriaGforge qui est la plateforme de développement collaboratif de l'INRIA.
Côté logiciel, on découvre des nouveautés et améliorations dans le changelog. La commande eiffeldoc permet de produire de la documentation à partir des classes (comme javadoc). Le système de plugins qui permet d'intégrer des bibliothèques existantes à du code Eiffel a été amélioré. Un widget gérant OpenGL est disponible dans la bibliothèque Vision. La bibliothèque réseau est maintenant entièrement compatible avec les systèmes POSIX et propose même un serveur HTTP (béta)... Le Langage Eiffel est un langage objet créé par Bertrand Meier. Il s'inspire de plusieurs langages (ALGOL68, Smalltalk...) et dispose de nombreuses fonctionnalités comme l'héritage multiple, la généricité (simple et contrainte), l'héritage de type ou d'implémentation, la programmation par contrat...
Le fait qu'Eiffel reste proche des théories initiales des langages objets a fait de lui un bon langage pédagogique pour appréhender le développement orienté objet.
Il faut cependant noter qu'en mai 2005, après de longues discussions sur la mailing-list l'équipe de SmartEiffel a décidé de ne pas suivre la norme ECMA-367 (ECMA Eiffel) qu'elle considère trop éloignée de "l'esprit initial" du langage.
Aller plus loin
- SmartEiffel (6 clics)
- Téléchargement (4 clics)
- Changelog (1 clic)
- Wiki (2 clics)
# Au programme des nouveautés
Posté par _cb (site web personnel) . Évalué à 7.
- d'une part, l'abandon de CVS au profit de Subversion.
- d'autre part, et c'est sans doute le point le plus représentatif de la volonté d'ouverture du projet, la mise à disposition _totale_ des sources.
Est ainsi rendu disponible le fameux répertoire 'work/' contenant, en autres, les germes du compilateur, divers outils et, surtout, l'ensemble des fichiers de test.
Pour compléter :
- le projet sur le site de l'INRIA : http://gforge.inria.fr/projects/smarteiffel/
- la commande pour récupérer le dépôt en anonyme : svn checkout svn://scm.gforge.inria.fr/svn/smarteiffel
# Qu'est-ce que ça veut dire ?
Posté par benoar . Évalué à 2.
Quelqu'un aurait des infos sur la signification de "héritage d'implémentations" ? Je vois pas trop ce que ça peut être...
[^] # Re: Qu'est-ce que ça veut dire ?
Posté par ZeGrunt . Évalué à 5.
Dans le dialecte SmartEiffel (oui, il y a un fork avec Standard Eiffel), le mot-clé insert sert à ça. Si B hérite de A de façon non-conforme, alors un objet de type B pourra utiliser toutes les méthodes héritées de A mais ne pourra pas être affecté à un objet de type A. Au demeurant, toujours en SmartEiffel, il n'y a plus de classe mère de toutes les autres : ANY est "insérée" mais pas "inhéritée" par défaut.
A+
ZeGrunt
[^] # Re: Qu'est-ce que ça veut dire ?
Posté par Sytoka Modon (site web personnel) . Évalué à 2.
Un autre avantage est que l'on peux faire du "supertyping", c'est à dire introduire une nouvelle classe en plein milieu d'un arbre de classe déjà fait !
[^] # Re: Qu'est-ce que ça veut dire ?
Posté par reno . Évalué à 2.
[^] # Re: Qu'est-ce que ça veut dire ?
Posté par golum . Évalué à 2.
[^] # Re: Qu'est-ce que ça veut dire ?
Posté par reno . Évalué à 1.
Ca c'est un truc que je n'ai pas compris avec l'héritage d'interface en Java, chaque Classe héritant d'une interface doit recoder les fonctions, ça représente un gros boulot!
[^] # Re: Qu'est-ce que ça veut dire ?
Posté par Sylvain Sauvage . Évalué à 4.
- Héritage d'interface : le type est le même mais les mises en ½uvres sont totalement indépendantes ; les classes sont conceptuellement similaires (elles rendent les mêmes services) mais, en interne, elles sont différentes (pas les mêmes attributs, pas les mêmes algorithmes...).
- Héritage de mise en ½uvre : même mise en ½uvre mais pas le même type ; les classes n'ont pas de lien conceptuel mais le code serait du copier-coller.
# En évoquant Eiffel...
Posté par Philip Marlowe . Évalué à 7.
Le compilateur propriétaire d'Eiffel Software, fondée par Bertrand Meyer (et non Meier... Bertrand Meyer semble avoir pris de la distance par rapport à la compagnie qu'il a créée et occupe désormais une position académique en tant que président du département de Génie Logiciel de l'ETH, alias l'Ecole Polytechnique Fédérale de Zurich, dont est issu un certain Albert Einstein, mais c'est une autre histoire...) dispose d'une gestion des threads, mais celle-ci est une particularité de ce compilateur lui-même particulier, bref n'est pas issu d'une norme et n'en crée pas une.
On peut noter que Bertrand Meyer dans Object Oriented Software Construction deuxième édition, dont on peut trouver chez Eyrolles une traduction française sous le titre Conception et Programmation Orientées Objet http://www.eyrolles.com/Informatique/Livre/9782212091113/liv(...) propose une conception de la concurrence, SCOOP (Simple Concurrent Object-Oriented Programming) d'une remarquable simplicité pour l'utilisateur. Cette simplicité est à rapprocher de la simplicité d'utilisation des autres concepts réunis dans Eiffel (héritage multiple et répété, généricité simple et contrainte, conception par contrats). Simple pour l'utilisateur, certes, une autre paire de manches quand il s'agit de construire un compilateur ! Les concepts d'Eiffel définis dès 1984 ont attendu une dizaine d'années pour voir leurs premières implémentations. Il est à craindre que l'implémentation de SCOOP dans un compilateur soit d'un ordre de difficulté encore supérieur à celui de la totalité de celle des précédents concepts. Autant dire, surtout que (malheureusement) le succès d'Eiffel n'est pas de nature à submerger le reste, ce sera probablement pour une prochaine fois et pour un autre langage. On peut cependant noter avec espoir que l'équipe de SmartEiffel continue de faire figurer l'implémentation de SCOOP dans la liste des future improvements http://smarteiffel.loria.fr/papers/future.html sur leur site.
Il reste désormais trois compilateurs Eiffel (quatre si l'on considère à part le compilateur pour Mac d'Object Tools) : ISE Eiffel http://eiffel.com/ , SmartEiffel qui est le sujet de cette nouvelle et celui d'Object Tools, Visual Eiffel http://www.visual-eiffel.com/front_content.php qui est depuis juillet, dans l'indifférence générale, passé en GPL. Visual Eiffel a les caractéristiques suivantes : il respecte la troisième version du langage, antérieure, celle avant que soit définie la notion (mal nommée) d'agent. Il semble par contre qu'il respecte avec une grande rigueur cette spécification. La deuxième particularité est qu'il engendre directement un fichier exécutable, à la différence des deux autres qui utilisent le C comme langage intermédiaire. La troisième particularité est qu'il ne supporte que l'architecture i386, et c'est une grosse restricition.
Pour de plus amples informations, plongez dans les liens. Je ne peux toutefois pas m'empêcher de paraphraser Frank Zappa : Eiffel is not dead, but it smells ffunny.
[^] # Re: En évoquant Eiffel...
Posté par Philip Marlowe . Évalué à 2.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.