ESUG jour 3


25 ans ! je l’ai déjà mentionné il y a 3 jours, c’est le nombre d’années d’existence de la « Firma Georg Heeg », la société de Georg où j’ai fais mon stage de DESS il y a maintenant 22 ans. Pour l’occasion, un « special awards » lui a été décerné ce soir pendant le « social event ». Il faut reconnaître qu’une telle longévité pour une société basée uniquement sur Smalltalk est le meilleur argument qui soit pour promouvoir le langage. Les « Innovation Technology Awards » ont aussi été décernés et la médaille d’or revient au projet « OO centric debugging » (une extension du debugger permettant par exemple d’avancer dans le debugging jusqu’à la prochaine utilisation d’un objet). Les deux évènements ont été fêté comme il se doit, bien entendu 🙂 mais revenons au déroulement de la journée.

Aujourd’hui nous avons commencé par « How to do almost Smalltalking with Objective C to develop iOs Apps ».
Une présentation du langage Objective-C dans laquelle il est rappelé que le langage a été créé par Brad Cox et Tom Love pour ajouter les fonctionnalités objets de Smalltalk au langage C. Et de fait, il s’agit bien de coder en C et d’y inclure de la syntaxe Smalltalk entre crochets pour envoyer des messages.
La présentation nous montre ensuite tout l’écosystème du développement d’application pour iOS. Bon, pour moi, c’était un peu trop propagande et, sans une démo, je ne peux que rester sur ma conclusion primaire : « c’est un langage de schizophrène », on ne peut pas rester mentalement indemne en passant d’un monde à l’autre à chaque ligne de code !

Ensuite, le « Cincom Update » nous fait le point sur les derniers avancements de ses produits (VisualWorks et ObjectStudio).
Comme d’habitude, pas de grand chamboulement mais une série d’améliorations, esthétiques ou de performance.
Une information tout de même, sur le système qualifié de « polycephalie », qui serait finalement pas mal utilisé par les clients et qui serait victime de son efficacité : personne n’en parle (normal, ça ne pose pas de problème). Pour rappel (ou info), il s’agit de contourner l’absence de thread natif de Smalltalk, en facilitant la délégation de calculs à des images esclaves. L’argument du « 80% des avantages du multi-threading avec 20% de ses problèmes » est donc parfaitement légitime.

La présentation « Fuel all the way down » nous présente « Fuel », le nouveau framework de sérialisation d’objets et « Tanker », qui s’appuie dessus et qui permet d’importer/exporter des packages de code. Le système se révèle extrêmement efficace et permet même de sérialiser/dé-sérialiser un débugger et sa pile d’exécution. Avec ce genre de facilité, il devient possible d’enregistrer tout le contexte d’une erreur dans un build Jenkins et de le recharger pour étudier l’erreur dans le contexte où elle s’est produite.

La présentation suivante (stx:libjava – running Java in Smalltalk) est tout simplement hallucinante. Tous le monde savait que c’était impossible mais personne ne leur avait dit, et ils l’ont fait. Bon, en fait si, on savait que c’était possible puisque VisualAge pour Java faisait déjà de la compilation et de l’exécution de code Java mais là c’est différent. Ils ont tout simplement fusionné une machine virtuelle Smalltalk et une machine virtuelle Java. La démo est incroyable : du code Java dans l’image, qui appelle du code Smalltalk. Du code Smalltalk qui appelle du code Java et au final un tomcat lancé et qui annonce fièrement qu’il s’exécute sur une machine virtuelle Smalltalk/X. Les conséquences potentielles sont énormes. Il devient possible d’utiliser des choses comme des drivers JDBC, des outils comme maven, des éléments non graphiques d’Eclipse, … Le présentateur nous prévient quand même qu’il s’agit de travaux d’expérimentation et que ce n’est pas « production ready » mais quand même, une machine virtuelle mixte Smalltalk/Java !!!

La présentation « Building a Business with Cincom Smalltalk » n’est pas du tout ce que je croyais. Je m’attendais à une présentation du licensing ou quelque chose comme ça mais c’est finalement la génération d’une application simple from scratch avec le modeleur d’ObjectStudio. J’ai l’impression de voir une démo de L’ObjectLens telle que je la faisais en 1995, en moins bien puisque là il faut aller coder l’écran du formulaire. Si au moins ça allait jusqu’au packaging complet de l’appli mais là on sait bien que ce genre de génération de code nécessite ensuite de nombreuses retouches avant d’aller mettre quelque chose en production.

La dernière présentation concerne le « Presenty UI Framework », un framework MVP modifié permettant de séparer clairement la logique métier de l’affichage. J’aime beaucoup l’introduction qui consiste à voir les choses autrement. Lorsqu’on voit un écran constitué de listes, de boutons, de menus, … lui, il voit des Task et des UserRequest qui s’enchaînent. Cliquer sur un bouton, choisir dans un menu ou activer un raccourci clavier sont autant de manières différentes de faire la même chose : déclencher une action. Le framework propose donc de séparer la spécification des tâches à enchaîner et de configurer indépendamment le rendu graphique. Il devient possible de reconfigurer tout un écran, voir de le transformer en un enchaînement d’écrans modaux, sans toucher une ligne de code spécifiant l’enchaînement des tâches. Ça semble puissant mais assez difficile à prendre en main tant la logique est éloignée des habitudes.

Ce soir c’était le « social event ». La sortie en bateau pour visiter la ville par ses canaux et le dîner était très sympathique et constituait un bon moment festif. Nous avons quitté la troisième mi-temps après le premier verre (juste à temps je crois, il y aura surement des absents demain aux premières conférences)