Smalltalk est l’avenir du code – 1ère partie – Programmez! Magazine #243

Smalltalk on the Cover of issue of november of Progammez! Magazine

Pour fêter le 40ème anniversaire de Smalltalk-80, la communauté francophone du Smalltalk libre Pharo a écrit une série d’articles. Ils sont publiés dans le magazine “Programmez!”, à destination des développeurs. Ce dossier a été assemblé et relu par  Stéphane Ducasse (INRIA). La coordination en a été assurée par Laurent Julliard (Google Cloud).

Vu le nombre conséquents de papiers, les festivités ont été réparties sur 2 numéros : le dernier de 2020 et le premier de 2021. Ainsi, la première vague est disponible dans le numéro de novembre-decembre 2020 de “Programmez!”. En voici un aperçu qui, j’espère,  vous donnera envie de lire la totalité du dossier.

Sommaire

Smalltalk: le retour d’un langage mythique

Stéphane Ducasse

Smalltalk n’est pas le langage de programmation le plus connu. Et pourtant, il joua un immense rôle dans la micro-informatique et les grandes révoutions technologiques des années 70 et 80. […]

Programmez! vous propose de découvrir, de redécouvrir ce fantastique langage avant de longuement aborder Pharo, implémentation moderne de Smalltalk. […]

La Saga Smalltalk

Laurent Julliard

Début 1980, PARC, le célèbre centre de recherche de Xerox situé à Palo-Alto publie Smalltalk-80. C’est le point d’orgue de près de 10 ans de recherche. Smalltalk-80 et son indissociable compagnon, l’ordinateur personnel Alto, ont dix ans d’avance sur le marché. […]

Parmi les visiteurs privilégiés, Steve Jobs. […] bien que Steve Jobs s’en soit toujours défendu en interview, il sort de cette visite totalement hypnotisé par l’environnement graphique qu’il vient de voir. Le Lisa sortira sur le marché en 1983 avec une interface graphique, une souris et des logiciels très inspirés (pour ne pas dire copiés) des travaux du Xerox PARC. […]

Le très célèbre magazine de micro-informatique américain BYTE qui tire à 500 000 exemplaires, consacre son numéro d’Août 1981 à Smalltalk-80. […]

Byte Magazine 1981 Special Issue on Smalltalk
Couverture du numéro d'août 1981 de BYTE consacré à Smalltalk-80

Introduction à Smalltalk

Laurent Julliard

[…] 40 ans plus tard, sa syntaxe, remarquable de simplicité, n’a pas subi de modifications. […]
 
Si vous avez déjà entendu parler de Smalltalk, vous avez peut-être aussi entendu dire que sa syntaxe tient sur une simple carte postale. Il ne s’agit ni d’une légende, ni d’une exagération : une carte postale suffit bel et bien pour définir toute la syntaxe de Smalltalk. […]
 
Comme vous avez pu le constater, la syntaxe Smalltalk est àla fois désarmante de simplicité et d’une incroyable puissance. […]
Pharo Smalltalk Syntax
La syntaxe de Pharo Smalltalk

Laurent Julliard

L'héritage de Smalltalk

[…] l’histoire de Smalltalk est une véritable saga. Mais, ce qui fascine encore davantage ce sont les innombrables innovations que l’équipe CSL (Computer Systemes Lab) de Xerox Parc nous a laissé en héritage de cette même période. Aujourd’hui, dans la plupart des outils, langages et méthodologies utilisés, nous retrouvons l’empreinte indélébile de cette folle décennie de recherche.

[…] Machine virtuelle […] Modele MVC […] Souris […] Ethernet […] Imprimante laser […] Extreme programming […] Refactorings […] TDD […]

Pharo - pureté, interactivité, réflexivité

Noury Bouraqadi & Luc Fabresse

[…] Pharo est un descendant direct et libre de Smalltalk, lancé en 2008 sous licence MIT. Il allie stabilité et innovation, grâce à une communauté qui regroupe aussi bien des entreprises que des établissements académiques.

Oubliez les fichiers ! […] lorsqu’on code, on raisonne en termes de paquetages (packages), de classes et de méthodes. Ce sont justement ces concepts qui sont mis en avant par l’outil System Browser de Pharo […]

2 fichiers pour les contrôler tous […] le développeur Pharo crée et initialise les objets qui constituent le programme. Puis, il sauvegarde le contenu de la mémoire de travail dans un fichier binaire dit image. A l’exécution, la machine virtuelle Pharo transfère le contenu du fichier image dans la mémoire RAM. On retrouve ainsi tous les objets sauvegardés prêts à l’emploi. La majorité des opérations d’initialisation étant faites lors du développement, le chargement du programme se fait à la vitese de l’éclair ! […]

