Smalltalk est l’avenir du code – 2ème partie – Programmez! Magazine #244

Smalltalk : le retour d'un langage mythique

Pour fêter la nouvelle année, quoi de tel qu’une bonne dose de Smalltalk. Eh bien, figurez-vous que ça ne pouvait pas mieux tomber. Le 40ème anniversaire de Smalltalk a été célébré dignement à travers une première vague d’articles sur différentes facettes de ce langage mythique.

Les festivités se poursuivent en ce début 2021.  La deuxième partie de ce dossier est désormais disponible, dans le numéro janvier-février 2021 du magazine Programmez!.  Vous en trouverez ci-dessous un aperçu. J’espère qu’il vous donnera envie de courir au kiosque pour lire le texte intégral.

Merci encore à Stéphane Ducasse (INRIA) et à Laurent Julliard (Google Cloud) d’avoir concocté ce dossier.

Sommaire

PharoJS : Contrôlez JavaScript avec Pharo

Noury Bouraqadi

PharoJS est un ensemble d’outils et de librairies (licence MIT) qui permettent de bénéficier de l’environnement Pharo pour la conception d’applications JavaScript. Le développement est effectué entièrement en Pharo. Le passage en production consiste à convertir ce code pour obtenir in fine une application JavaScript.

[…]

La totalité du code écrit par les développeurs d’applications PharoJS est du code Pharo […] qui crée et connecte les objets applicatifs. Ces objets peuvent être issus aussi bien du monde Pharo que du monde JavaScript. […]

PharoJS MVC pattern example where models and controllers are Pharo objects, and views are JavaScript objects
Pendant les tests, les objets Pharo cohabitent avec les objets JavaScript

Durant les tests, l’application est répartie entre la machine virtuelle Pharo et l’interprète JavaScript.[…] Les tests sont écrits en Pharo et font abstraction de la localisation des objets comme illustré dans le listing suivant.

[PharoJS] permet de développer en Pharo des applications  exécutables par […] NodeJS ou un navigateur web. On code en Pharo, puis on génère du JavaScript pour […] serveurs et les clients web, ainsi que les smartphones iOS et Android. Il est possible de réutiliser et d’intégrer, de manière transparente, des librairies provenant aussi bien du monde JavaScript que de celui de Pharo.

Richard Uttner : un développeur Smalltalk pour toujours !

Interview réalisée par Laurent Julliard

[C’est] l’époque où Smalltalk a fait une percée commerciale. Notre équipe a aimé les concepts du langage et en particulier le  ramasse-miettes automatique gérant l’allocation de la mémoire […]

Depuis 1992, je propose des services et du conseil pour le développement Smalltalk […] en 2019, j’ai commencé à travailler avec Pharo […]

[…] dans moins de 2ans, je m’attends à ce que Pharo atteigne un haut niveau de professionnalisme tout en restant fidèle aux remarquables design et concepts d’origine de Smalltalk.

Visualisation agile avec Roassal

Alexandre Bergel

La capacité de visualiser des données est cruciale dans de nombreux domaines allant de l’intelligence artificielle, à la simulation et à l’analyse de données. Retranscrire des données sous forme visuelle n’a jamais été aussi simple, mais certains aspects restent aujourd’hui encore mal résolus. Comment (1) permettre  à l’utilisateur de définir ses propres visualisations, avec des interactions particulières et spécifiques (2), construire incrémentales des visualisations et avoir un retour immédiat (3), pouvoir intégrer des visualisations dans un environnent de production existant (4), être capable de connecter plusieurs visualisations dans un environnement donné ? La visualisation agile, telle que promue par le moteur de visualisation Roassal pour Pharo, propose une solution à tous ces problèmes. […]

Applications Web avec Seaside

Johan Brichau

Logo of Seaside web framework for the Pharo programming languageSeaside est le principal framework open source de développement d’applications Web pour Smalltalk. Il utilise des composants et le principe de continuation avec un rendu de pages côté serveur.

Le développeur construit son application comme une composition de composants réutilisables et conçoit des flux de contrôle comme pour une application desktop.

Seaside cohabite très bien avec les librairies et frameworks JavaScript […]

De nombreuses applications Web commerciales s’appuient sur Seaside […]

Un composant encapsule un état. Il peut effectuer son propre rendu en HTML et sait répondre aux actions de l’utilisateur […]

Nous n’utilisons ni HTML ni langage de markup pour définir le rendu d’un composant […]

[…] l’utilisateur d’une application peut utiliser les boutons navigation avant, navigation arrière et rafraîchissement du navigateur […]

Seaside gère donc de façon transparente pour le développeur le comportement à adopter en cas d’utilisation de ces boutons de navigation. Il y parvient en sauvegardant l’état des composants de chaque page et en incluant une clé unique pour chaque page dans l’URL. Il est possible pour le développeur de personnaliser ce qui est mémorisé et quelle doit être l’étendue de l’historique […]

Étant donné que Seaside gère les transitions entre pages Web ainsi que les boutons de navigation du navigateur de façon transparente, le développeur peut implémenter le flot de contrôle de l’application de façon très naturelle en utilisant simplement des callbacks qui changent l’état d’un composant ou appellent d’autres composants plutôt que de penser en termes de requêtes HTTP et de pages HTML […]

Scripter VLC avec Pharo uFFI

Benoît Verhaeghe

VLC est le logiciel le plus connu pour lire des fichiers audio et vidéo. Il permet aussi de lire des streams, et donc de lire, par exemple, le stream diffusé par des caméras de sécurité. Nous verrons comment […] contrôler VLC depuis Pharo […]

[…] le projet VLC est supporté sur les trois plateformes les plus utilisées (Linux, Windows et Mac OS) et fournit les librairies partagées libvlc et libvlccore […] Elles définissent une API permettant à un programme d’interagir avec un autre. Et c’est précisément ce que permet de faire uFFI, à savoir appeler depuis Pharo les méthodes définies dans une librairie partagée.

[…] il est possible de contrôler VLC depuis Pharo. Nous pouvons ainsi lire des morceaux qui proviennent de notre ordinateur, mais aussi depuis d’autres services (comme Youtube) en utilisant la capacité de VLC à jouer un stream […]

[On peut ainsi créer] un média center complet en Pharo, soit sous forme d’application desktop ou bien d’une application web avec le framework web Seaside.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.