Voici un nouvel épisode dans notre série d’interviews de smalltalkiens francophones (Herculano Caetano, Hilaire Fernandes, Yann Monclair, Bernard Pottier, Stéphane Ducasse et Nicolas Petton). Florent Arrignon a bien voulu répondre à notre série de questions.
Peux tu nous en dire un peu plus sur toi ? Quel est ton métier, ton parcours ?
Je co-dirige MAD-Environnement, une PME spécialisée dans l’utilisation des mathématiques et le développement logiciel dans le domaine de l’environnement. Je m’occupe de la gestion de l’entreprise et du développement logiciel. De formation, je suis docteur en écologie avec une spécialisation dans la modélisation des écosystèmes.
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 ?
Ma première expérience de modélisation en biologie s’est faite via un modèle de dynamique de population codé en Fortran au sein du laboratoire d’écologie de Rouen. Puis au cours de ma thèse à l’ENSA-Toulouse, j’ai travaillé sur l’utilisation des systèmes multi-agents en biologie, via la plateforme Cormas développée en Smalltalk par le Cirad. L’élégance et la facilité du Smalltalk pour coder des modèles complexes avec des interfaces graphiques m’ont tout naturellement poussé à continuer sur ce langage, même si au sein de l’entreprise, nous utilisons également toujours le Fortran et le C, surtout pour les codes de calculs lourds.
Quelles versions de Smalltalk utilise tu le plus souvent et pourquoi ?
Nous avons choisi d’utiliser VisualWorks pour développer en Smalltalk. Le suivi de Cincom est précieux pour une jeune entreprise telle que la notre et de nombreuses parcelles bien documentées par des tutoriaux permettent de développer rapidement des logiciels assez complexes. La rapidité de la machine virtuelle par rapport aux concurrents est également importante pour nous.
Quels produits Smalltalk as tu développé ? Quels sont tes projets ?
Avec Smalltalk, nous avons développé essentiellement des interfaces graphiques pour des codes de calcul déjà existants et codés généralement en C ou en Fortran. A l’heure actuelle, nous sommes prêts de la commercialisation de notre premier logiciel complet entièrement en Smalltalk.
Au-delà de cela, nous utilisons également le Smalltalk pour coder des automates cellulaires utilisables en biologie ou en géographie. Nous étudions la possibilité de commercialiser des produits Smalltalk basés sur la technologie multi-agents et les techniques d’intelligence artificielle (réseaux de neurones, réseaux bayésiens), même si pour l’instant, le potentiel commercial reste difficile à estimer dans notre discipline.
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 ?
Il est difficile pour moi de lister de manière impartiale les avantages du Smalltalk car je le connais beaucoup mieux que d’autres langages et quasiment seulement à travers VisualWorks. Par rapport au Java ou au C++, je le trouve beaucoup plus lisible, plus flexible. La logique de Smalltalk me semble en fait assez différente, j’ai plus de mal à aller vers du Java … Je ne sens en tout cas pas le besoin de changer de langage, surtout pas vers un autre langage objet. Si je devais passer plus de temps sur un autre langage, je pense que j’irais plutôt approfondir mes connaissances en C, pour avoir un tout autre regard sur ma manière de coder.
Quels projets Smalltalk te semblent pouvoir avoir le plus de retentissement dans le futur ?
En tant qu’utilisateur VisualWorks, j’attends évidemment beaucoup de la nouvelle version 7.7, qui devrait moderniser le graphisme pour replacer Smalltalk à sa place dans ce domaine mais aussi pas mal d’améliorations un, peu partout. Cincom annonce un renouveau du Smalltalk, avec une augmentation de 50% de leur clientèle l’année dernière, donc on peut espérer une nouvelle dynamique de développements.
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 ?
C’est une question délicate car il semble que Smalltalk ne soit pas si rare que ça dans l’industrie. Mais il y a sûrement un problème de communication, vu la qualité du langage. Nous avons déjà reçu des commentaires sur le choix de Smalltalk (notamment face à Java ou C++) et il a fallu apporter un petit plus de confiance au client pour pouvoir continuer le projet en Smalltalk. Cependant, je pense qu’il est possible de vivre en étant développeur Smalltalk, à condition d’être un développeur « tout-terrain » : le langage n’étant pas « mainstream », les offres classiques ne sont pas aussi fréquentes.
Comment reste-tu connecté avec la communauté Smalltalk ?
J’essaie de suivre attentivement la liste squeak francophone et la liste VisualWorks non commerciale. Là aussi, je pense qu’il y a peut-être un problème d’éclatement de la communauté entre les différentes plateformes, et les différentes sous-communautés d’utilisateurs.
Quels conseils donnerais tu à un développeur qui voudrait commencer à apprendre Smalltalk ?
Je lui dirais de se lancer et de ne pas craindre le début de la courbe d’apprentissage. Je crois qu’il est intéressant d’avoir toujours un projet personnel en cours de développement à côté de ses projets « sérieux » (professionnels ou d’études) pour s’en servir de bac à sable et voir ainsi les évolutions de son code à mesure de l’expérience qui rentre. Enfin, je lui souhaiterais la bienvenue et comme on le lit souvent : <Talk Small and Carry a Big Class Library> !