El Llenguatge de Programació Smalltalk

alan kayProducte d’un equip liderat per Alan Kay, Smalltalk es presenta com un llenguatge orientat a objectes i tipat dinàmic. Després de distintes versions publicades durant els anys 70, el 1980 es publica la primera versió àmpliament distribuïda (Smalltalk-80) que va constituir la base de l’estàndard ANSI ratificat el 1998.

Smalltalk sorgeix en el context del programa ARPA, projecte finançat durant els anys 60 i d’on sorgeixen altres resultats i tecnologies (com ara l’hipertext, les GUI, la multimèdia o Internet) que defineixen el que avui entenem com a informàtica. En particular, les característiques del llenguatge, les eines de depuració i l’entorn de desenvolupament, influïren en el desenvolupament de les modernes GUI i els entorns WYSISYG (What You See Is What You Get).

Smalltalk-80 Book

Smalltalk-80 Book

A diferència d’altres llenguatges orientats a objectes, Smalltalk considera tots els elements implicats en el codi com objectes, sense diferenciar entre objectes i tipus primitius, com ara C++ o Java. La sintaxi de Smalltalk és minimalista i considera exclusivament sis paraules reservades, en què està relacionada l’execució d’operacions amb l’enviament de missatges. Una altra característica de Smalltalk és la capacitat d’un programa d’accedir a la seua estructura i modificar-la; és a dir, la capacitat d’un programa d’automodificar-se.

Tot i que no va ser l’únic llenguatge que recull l’enfocament de programació orientat a objectes presentat originalment per Simula, Smalltalk-80 sí és el llenguatge que més èxit té i que, per tant, popularitza aquest paradigma de programació. Pràcticament, tots els llenguatges posteriors que suporten orientació a objectes (Java, Python, Objective-C, etc.) han estat influïts per Smalltalk.

Atesa la importància dels llenguatges influïts per Smalltalk, actualment no és molt utilitzat i no apareix entre els 50 llenguatges més populars del rànquing TIOBE (2021).

Smalltalk


Naixement:1960
Evolució: Smalltalk-71; Smalltalk-72; Smalltalk-76; Smalltalk-80; ANSI Smalltalk (1998)
Influències de: Simula; Lisp; Logo
Influeix en: Objective-C; Java; Python; Scratch