Développement interactif piloté par les tests. Une autre cractéristique de Pharo tient à sa capacité de remplacer du code à chaud, c’est-à-dire en cours d’exécution. Le développement d’applications peut ainsi être réalisé de manière increementale […] Les champs et les méthodes dont on a besoin sont ajoutés au fur et à mesure de l’introduction des fonctionnalités. Les objets sont automatiquement mis à jour par Pharo de manière à intégrer les changement sans jamais avoir à relancer un quelconque interpréteur ou à recompiler des fichiers. [….]

Cette interactivité se conjugue parfaitement avec la démarche TDD (Test Driven Development) de développement piloté par les tests, bien connue dans les méthodologies de gestion de projet agile. […]

 

Pharo 8 browser displaying a test class
Classe de test dans l'outil System Browser de Pharo 8

La machine virtuelle de Pharo

Pablo Tesone

Dans cet article, nous présentons un bref aperçu de la machine virtuelle (VM) utilisée par Pharo. Cette VM présente des capacités intéressantes qui mettent en évidence la puissance de Smalltalk. De plus, c’est une excellente VM aussi bien pour faire de la recherche qu’à utiliser en production grâce à son histoire longue et riche, et à son avenir très prometteur. […]

La VM Pharo est le produit d’une évolution continue qui s’étale sur une longue période de temps. Elle comprend des éléments qui ont été introduits dans les versions originales de Smalltalk et qui ont évolué depuis. Elle inclut des techniques modernes telles que la compilation Just In Time et les ramasse-miettes automatiques avancés. […]

L’un des principaux avantages de la VM Pharo est qu’elle est écrite en Pharo. Elle peut être exécutée comme n’importe quel autre programme Pharo. Cela nous permet d’écrire des tests, de simuler l’exécution de la VM, de la modulariser, d’utiliser tous les outils Pharo existants et de la documenter comme n’importe quel autre programme. […]

Nous proposons une véritable version open-source pour ARM 64 bits ; versions mises à jour pour Windows, Linux et Mac. […]

t

Iceberg – une intégration Git pour Pharo

Guillermo Polito

Depuis deux ans, Pharo offre une intégration très proche du gestionnaire de versoins Git, qui a remplacé Monticello, le gestionnaire de versions que Pharo utilisait depuis 2008. Non seulement les projets écrits en Pharo peuvent être stockés sur des forges et dépôts Git, mais le projet Pharo lui-même est géré avec un dépôt Git. Cet article présente le module d’interfaçage à Git nommé Iceberg : sa raison d’être, ce qu’il offre et ses avantages par rapport à l’utilisation de Git depuis la ligne de commande. […]

Iceberg offre le meilleur des deux mondes : de la programmation avec des objets vivants, un des concepts fondamentaux de Smalltalk, et une sauvegarde textuelle transparente comme le font classiquement les IDE du marché.

Pour simplifier l’installation de Pharo et Git […] Iceberg utilise la librairie libgit, qui implémente les fonctionnalités de base Git, et qui est écrite en C de manière portable. Iceberg utiliser libgit via la biliothèque UnifiedFFI.

UnifiedFFI permet d’interfacer Pharo avec des biliothèques extenres. Le FFI permet d’appler des biliothèques externes qui ont une convention standard d’appel, comme le code C, avec une liaison dynamique. […]

Pharo 8 Iceberg repository view with diff of versions of a method
Comparaisons de différentes versions d'une même méthode dans Iceberg

MetaL – un framework pour boostrapper de petites images Pharo

Carolina Hernández Philips

[…] vous savez déjà qu’un environnment  d’exécution Pharo (et Smalltalk en général) se compose d’une machine virtuelle capapble d’exécuter du byte code, et d’un fichier image qui comporte tous les objets vivants exploités par la machine virtuelle. Comme en Smalltalk, absolument tout est objet, toutes les classes et méthodes de Pharo (y compris celles de vos programmes) sont dans cette image.
 
Pour certains projets, soit pour des raisons de sécurité ou d’empreinte mémoire limitée, il est intéressant de générer des images réduites, comportant uniquement les classes et les méthodes dont vous avez besoin. Le framework MetaL permet précisément de générer des images Pharo (aussi appelées noyaux) réduites qui peuvent descendre jusqu’à 40 Koctets tout en restant totalement compatibles avec la machine virtuelle Pharo. de quoi travailler sur des plateformes matérielles très réduites […] chaque image Pharo est générée en compilant le code source de l’image via une application dont le processus de génération s’appuie sur la technique dite de bootstrap. […] MetaL est justement là pour simplifier ce processus de création en matérialisant toutes les exigences de la machine virtuelle, en fournissant des tests automatisés et un des méta-modèles du langage pour manipuler la définition du noyau, et ce que vous voulez y mettre. […]

One Comment

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.