Articles précédents : Logiciel
- [24] Qemu 0.8.0 est sorti !
- [21] Première version stable de Backup Manager
- [5] Lancement de JyConsole, nouvelle console Jython avancée
- [22] Sortie de Berkeley DB 4.4
- [16] ejabberd 1.0.0 : le serveur Jabber qui monte (...en charge)
- [63] Ruby on rails 1.0 est sorti
- [29] GCompris 7.2 pour Noël
- [7] PhpWebGallery 1.5
- [14] Sortie de Widelands Buid-9half
- [34] Sortie de Apache 2.2.0
Liens connexes
- SmartEiffel (342 hits)
- Téléchargement (137 hits)
- Changelog (98 hits)
- Wiki (125 hits)
Dépêche modérée par
Dépêche éditée par
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)...
SmartEiffel (342 hits)
Téléchargement (137 hits)
Changelog (98 hits)
Wiki (125 hits)
> Lire la suite (10 commentaires, moyenne: 3,4). [dépêche : 707 caractères]
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.
Au programme des nouveautés
Deux changements majeurs accompagnent la migration sur InriaGforge :
- 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 ?
Le Langage Eiffel [...] dispose de nombreuses fonctionnalités comme [...] l'héritage de type ou d'implémentations
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 () le 22/12/2005 à 07:37. (lien). Évalué à 5.Fais une recherche sur héritage non-conforme. En bref, l'héritage non-conforme (ou d'implémentations) te permet d'hériter des méthodes/variables du parent mais pas de son type.
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 (page perso, ) le 22/12/2005 à 20:14. (lien). Évalué à 2.Juste pour montrer la pertinence des choix fait à l'époque dans Sather... Il y a dans Sather la notion d'héritage d'interface et d'héritage de code (qui s'écrit par un include). Les deux notions sont dissociés (orthogonalisés). Lorsque l'on regarde un arbre de classe dans Sather, on est surpris de la simplicité de l'arbre !
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 () le 22/12/2005 à 12:16. (lien). Évalué à 2.On appelle cela aussi de l'heritage privé: tu hérite des méthodes d'un père, mais on ne peut pas pour autant affecté à une variable du type du pere un fils, contrairement a l'heritage public.
-
[^]Re: Qu'est-ce que ça veut dire ?
Posté par golum () le 22/12/2005 à 12:52. (lien). Évalué à 2.Quel est l'interêt alors si tu peux pas profiter du polymorphisme ?
-
[^]Re: Qu'est-ce que ça veut dire ?
Posté par reno () le 23/12/2005 à 11:49. (lien). Évalué à 1.Eviter de recoder l'implementation deux fois, c'est pour ça qu'on appelle ça l'héritage d'implémentation..
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 () le 23/12/2005 à 12:11. (lien). Évalué à 4.L'héritage d'interface est orthogonal à l'héritage de mise en ½uvre.
- 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...
A propos de SmartEiffel, il faut signaler que l'équipe qui s'en occupe a délibérément décidé d'ignorer les spécifications officielles du langage, désormais édictées par l'ECMA. A l'URL http://www.ecma-international.org/publications/files/ECMA-ST(...) on peut les trouver, et remarquer leur byzantine complication. A côté de ça le seul manque vraiment criant du langage, l'absence de spécifications sur la concurrence, n'est pas abordé.
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 (Jabber id, ) le 25/12/2005 à 15:59. (lien). Évalué à 2.Une petite imprécision : Bertrand Meyer n'est pas président du département de Génie Logiciel mais titulaire de la chaire de Génie Logiciel de l'ETH.




Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.