OOPSLA: Day One
Par Sébastien Pierre, lundi 22 octobre 2007 à 23:21 :: General :: #69 :: rss
Comme je l'ai annoncé hier, aujourd'hui était mon premier jour de OOPSLA, la conférence mythique sur le thème de la programmation orientée-objet, les langages, et d'autres réjouissances pour informaticien hardcore.
Cette première journée était en fait dédiée à de multiples séminaires et conférences hébergées, parmi lesquelles il fallait évidemment choisir -- comme vous vous en doutez, celle à laquelle je suis allé est le Dynamic Languages Symposium, où l'on parle (évidemment) beaucoup de langages de programmation (on n'en parle jamais assez !).
Je vous préviens tout de suite, c'est un article plutôt long, mais j'ai déjà du largement réduire mes notes... ceux qui n'ont pas eu la chance d'y assister auront au moins un peu l'impression d'y être !
Avant tout (pour les impatients ;), j'aimerais partager mes impressions personnelles. Commençons par le lieu qui était vraiment à dimension humaine (c'est important, moi je vous le dis), entrée directe par le métro, des couloirs spacieux, un accueil souriant... bref tout pour mettre dans de bonnes dispositions 
Arrivé dans la salle, il n'y avait qu'une vingtaine de personne, qui est rapidement devenue une 60 aine... d'après les organisateurs, la salle aurait été déserte il n'y a que quelques années... mon petit doigt me dit que la montée de Python et Ruby dans le domaine du Web n'est pas étrangère à ce phénomène.
Durant l'ensemble de la conférence, j'ai remarqué qu'il y avait beaucoup, beaucoup, beaucoup de gens qui étaient des fans de Scheme/Common Lisp -- le reste étant essentiellement composé de fans de Smalltalk/Self
En tout cas, cela a donné quelques discussions intéressantes, dont je vous reparlerais dans un billet à venir (au sujet de la syntaxe des langages de programmation, pour changer).
En tout cas, entrons dans le détail:
- Mark S. Miller de Google nous a présenté son expérience sur la manière de sécuriser des programmes qui ne le sont pas au départ, à l'aide de langages qui gèrent ce qu'il appelle les "object capabilities". Au départ, la sécurité n'est vraiment pas ma tasse de thé, mais il a su vraiment éveiller mon intérêt. Notamment, il présentait une démarche qui consistait à utiliser un sous-ensemble d'un langage (Java en l'occurence) pour le rendre "sûr".
- Alexey Radul (il avait une magnifique chemise) du MIT nous a présenté son Report on the Probabilistic Language Scheme... qui malgré des qualités oratoires n'a pas réussi à m'intéresser plus que ça. Son travail (si j'ai bien compris) consistait à implanter une librairie tendance DSL pour la modélisation statistique en Scheme. Je pense qu'en regardant les slides, vous verrez que le code est effectivement compact et déclaratif... et peut-être que vous serez plus interessé que moi !
- Alessandro Warth (malheureusement sans Ian Piumarta -- j'étais dégouté !) nous a présenté OMeta, leur langage/librairie pour écrire des parsers et bien plus encore. Moi, je suis un fan avoué, et je pense que OMeta est un outil qui va me devenir vite indispensable. Je vais d'ailleurs revenir là dessus dans quelques temps
Je vous invite donc à vous ruer sur le PDF et à le lire... it's good stuff !!
- Morten Kromberg de Dyalog nous présentait Array of Objects, l'extension orientée-objet que son équipe a développé pour APL. Morten a eu beaucoup de courage de présenter devant la foule du DLS, plutôt critique par rapport à APL où tout est array (plutôt qu'objet) -- d'autant plus que la communauté APL est assez repliée, et on voyait qu'il y avait un petit choc culturel. Personnellement, ce que j'ai le plus apprécié c'est le moment où Morten a répondu que APL plaisait beaucoup plus à ses utilisateurs (chimistes, physiciens, traders, etc) que des langages plus poussés (qui plaisent plus aux vrais informaticiens), mais qui nécessitent de spécialiser dans le logiciel.
Après une petite pause déjeuner, l'après-midi a repris de bon train:
- Shriram Krishnamurthi nous a présenté avec grand talent sa librairie Scheme de relationally-parametric polymorphic contracts, qui permet (en gros) de faire du typage à la ML avec une API très simple en Scheme. Personnellement, c'était ma préférée avec OMeta... d'autant plus que ces deux présentations me donnent des éléments que je peux directement appliquer dans mes projets

- Jame Noble nous présentait Dynamic Ownership in Dynamic Language, malheureusement j'avais du mal a le comprendre(je crois qu'il avait un accent australien très prononcé) et j'étais rentré en phase de digestion.... je me suis promis de regarder son papier dans les 600 pages de proceedings que j'ai reçu à l'entrée

- Davide Ancona (j'espère que je ne me trompe pas de nom) nous présentait RPython (pour Restricted Python, issu du projet PyPy). Il a été plutôt mal reçu par l'assemblée (qui ne semblait pas voir l'intérêt du projet), mais personnellement, j'ai trouvé qu'il s'en sortait très bien ! Une chose intéressante à savoir est que RPython produit du code exécutable directement à partir des objets en mémoire dans l'interpréteur Python, ce qui est une approche tout à fait innovante (et qui offre de bons avantages, comme la possibilité d'avoir un programme Python qui va produire des objets respectant les contraintes imposées par RPython).
Un petit break (nécessaire, mais pas suffisant, parce que j'ai un peu décroché par la suite !), puis :
- Erick Gallesio nous présence ScmPkg, un système de paquetage pour Scheme. C'était très pratique (étonnant de la part de l'INRIA ;), et il s'agit en gros de ce que l'on connaît dans le monde des distributions Linux, mais pour Scheme. L'intérêt de ScmPkg étant de supporter différents dialectes de scheme et de fournir des librairies émulant les spécificités d'un dialecte dans un autre dialecte... ceci permet de préserver les spécificités, tout en permettant aux modules de marcher sur différents langages. Si je faisais du Scheme, je l'utiliserais surement

- Quelqu'un (je dormais) présentait Highly Dynamic Behaviour Adaptability through Prototypes with Subjective Multimethods, qui malgré la torpeur qui m'envahissait alors m'a intéressé par son concept de Subjective Multimethods... qui est une généralisation des multi-méthodes en tenant compte d'un contexte, appliqué dans le langage Smalltalk-esque Ambience. Je passe les détails, mais c'est à creuser.
- La dernière présentation par Eric Tanter (je crois) était un peu en dehors de mes capacités d'attention. Pourtant, ça parlait d'acteurs, de reflexivité et de sécurité (j'étais encore tout émoustillé par la présentation du matin !)... mais ça n'a pas suffit à me réveiller :/
Finalement, la journée s'est finie sur un invited talk par Jim Hugunin de Microsoft, sur Bringing Dynamic Languages to .NET with the DLR. Ceux qui me connaissent savent combien j'aime Micro$oft... donc je n'étais pas dans les meilleures dispositions, mais la présentation d'IronPython et de la librairie "DLR" pour .NET était plutôt convaincant. C'est clair qu'au niveau des performances, c'est impressionnant, et qu'il y a une vaste librairie à laquelle on peut ajouter un environnement de développement intégré. Mais bon, ça reste du M$, et l'on sent bien qu'ils essaient de se refaire une image de boite cool où les geeks vont vouloir travailler, mais leurs technologies sentent le renfermé : il n'y a rien de neuf, ils ne font que reprendre ce qui marche... et visiblement, ils sont quand même capables de faire des trucs pas trop mal (je ne dirais pas ça deux fois ;).
Personnellement, je suis beaucoup plus intéressé par LLVM et PyPy qu'a.NET et IronPython ... je n'aime pas trop les choses trop intégrées "all-in-one". J'aime la liberté qu'apporte la compositions de composants qui font une chose, mais bien (à la UNIX, quoi !).
Bon, bah c'était long... mais en tout cas c'est fait : je suis allé à OOPSLA au moins une fois dans ma vie ! Je ré-itère demain, où je vais butiner entre démonstrations, posters et conférences... yay !
PS: Pas de photo aujourd'hui, j'ai oublié mon appareil en partant :/ PS2: Je n'ai pas trouvé les liens pour tous les articles... visiblement, ils ne sont pas tous disponibles !
Commentaires
1. Le mardi 23 octobre 2007 à 06:14, par Damien
2. Le mardi 23 octobre 2007 à 07:34, par Sébastien Pierre
3. Le mardi 23 octobre 2007 à 09:33, par Damien
4. Le mardi 23 octobre 2007 à 20:21, par Sébastien Pierre
5. Le mercredi 24 octobre 2007 à 04:44, par Damien
6. Le mercredi 24 octobre 2007 à 07:49, par Damien
Ajouter un commentaire