Interview Smalltalk 5 : Stéphane Ducasse

Après quelques semaines d’arrêt, nous poursuivons notre série d’interviews de smalltalkiens francophone (Herculano Caetano, Hilaire Fernandes, Yann Monclair, Bernard Pottier). Aujourd’hui, il s’agit de Stéphane Ducasse, président de l’association ESUG (European Smalltalk User Group) et smalltalkien bien connu de la communauté.

Peux tu nous en dire un peu plus sur toi ? Quel est ton métier, ton parcours ?

J’ai fait une thèse sur les langages objets en Lisp à l’université de Sophia Antipolis. Je suis ensuite parti en Suisse pour bosser sur la maintenance d’applications (je ne connaissais rien dessus mais cela paraissait cool). Finalement j’ai recommencé à travailler sur les langages. Je suis maintenant Directeur de recherche (équivalent de professeur d’université) à l’INRIA Lille. Et je compte continuer à travailler sur la maintenance et les langages.

Quand et dans quelles circonstances as tu commencé à utiliser Smalltalk ? Quelles sont les raisons qui t’ont poussé vers ce langage de programmation plutôt qu’un autre ?

En fait, quand j’étais en thèse il y avait un Smalltalk mais que sur des machines SUN et j’avais Linux sans un réel Smalltalk. Je faisais du Lisp à l’époque, puis quand je suis arrivé à Berne, je vivais en gros dans mon bureau et j’avais une grosse station SUN qui me faisait de l’oeil. Donc j’ai volé un Smalltalk et j’ai essayé et j’ai été frappé. Ce langage était celui que je cherchais : un langage simple, dynamique tout écrit en lui-même. Bien sur il y a des tas de choses que j’aimerai changer mais la philosophie du langage et tout le reste m’ont fait pensé que j’étais destiné à programmer en Smalltalk :).


Quelles versions de Smalltalk utilise tu le plus souvent et pourquoi ?

VisualWorks et Squeak. VisualWorks car j’ai appris et développé pas mal de programmes avec, notamment Moose un environnement pour la réingénierie. Squeak car il est open-source et que j’aimerai vraiment de toutes mes forces l’améliorer pour que les gens puissent inventer des trucs super excitants.

Quels produits Smalltalk as tu développé ? Quels sont tes projets ?

Moose, un environnement de réingénierie et des tas de trucs pas finis. Mes projets sont soit de développer ma propre distribution Squeak (on n’est plus a une fork près, mais cela demande une réflexion approfondie) soit (cela serait ma préférence) de maintenir Squeak 3.11/4.0 avec l’espoir de récupérer les changements faits dans Sophie, Croquet, KernelImage, OLPC et de fournir des packages de base avec des tests. De façon à ce que les projets puissent réellement les partager. Maintenant peut être que je vais faire simplement un truc pour moi seul tranquille dans mon coin car c’est bien plus facile avec moins de stress car être mainteneur de 3.9 a été un gros stress à la fin.

Georg Heeg (STIC) et Stéphane Ducasse (ESUG) - Conférence ESUG 2007

Quels sont les avantages et inconvénients de Smalltalk ? Que faudrait-il faire pour l’améliorer ? As tu envie parfois de changer de langage ?

Oui j’aimerai améliorer Smalltalk. Je déteste que je ne puisse pas charger du code Squeak dans VisualWorks et vice-versa. J’aimerai avoir une syntaxe pour faire du scripting en Smalltalk (on y travaille). J’aimerai avoir une syntaxe déclarative et non basée sur la modification d’objet, une interface plus compacte pour créer les classes, un système de package integré, avoir un MOP (Meta Object Protocol) repensé, avoir de la sécurité pour les aspects réflexifs,
avoir des contrats (je pense que “Design by contract” est très important), j’aimerai trouver un modèle de module compatible avec le développement Smalltalk (quelque chose dans la lignée des classboxes mais moins extrême).

Pour Squeak, j’aimerai avoir encore plus de tests pour chacun des packages, un meilleur Refactoring Browser, un formateur de code à la volée, SmallLint, Monticello 2, un meilleur support pour les encodages, une machine virtuelle (VM) qu’un novice en VM comme moi puisse recompiler, avoir Morphic mieux structuré ou un autre framework graphique innovant. J’aimerai récupérer tous les changements des projets comme Sophie, Tweak et OLPC dans Squeak. Je suis parfois triste de voir que l’on n’arrive pas à communiquer et partager mieux.

Sinon j’aimerai aussi pouvoir avoir une VM que l’on peut embarqué dans n’importe quelle application C, comme Lua ou GNU Smalltalk. Le concept d’image est super mais les gens le prennent pour une partie intégrale de Smalltalk. Une image est un concept vraiment intéressant mais on doit avoir un processus de développement : c’est-à-dire reconstruire son image à partir d’un noyau minimal. Et cela était le cas en S# et aussi en GNU Smalltalk donc j’aimerai avoir cela.

Quels projets Smalltalk te semblent pouvoir avoir le plus de retentissement dans le futur ?

Seaside

Smalltalk te semble-t-il suffisamment utilisé dans l’industrie ? Est-ce que c’est un marché de niche ? Est-il possible de vivre en étant développeur Smalltalk ?

Non je préfererais qu’il le soit plus. Smalltalk a été trop innovant à son époque : les gens ne voulaient pas de GC, de machine virtuelle et maintenant ces mêmes gens le veulent. Je pense que Smalltalk ne sera jamais un langage fortement utilisé. Par contre c’est un excellent langage. En particulier pour modéliser des systèmes complexes et les gens qui ont de la liberté de choix l’on souvent compris. Je pense que le développement web en Smalltalk a un avenir.

Comment reste-tu connecté avec la communauté Smalltalk ?

En lisant les news et en étant producteur autant que je peux. Notre dernier livre Squeak By Example est un exemple. Achetez le : on le vend à prix coûtant.

Quels conseils donnerais tu à un développeur qui voudrait commencer à apprendre Smalltalk ?

Commencer par faire un petit projet et poser toutes vos questions dans les mailing-lists. Apprendre Smalltalk seul c’est dur mais la communauté est vraiment sympa.

WordPress database error: [Table 'doesnotunderstand.wp_comments' doesn't exist]
SELECT * FROM wp_comments WHERE comment_post_ID = '449' AND comment_approved = '1' ORDER BY comment_date


Subscribe

Subscribe to my RSS Feeds