Les améliorations sont nombreuses, parmi lesquelles on peut noter le support d'Unicode, diverses optimisations du code généré (en C ou en bytecode Java), et l'intéressante apparition d'une implémentation (encore au stade alpha cependant) du Design Pattern Visitor.
Pour rappel, nous devons le langage Eiffel à B. Meyer. Sa conception remonte à 1985, et a été pensée de manière à exploiter la programmation objet de façon la plus "pure" possible.
Le projet SmartEiffel quant à lui, a débuté officiellement en 1995 (initialement sous le nom de SmallEiffel) sous l'impulsion d'enseignants-chercheurs de l'Université de Nancy, afin d'offrir une alternative performante aux compilateurs commerciaux.
Aller plus loin
- Site officiel de SmartEiffel (6 clics)
- Changelog (1 clic)
- La FAQ du langage Eiffel (1 clic)
- Le concurrent direct, le compilo de B.Meyer (1 clic)
# Re: Une nouvelle version stable de SmartEiffel
Posté par Troy McClure (site web personnel) . Évalué à 5.
--
ne me moinssez pas, je viens tout juste de retrouver mon droit de vote!!
[^] # Re: Une nouvelle version stable de SmartEiffel
Posté par Gniarf . Évalué à -3.
--
REAL PROGRAMMERS DON'T EAT QUICHE
[^] # Re: Une nouvelle version stable de SmartEiffel
Posté par nobotag . Évalué à 0.
# Re: Une nouvelle version stable de SmartEiffel
Posté par TazForEver . Évalué à 3.
[^] # Re: Une nouvelle version stable de SmartEiffel
Posté par Là Yop . Évalué à 9.
Eiffel, SmallEiffel, conception, programmation, objets, contrats, et cetera : http://www.loria.fr/~colnet/publis/PolyEiffel.ps(...)
[^] # Re: Une nouvelle version stable de SmartEiffel
Posté par reno . Évalué à 6.
Mais j'ai beaucoup aimé Object Oriented Software Construction de B. Meyer: il est pas tout récent (je l'ai lu en 93), comme son titre l'indique ce n'est pas un bouquin pour apprendre Eiffel, mais il utilise Eiffel pour expliquer les principes orienté objet.
J'étais très déçu que Java n'applique pas les principes du "Design by Contract", ça plus la lenteur de Sun pour corriger les bugs..
[^] # Re: Une nouvelle version stable de SmartEiffel
Posté par Philip Marlowe . Évalué à 1.
Par rapport à la première édition française de l'ouvrage, qui était chez Interéditions, le nombre de pages a quasiment triplé !
# Inria
Posté par nobotag . Évalué à 0.
le site officiel de Smart eiffel est tout en anglais sans une version Française ou je me trompe ?
Je dis ça parce que on a la seule langue au monde à avoir un vocable spécifique pour ordinateur - à la place de computer.
je ne ferai pas l'affront aux éminents esprit qui trainent leur regards usés, mais néanmoins sagaces, par ici de traduire et d'insister sur l'importance de cette difference lexicale.
Nous avons aussi une langue plus précise et plus simple à bien maitriser que l'anglais. Mais il est bien évident que ça n'a pas la moindre importance parce que GW BUSH ne lit que l'anglais, n'est-ce pas ?
Et puis au cas où un jeune de banlieue voulait marcher sur nos pate bandes ça lui ferait toujours ça à apprendre en plus.
Moinnsser moi, moinsser moi crient les champignons
[^] # Re: Inria
Posté par nobotag . Évalué à 0.
Institut National de Recherche en Informatique et Automatique
(ça a toujours été ça ? oui sans doute )
Je répète le moins c'est notre liberté - vous n'êtes pas d'accord :
moinssez le plus c'est pour les béni oui oui )
[^] # Re: Inria
Posté par Remuz . Évalué à 3.
Mais que ça ne devienne pas de la provocation pure et simple, en sortant des bêtises énormes (je ne développerait pas, mais, comme exemple : quel rapport avec les jeunes des banlieues? Avec GWBush?)
Merci
--
Remuz
[^] # Re: Inria
Posté par Caeies . Évalué à 0.
Certains jeunes des banlieues (sans faire de généralisation ni d'idées reçues) ont déja du mal à s'en sortir avec la langue de Molière, alors si en plus les sites français n'existent plus que sous la langue de Shakespeare, cela met déja une double barrière. Déja que le vocabulaire dans le domaine informatique est pour le moins obscur (ça fait plus jargon et donc pro qui s'y connais), alors si en plus on ne fait plus que de l'anglais même en France, on ajoute des barrières à l'accessibilité de cet outils ... qui sont déja cher (pour le porte monnaie).
Maintenant je suis d'accord que le GWB ça fait un peu provoc. (m'enfin c'est marrant quand même)
Caeies, second degré quand tu nous tiens ....
[^] # Re: Inria
Posté par rhizome . Évalué à 0.
Tiens, une idée reçu et une généralisation dans la même phrase ! :)
> le vocabulaire dans le domaine informatique est pour le moins obscur (ça fait plus jargon et donc pro qui s'y connais)
Oh, encore une idée reçue !
[^] # Re: Inria
Posté par nobotag . Évalué à 1.
je t'assure que les idées que j'ai si je les ai reçues c'est pas par un milieu socio professionnel - désolé pour les tiennes
je t'accorde que c'est simplificateur comme expression "jeunes de banlieue" - le malheur c'est qu'effectivement il est plus difficile d'apprendre les "codes" sociaux , et a fortiori les langues quand on est dans un milieu socio-culturel pauvre.
Les barrieres de langue Sont une stratégie de sélection d'auditoire , que ce soit conscient ou implicite. il n'est d'ailleurs pas nécessaire de passer par une langue étrangère pour celà : ça se pratique trés bien dans les villages par un lexique spécifique aux habitants, et dans les familles avec les "private joke".
En fait dans la plupart des contextes ce n'est pas gènant. Ca l'est quand ce n'est pas délibéré, par négligence donc dans des publications de grande audience,
et,
quand c'est un barrrage délibéré d'une élite.
Dans quelle case peut-on mettre le site de Smart Eiffel (INRIA) ?
Bon - mon propos était de provoquer des gens intelligents et ils ont réagi, c'est un bon résultat, continuons le combat.
[^] # Re: Inria
Posté par nobotag . Évalué à 1.
Se sentir compris un peu c'est agréable
Jeunes de toutes les banlieues de tous les pays
Unissez vous et exigez qu'on parle français !!!
Latin ou espagnol à la rigueur.
mais pas ce dialecte de Bastard William (Guillaume le Batard avant d'etre le Conquérant)
[^] # Re: Inria
Posté par Anaximandre . Évalué à 5.
[^] # Re: Inria
Posté par nobotag . Évalué à 0.
Les outils informatiques computer/ordinateurs se sont beaucoup développés au 20eme siecle , les mots par lesquels ils ont été identifié dans à peu prés toutes les langues sont venus des pays qui avaient quelque chose à dire là dessus au début.
Il n'y a que deux langues où on a "créé" des mots pour désigner ces inventions. les autres ont importé les mots avec les machines ou les bouquins (comme fast-food en français - on n'a pas de mot pour ça on prend l'américain)
La maitrise de l'anglais est "réputée" facile pour atteindre un niveau correct de communication, on le baragouine sans peine mettons.
Par contre pour y étre bon il faut intégrer les anglicisme et l'orthographe/prononciation non rationnelle, ce qui est réputé trés difficile pour un non anglophone.
Le français en contient moins, mème si on pourrait faire mieux.
Pour la précision cette idée je la tiens d'anglophone de ma connaissance et que tu ne connais pas, mème de nom - fais toi ton idée par toi mème.
Pour ton cas ce qui me semble évident c'est que tu es un peu bebete de prétendre que connaitre 2 langues est plus simple qu'en connaitre 1 et que d'apprendre une langue que personne autour de toi ne parle volontiers (mettons qu'il y en ait qui le parle ...) est aisé.
Ca ne l'est pas pour moi en tout cas. ;)
[^] # Re: Inria
Posté par Anaximandre . Évalué à 1.
# Et le Troll, il arrive quand ?
Posté par Dugland Bob . Évalué à 3.
[^] # Re: Et le Troll, il arrive quand ?
Posté par reno . Évalué à 1.
Pour la covariance, c'est amusant mais ça m'évoque tout de suite les interminables discussion sur les Newsgroup entre covariance et contravariance :-).
Sinon, qu'est-ce que c'est la "rétention des descendants"?
[^] # Re: Et le Troll, il arrive quand ?
Posté par Matthieu Moy (site web personnel) . Évalué à 1.
Ils n'ont pas tord.
Une interface ne change pas la taille de l'objet par exemple. Or, en C++, quand tu as de l'héritage multiple avec des données, le cast de pointeur vers l'un ou l'autre des parents entraine un décallage d'addresse, qui fout la merde dans bien des cas. Par exemple, (parent *)x va marcher là ou (parent *)(void *)x va faire un segfault.
Le C++ n'est pas capable de faire le lien entre une implémentation héritée d'un parent et une méthode virtuelle pure héritée d'un autre parent. Il dit toujours que la méthode n'est pas implémentée.
En Java, on est sur de ne jamais avoir de problème si la hierarchie de classes est un DAG.
[^] # Re: Et le Troll, il arrive quand ?
Posté par Philip Marlowe . Évalué à 4.
Bref condamner l'héritage multiple en prenant C++ pour exemple ne permet pas une démonstration rigoureuse.
[^] # Re: Et le Troll, il arrive quand ?
Posté par Pierre Tramo (site web personnel) . Évalué à 2.
C'est plus de la méthode Coué qu'autre chose.
Il y a des patterns basés sur l'héritage multiple (PAC Amodeus par exemple, pour les IHM), et il faut gruicker dans tous les sens pour pouvoir les implémenter en Java.
Le C++ n'est pas capable de faire le lien entre une implémentation héritée d'un parent et une méthode virtuelle pure héritée d'un autre parent.
Si l'implémentation de l'héritage multiple en C++ est pourrie, il ne faut pas en déduire pour autant que l'héritage multiple est pourri... il y a d'autres langages qui s'en sortent très bien.
[^] # Re: Et le Troll, il arrive quand ?
Posté par scylla . Évalué à 1.
Ça vient, ça vient...
C'est pour ces cas problématiques d'héritage multiple que l'héritage virtuel existe en C++.
Comme cela a été souligné plus haut, les philosophies de C++ et des autres langages objet dont fait partie Eiffel sont radicalement différentes : l'idée maîtresse en C++ est que ce qui n'est pas utilisé ne doit rien coûter, d'où une forte complexité syntaxique et un plus grand travail de la part du programmeur parce que certains choix n'auront pas été faits par avance pour lui. Rien ne t'oblige à utiliser des fonctionnalités qui posent problème, et si tu le fais tu es censé le faire en connaissance de cause (par exemple C++ est à ma connaissance le seul langage permettant de faire de l'héritage générique, ce qui n'est pas sans risque si le programmeur ne sait pas ce qu'il fait).
Bref pour faire une analogie trollesque, C++ est l'équivalent d'un système d'exploitation où tu peux tout configurer dans les moindres détails et où tu as accès à des fonctionnalités rares ou cachées, à opposer à des langages qui occultent certains détails pour obtenir une vue de plus haut niveau et où tu as moins de chances de faire des conneries.
[^] # Re: Et le Troll, il arrive quand ?
Posté par Philip Marlowe . Évalué à 1.
Pour ma part, ce débat me passe souvent largement au-dessus de la tête, sauf pour au moins un aspect : l'affirmation la contravariance résoud tous les problèmes. Il suffit de montrer par un exemple que ce n'est pas vrai.
Prenons une classe FOO quelconque avec une fonction de type booléen is_equal (other: FOO). Y a-t-il un chantre de la contravariance qui peut m'expliquer comment on se débrouille avec les héritiers de cette classe pour garder à cette fonction le même sens ?
Sur ce (peut-être) bon troll.
[^] # Re: Et le Troll, il arrive quand ?
Posté par Anaximandre . Évalué à 2.
Y a-t-il un chantre de la contravariance qui peut m'expliquer comment on se débrouille avec les héritiers de cette classe pour garder à cette fonction le même sens ?
L'exemple que tu donnes ici est celui d'une méthode "binaire", cas particulier pour lequel on sait que ça marche. C'est d'ailleurs ce qu'on appelle MyType dans la plupart des langages à objets modernes (i.e de la recherche).
Cela dit, ça fait un bail que ces problèmes ont été très bien analysés, notamment par G. Castagna (http://www.di.ens.fr/~castagna/(...) ) et son super article "Covariance and contravariance: conflict without a cause" (ftp://ftp.di.ens.fr/pub/users/castagna/covariance.ps.Z(...) )
[^] # Re: Et le Troll, il arrive quand ?
Posté par Philip Marlowe . Évalué à 1.
Ceci dit le titre du thread est : Et le Troll, il arrive quand ?. Comme Nicolas Raynaud semble vouloir un troll, je fournis un sujet possible.
Ca fait deux ans que j'utilise Eiffel au travail, et le problème de la covariance / contravariance ne s'est jamais posé pour moi. Ce sont, à ma connaissance, les fondateurs de Sather, langage issu de Eiffel, qui ont prétendu que l'utilisation de la contravariance renforçait la sécurité du code. L'exemple que je fournis plus haut montre que cela pose problème avec un cas trivial : si l'argument de la comparaison avec l'objet courant ne peut pas varier dans le même sens que celui-ci, la comparaison (est-ce que cet objet est égal à l'objet courant ?) ne fonctionne plus avec les héritiers. Il va de soi que la bonne manière de déclarer l'argument de la fonction est :
is_equal (other: like Current): BOOLEAN is require préconditions do ensure postconditions end
Ceci évitant d'avoir à redéfinir la comparaison pour les héritiers.
[^] # Re: Et le Troll, il arrive quand ?
Posté par Anaximandre . Évalué à 3.
Non, non, il s'agit d'un résultat général connu des théoriciens des langages de programmation, ce n'est absolument pas spécifique à Sather.
Dans un système de types avec sous-typage, on cherche à savoir quand on peut redéfinir ou pas une méthode, et quelles sont les contraintes à avoir sur les types des méthodes pour que le programme soit bien typé. On se trouve là en présence d'un problème indécidable. Mais, si on restreint la redéfinition à la contravariance sur les paramètres, alors on sait que le programme sera bien typé.
Ça ne veut pas dire que toute forme de covariance est à proscrire, simplement qu'il y a des cas où ça produira des programmes acceptés par le compilateur qui produiront quand même une erreur de type.
Un exemple que certaines formes de covariance sont acceptables, tu le donnes: c'est l'exemple des méthodes "binaires" (style is_equal). En fait, on sait qu'on peut accepter toutes les méthodes avec contravariance et toutes les méthodes binaires.
Le problème d'Eiffel, c'est qu'il permet plus que les méthodes binaires, car on peut employer like avec autre chose que Current, et obtenir ainsi des méthodes avec covariance, qu'Eiffel acceptera, peut-être à tort.
Ca fait deux ans que j'utilise Eiffel au travail, et le problème de la covariance / contravariance ne s'est jamais posé pour moi.
Mais ça tu n'en sais rien justement! Tu peux juste dire que, pour toutes les exécutions de tes programmes Eiffel utilisant la covariance, il n'y a pas eu de plantage. Mais rien ne te garantit plus que ça n'arrivera pas avec certaines données que tu n'as pas encore testées.
C'est justement le principe du typage fort que de te garantir qu'il n'y aura jamais d'erreur de type.
[^] # Re: Et le Troll, il arrive quand ?
Posté par Philip Marlowe . Évalué à 1.
[^] # Re: Et le Troll, il arrive quand ?
Posté par Matthieu Moy (site web personnel) . Évalué à 1.
C'est quoi ?
[^] # Re: Et le Troll, il arrive quand ?
Posté par Philip Marlowe . Évalué à 0.
Et la concurrence, elle arrive quand ?
[^] # Re: Et le Troll, il arrive quand ?
Posté par reno . Évalué à 1.
En meme temps que Duke Nukem..
Sinon j'aimerai bien qu'on m'explique ce que c'est la "rétention des descendants": le troll contra/co/iso-variant je connais pas la rétention des descendants: j'ai fait une recherche Google, sans succés.
[^] # Re: Et le Troll, il arrive quand ?
Posté par Philip Marlowe . Évalué à 2.
Pour la rétention des descendants, ça a un autre nom : la contraception.
# Re: Une nouvelle version stable de SmartEiffel
Posté par el_mickey . Évalué à 1.
[^] # Re: Une nouvelle version stable de SmartEiffel
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.