Eiffel : Objet, Contrats, Parallélisme par Bertrand Meyer

50 views
Skip to first unread message

Radwane

unread,
Apr 17, 2012, 3:47:33 AM4/17/12
to altnetfr
Bonjour à tous,

Le 9 mai 2012, il y aura une présentation qui risque d'être
intéressante avec Bertrand Meyer concepteur du langage Eiffel et
référence dans la programmation orienté objet, voici le speech :

En logiciel les modes passent mais les problèmes demeurent : retards,
dépassements de budget, qualité insuffisante, frustration des
développeurs et des utilisateurs. Est-ce une fatalité ou l'industrie
peut-elle faire mieux ? Les défis d'aujourd'hui rendent cette question
toujours plus brûlante, en particulier avec la croissance constante
des applications en taille et en complexité, et l'apparition massive
du parallélisme, extrêmement difficile à maîtriser avec les techniques
classiques. Applications mobile, cloud, logiciel comme service,
systèmes distribués... Les difficultés s'accumulent.
Cet exposé présente une méthode et un environnement destinés à
l'industrie du logiciel et s'attaquant aux problèmes de fond, en
programmation parallèle aussi bien que séquentielle. L'approche Eiffel
représente une décision explicite de privilégier la qualité et le
développement à long terme.
Eiffel se fonde sur un ensemble de principes méthodologiques que
l'exposé rappellera, sur un langage de haute puissance d'expression,
et sur un environnement de développement puissant (EiffelStudio). Le
concept fondamental de la Conception par Contrats, une approche
largement imitée mais toujours révolutionnaire pour obtenir du
logiciel fiable, forme le tissu de l'ensemble.
L'exposé présentera les concepts-clés et quelques-uns des
développements les plus récents, en particulier la marche vers le
parallélisme signalée par un prestigieux « Advanced Investigator Grant
» (2.5 M-EUR) du Conseil Européen de la Recherche.

Orateur :
Bertrand Meyer est professeur à l'École Polytechnique Fédérale de
Zurich (ETH) et le concepteur d'origine d'Eiffel, dont il a continué
de participer au développement. Il est également Chief Architect
d'Eiffel Software (Santa Barbara, USA) et directeur du laboratoire de
génie logiciel de l'université ITMO de Saint Pétersbourg. Il est
l'auteur de plusieurs livres fondamentaux sur les objets et le génie
logiciel, et titulaire de nombreuses récompenses scientifiques
internationales. Il poursuit par ailleurs une importante activité de
conseil de stratégie informatique et d'expert juridique en
informatique.

Pour vous inscrire : http://conference_bertrand_meyer.eventbrite.fr

A+
Radwane

Stéphane JUTIN

unread,
May 10, 2012, 8:17:23 AM5/10/12
to paris...@googlegroups.com
Bonjour,

Je sais pas pour vous, mais moi j'ai été franchement déçu par la conf. d'hier soir.

Bertand Meyer, semblait peu enthousiaste à l'idée de faire une conf bénévole (ou mal payée !), et du coup les sujets techniques intéressant comme le parallélisme avec SCOOP ont été expédié en 5 minutes, de sorte que personne n'a rien compris, et que l'auditoire en est sorti frustré ...

Bref, à part une description de la programmation par contrat, sans valeur ajouté par rapport au nombreux tutos sur le net existant sur le sujet, pas grand chose à retirer de cette conf.

Dommage, le sujet aurait pu être intéressant, comme l'a montré les questions à la fin.

Rui Carvalho

unread,
May 10, 2012, 8:57:29 AM5/10/12
to paris...@googlegroups.com
Je pense qu'on est tous un peu restés sur notre faim coté technique...
D'un autre coté en 2h présenter l'intéret d'eiffel ce n'est pas si évident non plus. Dans la mesure ou eiffel prend a sa source un certain nombre de paradigmes importants et non présents (ou mal) dans d'autres environnements il était aussi important de revenir dessus et de présenter leurs interets et usages. Maintenant c'est clair qu'il aurait pu prendre plus de temps pour la technique en elle meme que de le passer à s'auto congratuler...

je vais quand meme essayer de creuser un peu le sujet pour voir l'usage que l'on peu en avoir coté .Net ;-)
Rui.



2012/5/10 Stéphane JUTIN <s.j...@free.fr>

Adina Sandou

unread,
May 10, 2012, 10:33:26 AM5/10/12
to paris...@googlegroups.com
Je suis contente de voir que je n'ai pas été la seule à penser ça. 

C'est cool, Rui tiens nous au courant. 

