Smalltalk : un langage complet et simple

Savoir lire est essentiel, savoir coder va bientôt le devenir ! Nous apprenons à coder de plus en plus tôt, mais le langage choisi n’est parfois peut être pas le plus adapté. Tour d’horizon d’un langage trop vite oublié, malgré un statut de pionnier dans la Programmation Orientée Objet (POO).

--

“Smalltalk is dangerous. It is a drug. My advice to you would be don’t try it; it could ruin your life.”

Andy Bower, C++ expert; Cited in: Andy Bower (2002) “SmalltalkQuotes.”

Afin de pouvoir profiter pleinement de ce qui est raconté ci-dessous, il est préférable de connaître les concepts de base de la programmation orientée objet.

Un peu d’histoire…

Apparu pour la première fois en 1972 sous le nom de Smalltalk-72, le langage a été formalisé en 1980 (Smalltalk-80) et est aujourd’hui connu pour être à l’origine d’autres langages plus connus comme JAVA ou Ruby.

Smalltalk a été développé par quatres employés de Xerox (Alan Kay, Dan Ingals, Ted Kaehler et Adele Goldberg)sur l’idée que toutes les actions qui devraient être réalisées par des objets, pourraient être vu sous la forme d’envoi de messages, comme des “stimuli extérieurs adressés aux objets”.

Figure 1 : Concept Smalltalk d’envoi de message

Orienté objet “pur”, sans typage et possédant une syntaxe efficace, apprendre à programmer en Smalltalk permet de comprendre la rigueur des algorithmes. Il apporte également un environnement d’exécution dynamique qui permet donc de tester facilement le code et simplifie les opérations de débogage (lorsque l’on utilise l’interface graphique associée).

C’est donc dans cette volonté de rapidité, clarté et de simplicité que Smalltalk a été créé.

Une syntaxe qui tient sur une carte postale !

La métaphore est ici explicite, la syntaxe de Smalltalk est simple et va directement à l’essentiel : on programme comme l’on parle (à quelques virgules près) !

Le langage, influencé par Simula et Lisp se caractérise par :

  • un typage dynamique,
  • le passage de paramètres par valeur,
  • une gestion automatique des exceptions et de la mémoire (ramasse miette, allocation dynamique)
  • des mots réservés : nil, true, false, self, super, et thisContext
  • trois types d’envois de messages : unaires (l’objet est suivi de la méthode), binaires (utilisés pour les opérations arithmétiques) et à mots clefs (lorsqu’il y a plusieurs arguments).

Voici quelques exemples permettant d’éclaircir ces notions :

Figure 2 : Exemples d’instructions Smalltalk

On voit ici que le langage se rapproche du naturel et que le sens se déduit aisément des instructions.

Smalltalk, langage où toute entité est objet, a repensé toute l’algorithmie afin de proposer une gestion des objets simplifiée et qui a permit de résoudre des problèmes de lisibilité, de maintenance des codes industriels (contenant des milliers de lignes).

A la demande du programmeur, les objets peuvent être manipulés au travers d’envoi de messages simples et directs. Donc si la programmation orientée objet vous intéresse, Smalltalk vous apportera pleine satisfaction !

Figure 4 : Smalltalk

Sources :

esug.org/data/Articles/ColumnsSqueakInFrench/article%203%20-%20LaSyntaxeDeSmalltalk.pdf

www.epi.asso.fr/fic_pdf/b52p212.pdf

hiko-seijuro.developpez.com/articles/IntroSmalltalk/

www.lirmm.fr/~dony/notesCours/introAvanceeStk.pdf

fr.wikipedia.org/wiki/Smalltalk

csl.ensm-douai.fr/noury/uploads/15/intro_prog_objet_en_smalltalk.pdf

--

--