Smalltalk
Smalltalk es un lenguaje de programación orientado a objetos, reflexiva y con tipos dinámicos. Fue uno de los primeros lenguajes de programación para tener un entorno gráfico de desarrollo totalmente integrado. Se inspira en Lisp y Simula. El lenguaje se formaliza como Smalltalk-80 y ha sido utilizado por un gran número de personas. Smalltalk todavía se desarrolla activamente.
Smalltalk fue de gran influencia en el desarrollo de muchos lenguajes de programación, incluyendo: Objective-C, Actor (es), Java y Ruby.
Innovando con Smalltalk
Muchas de las innovaciones de la ingeniería de software en la década de 1990 procedían de la comunidad de programación Smalltalk, como patrones de diseño (aplicados al software), Extreme Programming (XP) y refactorización. Ward Cunningham, inventor del concepto de un Wiki es también un programador de Smalltalk.
Hay muchas variantes de Smalltalk, como es a menudo el caso con los idiomas de programación. A no ser calificado de otra manera, la palabra Smalltalk se utiliza a menudo para Smalltalk-80, la primera versión que se lanzará en 1980.
Los principales conceptos de Smalltalk son:
«Todo es un objeto. «Las cadenas, enteros, booleanos, definiciones de clases, bloques de código, las baterías y la memoria se representan como objetos.
Todo es editable. El lenguaje permite, por ejemplo para cambiar la IED en uso, sin necesidad de recompilar o reiniciar la aplicación. Del mismo modo, es posible crear nuevas instrucciones de control en el lenguaje. Algunas implementaciones permiten cambiar la sintaxis del lenguaje, o la forma en que el recolector de basura funciona.
Escribir es dinámico, dando un lenguaje conciso.
A la recogida de basura de memoria está integrada y transparente para el desarrollador.
Se proporciona una recuperación del sistema de gestión de excepciones.
Programas Smalltalk generalmente se compilan en bytecode ejecutado por una máquina virtual.
La traducción dinámica: las máquinas virtuales comerciales modernas compilan el código de bytes de código máquina nativo con el fin de obtener un mejor rendimiento, una técnica de Smalltalk-80 ha sido pionero, desarrollado por Sistemas ParcPlace a mediados de 1980. Esta idea fue adoptada por el lenguaje de programación Java unos diez años más tarde y el nombre de «compilación just-in-time» o JIT.
Una clase puede heredar una sola otra clase (herencia simple).
Smalltalk implementa además de los objetos de los principios básicos (clase, objeto, herencia, polimorfismo), conceptos originales (MetaClass) e introduce el concepto de objeto persistente, manejo de excepciones y el principio Model-View-Controller.
Una característica sorprendente de Smalltalk es la ausencia total de instrucciones de control integrados de la lengua: si-entonces-sino, para, tiempo, etc. Todas las instrucciones se implementan utilizando objetos. Por ejemplo, las decisiones se toman mediante el envío de un mensaje a un objeto ifTrue Boole, y pasando un fragmento de código que se ejecutará si el booleano true. El único defecto de aspecto integrado es la sintaxis para enviar un mensaje a un objeto.