Globalement je serais curieuse d'avoir des indicateurs de perfs. Voir ce que SCOOP donne niveau perf face à d'autres solutions comme celle proposée par .Net, c++ AMP ou autre. 

Sinon j'ai trouvé Eiffel intéressant dans son approche même si je ne me vois pas en faire au jour le jour. 

Adina. 

Gauthier Segay

unread,
May 10, 2012, 10:39:00 AM5/10/12
to paris...@googlegroups.com
Concernant la programmation contrat, en dotnet, j'invite les curieux à
regarder le langage cobra (http://cobra-language.com/).

Vous l'aurez deviné, une syntaxe très proche de python, et le support
des contrats et test unitaire au sein du langage.

Le langage évolue doucement mais reste intéressant.

2012/5/10 Rui Carvalho <r...@rui.fr>:

Rui Carvalho

unread,
May 10, 2012, 11:00:11 AM5/10/12
to paris...@googlegroups.com
sur le principe Cobra a l'air vraiment très sympa, après c'est comme tout, faut voir dans quelle mesure c'est exploitable en projet, avec quel outillage, etc...
si jamais un de ces 4, tu es sur Paris et tu veux faire une petite pres n'hésite pas hein?
.-)
+

Rui.



2012/5/10 Gauthier Segay <gauthie...@gmail.com>

Stéphane JUTIN

unread,
May 10, 2012, 11:45:54 AM5/10/12
to paris...@googlegroups.com

Sinon, il faut rappeler que c'est Bertrand Meyer qui a inventé le principe Ouvert-Fermé, qui dit en gros que l'ajout de fonctionnalité doit se faire au maximum par l'ajout de nouveau code (ex. dériver une classe, ou implémenter un interface), plutôt que par modification du code existant (ce qui risque de causer des régressions).
Ce principe fait partie des 5 principes essentiel du développement objet (SOLID, c'est le "O"), d'après Robert Martin (dit Oncle Bob), un auteur célèbre sur Internet.

Par ailleurs, la programmation par contrat inventé par le langage Eiffel a inspiré d'autres langages, et notamment .NET :
http://research.microsoft.com/en-us/projects/contracts/

C'est effectivement quelque chose qu'il serait intéressant de tester.
D'ailleurs, tant que j'y suis, il semble qu'il a un autre projet (PEX) qui génère automatiquement des tests unitaires et qui ressemble étrangement à ce qui a été évoqué dans cette conférence.


Guillaume Collic

unread,
May 10, 2012, 3:07:00 PM5/10/12
to paris...@googlegroups.com
Ayant déjà vu des dérives avec Pex, je préfère préciser qu'il ne génère pas les tests, mais des données de tests de type "boite blanche" (notamment vis à vis des contrats), et il le fait bien. La génération de squelettes de tests est une fonctionnalité secondaire, permettant de commencer plus rapidement à écrire notre test, mais ce n'est pas lui qui l'écrit pour nous ;-) Dans des dérives, j'ai vu des gens générer les squelettes de tests et les données, et s’arrêter là. Si il y a une exception, Pex nous la détectera peut être, mais elle est peut être justifiée, et c'est tout, ce n'est pas vraiment un test, et ce n'est vraiment pas maintenable d'avoir des centaines de tests comme celui là.
J'aime beaucoup Pex, mais utilisé dans le sens pour lequel il a été conçu (qui me semble effectivement très proche de ce que vous expliquez). J'ai aussi adoré son apport dans une philosophie proche du TDD (je met honteusement un lien à moi, mais je n'ai pas vu beaucoup d'autres exemples allant dans ce sens : http://guillaumecollic.com/2011/03/roman-numerals-ii-beyond-tdd/ )

Guillaume
Développeur Agiliste passionné
__________________________
Twitter : @gcollic




2012/5/10 Stéphane JUTIN <s.j...@free.fr>

Rui Carvalho

unread,
May 10, 2012, 5:18:05 PM5/10/12
to paris...@googlegroups.com
En fait, en y regardant bien, si on prend toutes les bonnes choses de Eiffel, on en a déjà pas mal de disponibles coté .Net. Bon, c'est sur que que les codes contracts version attributs et méthodes statiques, c'est moins sexy que directement implémenté dans le langage mais ça existe. 
Pour les tests et autotest, effectivement Pex semble s'en rapprocher beaucoup, mais peut être après tout que leur moteur est plus intelligent? Je suis en tout cas d'accord avec Guillaume, Pex c'est bien mais gaffe a ce que l'on en fait. Ceci dit c'est vrai pour la plupart des fonctionnalités modernes de c# (a utiliser avec parcimonie et au bon endroit c'est top, sinon...).
Et puis à la place du moteur scoop et son mot clé separate, le fonctionnement de TPL et await à l'air de faire strictement la meme chose (bon, je suis pas sur qu'il réserve correctement des locks sur des ressources multiples mais je suis pas un pro du parallèle)

