Interview Smalltalk 2 : Hilaire Fernandes

Voila la deuxième interview de la série, celle de Hilaire Fernandes.

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

J’ai 37 ans, marié, deux enfants et nous habitons actuellement dans le sud-ouest de la France depuis maintenant 6 ans. Je travaille actuellement au CRDP d’Aquitaine, CDDP des Landes. Je m’occupe des questions informatiques au sens large (très large) : support pour le logiciel BCDI que nous vendons aux établissements scolaires, conseils et formations sur les TICE pour les enseignants, gestion de notre réseau et parc informatique, vidéo (reportages et montages), parfois un peu de développement web. J’ai également une mission de veille technologique, à ce titre je m’intéresse à des projets comme Squeak, BotsInc, SqueakBot, Sophie… Mais mes activités de développement n’ont absolument rien à voir avec mon travail, la programmation a toujours été mon hobby préféré, mais cela n’a jamais été mon métier.
Auparavant j’ai travaillé 5 ans dans la section française de l’école européenne de Taipei, j’y ai enseigné les math. et diverses autres disciplines scientifiques. Coté formation, je suis certifié de mathématique et titulaire d’un master de recherche en informatique.

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 ?

Vers 1999/2000, j’ai commencé à lorgner du côte de Squeak. Ce qui m’a d’abord intéressé ce sont les possibilités multimédia de l’environnement et plus particulièrement EToys. Mais l’environnement me semblait bien différent de ce à quoi j’étais habitué. Aux RMLL de 2004 à Bordeaux, j’ai invité Stéphane Ducasse et toi même à venir présenter Squeak. C’était aussi l’occasion d’avoir en face à face des personnes maîtrisant l’environnement Squeak/Smalltalk pour nous l’expliquer. C’est donc à partir de 2004 que j’ai commencé à utiliser Smalltalk. Auparavant je faisais beaucoup de C++ avec Emacs (DrGeo). L’environnement de développement Smalltalk m’a beaucoup impressionné. Aussi la simplicité du paradigme objet de Smalltalk par rapport à C++ était très reposante car enfin je pouvais me concentrer sur l’essentiel, à savoir écrire du code, sans avoir sans cesse à me poser la question si tel ou tel attribut était protected, private ou public. Aussi naviguer à toute vitesse de classe en classe, de méthode en méthode m’a beaucoup séduit. Enfin l’extrême uniformité du langage du tout est objet — donc sa facilité de compréhension — est quelque chose de très fort. Auparavant je me suis beaucoup intéressé à Python — j’ai écrit plusieurs articles pour le magazine en ligne LinuxFocus — mais je butais trop souvent à mon goût sur des incohérences du langage et des librairies du style certains objets sont des objets mais ont une interface de langage fonctionnel, c’était le cas des String, et donc le code résultant est moins uniforme donc moins lisible, ce qui n’est pas rien sur des projets de grande envergure ou sur le long terme. C’est un truc qui m’avait marqué, et là avec Smalltalk ce genre de truc n’arrive tout simplement pas, ce n’est pas possible.

C++ et Smalltalk sont des langages très différents, apprendre Smalltalk alors que je développais avec C++ était un investissement sur le long terme car il m’a fallu un peu de temps pour mesurer tout l’intérêt de Smalltalk.


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

J’utilise uniquement Squeak. J’ai essayé GNU Smalltalk mais sans grand succès. Aussi je suis attaché au système graphique Morph de Squeak.

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

J’ai écrit pour notre projet freeduc-cd à OFSET une application Seaside pour créer des profils de cd-rom live. Ensuite j’ai écrit DrGeoII qui est un portage incomplet — avec cependant des améliorations — de DrGeo un logiciel de géométrie interactive écrit en C++ et GTK+. Je travaille en ce moment sur le projet iStoa qui est une plateforme de fichier pédagogique interactif par internet. C’est basé sur Squeak, Morph, Magma et Seaside.

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 ?

Pour moi les principaux avantages sont la rapidité de développement que permet Smalltalk grâce à la simplicité et l’uniformité du langage, à l’environnement de développement et particulièrement le browser de classe et le débouggeur. Ce dernier permet des gains de productivité assez impressionnant car on peut mettre au point le code directement depuis celui-ci et sans avoir besoin de recompiler toute l’application
et donc de perdre le contexte d’apparition du bug.

Aussi une chose que j’ai appris sur Smalltalk, c’est qu’il est plus facile d’écrire du code lisible. Il y a peu j’ai repris DrGeoII pour en faire un service dans iStoa, c’est du code que j’avais écrit il y a 18 mois. Grâce à des outils comme le browser, je fut agréablement surpris de la facilité avec laquelle je pus me remémorer le fonctionnement de l’application. En général avec DrGeo sous C++, j’avais toujours une certaine appréhension à me remémorer du code de seulement quelques mois, car il me fallait parcourir des pages de fichiers .h et .cc.

Un inconvénient de Smalltalk est issue de son avantage, à savoir le tout objet. Lorsque l’on débute en Smalltalk, l’erreur d’écrire 2+a*3 au lieu de 2+(a*3) est inévitable. La première expression correspond à une expression algébrique apprise à l’école, la deuxième à une série de messages pour produire l’équivalent de l’expression algébrique. Il est inévitable qu’en écrivant du code Smalltalk on veuille écrire dans le code la première expression au lieu de la deuxième. C’est le petit prix à payer pour avoir ensuite tous les gains de l’uniformité.

Je n’ai pas envie de changer de langage. J’aimerais cependant sur certains aspects un Smalltalk plus aboutit que Squeak, plus orienté application desktop, avec des fonctionnalités i18n et de déploiement d’application (JIT, réducation de la taille de l’image).

Parfois j’aimerai regarder VisualWorks. Si Cincom décidait de distribuer VisualWorks sous une double licence GPL/Commerciale cela boosterait la visibilité de Smalltalk dans la communauté du libre et au delà, tout en permettant à Cincom de vendre des licences pour des développements commerciaux. Troll Tech le fait avec succès avec le widget crossplateforme Qt: un côté GPL utilisé par le libre (par exemple le desktop libre KDE est basé sur Qt), côté commercial pour le business et assurer la pérennité. Le côté GPL procure alors à Troll Tech une très grande surface de visibilité.

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

OLPC: ce n’est pas à proprement parler un projet Smalltalk, mais un projet l’utilisant et qui peut donc le rendre plus visible. Il n’est pas sûr que le projet OLPC puisse continuer dans la ligne choisie, en effet il s’adresse à des pays qui sont extrêmement pauvres, et dans ce cas l’achat massif pour plusieurs millions de dollars est délicat car il y a par ailleurs des problèmes de malnutrition, de logement, de santé et sanitaires chez les enfants de ces pays, et sans oublier le problème de la dette extérieure de ces pays.

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 ?

L’industrie que je connais est celle du multimédia éducatif. A ma connaissance Smalltalk n’y est absolument pas utilisé, c’est sans doute un problème de culture. Je pense que le potentiel est cependant énorme et j’y travaille ;-)

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

Par les listes de diffusion et l’écriture d’articles sur Smalltalk.

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

D’être ouvert d’esprit et de prendre le temps de comprendre la différence d’approche prise par Smalltalk. Aussi trouver un mentor avec lequel échanger en présentiel sur la pratique Smalltalk aide beaucoup pour démarrer.

Trente ans après sa création, Smalltalk reste un concentré d’innovations, apporte beaucoup de fraîcheur et offre une facilité d’utilisation qui ne cesse de m’étonner, enfin pour un amateur de programmation comme moi.

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


Subscribe

Subscribe to my RSS Feeds