Bref, ce qu'il faut retenir pour moi comme d'habitude, de ce genre d'exercice c'est des idées nouvelles à apporter à notre manière de travailler et pourquoi pas s'inspirer de ce que l'on trouve dans d'autres langages et le rapporter chez nous (les usages en tout cas).

Rui.




2012/5/10 Guillaume Collic <gco...@gmail.com>

Mathias Kluba

unread,
May 11, 2012, 1:28:45 AM5/11/12
to paris...@googlegroups.com
rapidement:
le merveilleux langage delphi.net supporte la notion de pre/post condition depuis longtemps
http://wiki.oxygenelanguage.com/en/Class_Contracts
apres, ça reste une verif au runtime, pas à la compilation...
a ce propos, ma hantise c'est le nullPointerException, et je ne comprend pas qu'il ne soit pas possible de préciser qu'un parametre ne peux pas être null.
en java, il y a une nouvelle anotation @NotNull mais c'est analysé par l'IDE pour générer une erreur avant la compilation.
J'ai vu aussi qu'on peut utiliser postsharp pour valider les arguments, sans que ce soit étranger au langage, mais il me semble que ce n'est valide que au runtime aussi.

bref, dans tous les cas, ça reste des vérifications simples, et les tests unitaires restent indispensables à mon avis.

--
Mathias Kluba
Twitter: @mathiaskluba
Blog: http://grozeille.com

Stéphane JUTIN

unread,
May 11, 2012, 6:10:54 AM5/11/12
to paris...@googlegroups.com
Tiens, y a une vidéo en français sur PEX, son créateur ("Péli") chez Microsoft est belge :
http://channel9.msdn.com/blogs/peli/code-contracts-et-pex-pour-net

Sinon, je pense que l'avantage d'avoir une implémentation dans le langage des contrats, c'est la liaison avec l'héritage.
Il y une règle dans Eiffel qui dit qu'une méthode overridée peut durcir le contrat de la classe de base mais pas l'affaiblir, et ça on ne l'a pas avec CodeContract je pense.

Radwane

unread,
May 18, 2012, 5:42:23 AM5/18/12
to altnetfr
Pour ma part j'ai eu un peu le même ressenti... Pour moi c'était un
peu trop introduction et effectivement j'en suis resté sur ma faim.
Les concepts sont super intéressant, mais franchement essayer de tous
les traiter en 2h, ça fait pour le coup superficiel.

Mais on me dit que y aura peut être une suite un peu plus technique...
Affaire à suivre.
> > 2012/5/10 Guillaume Collic <gcol...@gmail.com>
>
> >> Ayant déjà vu des dérives avec Pex, je préfère préciser qu'il ne génère
> >> pas les tests, mais des *données *de tests de type "boite blanche"
> >> (notamment vis à vis des contrats), et il le fait bien. La génération de
> >> *squelettes *de tests est une fonctionnalité secondaire, permettant de
> >> commencer plus rapidement à écrire notre test, mais ce n'est pas lui qui
> >> l'écrit pour nous ;-) Dans des dérives, j'ai vu des gens générer les
> >> squelettes de tests et les données, et s’arrêter là. Si il y a une
> >> exception, Pex nous la détectera peut être, mais elle est peut être
> >> justifiée, et c'est tout, ce n'est pas vraiment un test, et ce n'est
> >> vraiment pas maintenable d'avoir des centaines de tests comme celui là.
> >> J'aime beaucoup Pex, mais utilisé dans le sens pour lequel il a été conçu
> >> (qui me semble effectivement très proche de ce que vous expliquez). J'ai
> >> aussi adoré son apport dans une philosophie proche du TDD (je met
> >> honteusement un lien à moi, mais je n'ai pas vu beaucoup d'autres exemples
> >> allant dans ce sens :
> >>http://guillaumecollic.com/2011/03/roman-numerals-ii-beyond-tdd/)
>
> >> Guillaume
> >> Développeur Agiliste passionné
> >> __________________________
> >> Twitter : @gcollic <http://twitter.com/gcollic>
> >> <http://www.breizhcamp.org/>
>
> >> 2012/5/10 Stéphane JUTIN <s.ju...@free.fr>
Reply all
Reply to author
Forward
0 new messages