Introduction

De SmartEiffelWiki, la enciclopedia libre.


Tabla de contenidos

Los orígenes del proyecto SmartEiffel

Durante el transcurso de su tesis, Dominique Colnet, el autor principal de SmartEiffel, descubrió al lenguaje Eiffel mientras editaba un trabajo enciclopédico sobre lenguajes orientados a objetos ([MNCLT 1989], [MNCLT 1991])

Con el cargo de profesor adjunto de Ciencias de la Computación en 1989, sus superiores en su instituto educativo decidieron, en 1990, usar el lenguaje Eiffel para introducción a las ciencias de la computación. Es interesante mencionar aquí que Dominique Colnet era en ese momento un ferviente defensor de Smalltalk. Como todo el mundo sabe, es bueno que no quede a cargo de un joven adjunto la decisión de cual lenguaje de programación es mejor usar. Por eso, una nota divertida es que Dominique Colnet fue forzado a usar Eiffel contra su voluntad en 1990.

Para reconciliar su docencia y trabajo de investigación sobre compilación de lenguajes orientados a objetos, Dominique Colnet decidió abandonar Smalltalk por Eiffel y establecer un proyecto que mate dos pajaros con la misma piedra: combinar investigación interesante con un producto libre que a su vez sea útil para la enseñanza.

El proyecto SmartEiffel, originalmente llamado SmallEiffel comenzó durante el año 1994 cuando Dominique Colnet decidió escribir su propio compilador de Eiffel.

Escribir un compilador de Eiffel no es un proyecto pequeño. Antes de tomar esta decisión, Dominique Colnet había empezado a escribir una biblioteca de clases de Eiffel cuya arquitectura correspondía casi palabra por palabra a las clases base que en ese momento podían encontrarse en las bibliotecas de Smalltalk-80 ([GR 1983], [Goldberg 1984]). Debido a la mala calidad de los compiladores comerciales de Eiffel del momento, se tomó la decisión de escribir uno desde cero. El nuevo compilador fue llamado SmallEiffel para hacer referencia tanto a Smalltalk como a Eiffel ([OOSC 1988], [ETL 1992]). Tomó todo un año escribir la primera versión de SmallEiffel, y no fue hasta Julio de 1995 que SmallEiffel fuae capaz de compilarse a si mismo. Desde entonces, más de diez años han pasado y más de treinta versiones (http://smarteiffel.loria.fr/misc/HISTORY#-1.00) han visto la luz del día.

El pequeño SmartEiffel se hace grande

Aunque se inició como un prototipo de investigación simple y como herramienta educativa, SmartEiffel ha visto crecer sus capacidades versión a versión desde 1995.

En 1998, durante una visita a LORIA de Richard Stallman, presidente y fundador de la FSF (Fundación Software Libre), se agregó la designación GNU al nombre del proyecto.

Desde 2002 y hasta 2005, Dominique Colnet participó activamente en reuniones con el objetivo de estandarizar el lenguaje Eiffel(comité de estándares ECMA TC39-TG4, estándar número 367 de ECMA). No hace falta mencionar que todo el equipo de SmartEiffel está asociado con el trabajo de estandarización y sus muchas y largas discusiones...

Finalmente, en mayo de 2005, el proyecto SmartEiffel anunció que iba a seguir trabajando en el verdadero lenguaje Eiffel. En realidad, el lenguaje descripto por el grupo de trabajo ECMA TC39-TG4 diverge claramente de lo que es llamado convencionalmente Eiffel. ECMA-Eiffel es un lenguaje muy distinto, y por sobre todo, aún no probado. El equipo de SmartEiffel jamás implementará ECMA TC39-TG4.

En julio de 2005, al momento de escribir esto, luego de más de 10 años de trabajo no sólo en el compilador sino también en el mismo lenguaje Eiffel, nosotros, el proyecto SmartEiffel, consideramos que el lenguaje Eiffel tal como lo conocemos hoy, contiene casi todas las características deseables. Por lo tanto, la versión 2.2 de SmartEiffel marca el debut de un nuevo grado de estabilidad y corresponde a lo que nosotros creemos ser el verdadero lenguaje Eiffel.

Objetivos del proyecto SmartEiffel

El lenguaje esta ingresando a un período de estabilidad. De hecho, en la versión 2.2, lo único importante que aún resta por hacer es programación distribuida, el mecanismo SCOOP. no hace falta decir que la implementación de SCOOP no afectara negativamente a ningún software ya existente. En nuestra opinión, es evidente que debemos movernos hacia un lenguaje estable y probado experimentalmente trabajando en una amplia gama de aplicaciones.

Anticipamos a corto plazo un esfuerzo importante de implementar bibliotecas que comenzó en la versión 2.2. También vamos a abrir más el proyecto para aumentar la dinámica alrededor de SmartEiffel: trabajar en un Wiki para consolidar la documentación y aumentar el número de personas autorizadas a contribuir al código fuente del proyecto.

Sin modificar el lenguaje, trabajaremos en nuevas herramientas en el dominio de Predicción de tipos dinámicos y de validación estática de aserciones. De hecho, creemos que el lenguaje Eiffel debe permanecer simple. Las herramientas que integraremos, sin cambiar el lenguaje, se enfocarán en los siguientes objetivos:

  • mejor predicción de tipos dinámicos y obtener mejor performance de ejecución.
  • validar estaticamente aserciones y detectar llamadas sin un targer (llamadas sobre Void)
  • resolver estáticamente todos los problemas de tipado asociados a covarianza y cambio de

exportación (CATCalls).

Otro modo de describir los objetivos del proyecto SmartEiffel es dar nuestro punto de vista sobre Eiffel, o más precisamente el espíritu de Eiffel.


Eiffel, el espíritu de Eiffel, o el método Eiffel?

Estrictamente hablando, Eiffel es un lenguaje y no realmente un método. Habiendo dicho eso, luego de más de diez años de trabajo en Eiffel y para Eiffel, no podemos evitar notar que Eiffel es un buen vehículo para una forma de pensar particular, y por lo tanto un modo de trabajar en software de computadoras.

No creemos que sea contradictorio afirmar que Eiffel es probablemente el mejor lenguaje que permite realizar lo que hoy se llama ingeniería de software

Esto no es sorprendente al considerar que la ingeniería de software fue la guía principal para tomar decisiones respecto al lenguaje Eiffel.

Antes de presentar otros aspectos que consideramos luego de cada evolución del lenguaje, es bueno tener en cuenta que el lenguaje de computación universar perfecto para todo tipo de aplicaciones no existe, y probablemente jamas exista.

Hoy, y seguramente por un tiempo, los conceptos de lenguajes de programación siguen siendo empíricos y cualquier lenguaje es sólo efectivo para un espectro dado de aplicaciones.

Trataremos de presentar en las siguientes las guías principales que influencian nuestras decisiones:

La ingeniería de software es la guía principal en la concepción y en las elecciones tomadas respecto al lenguaje Eiffel.

Los siguientes puntos fundamentales salen de esta guía:

  • Eiffel está especialmente diseñado para programas grandes e incluso programas muy grandes
  • Eiffel debería facilitar trabajar en equipo, comunicación y documentación
  • Eiffel debería facilitar mantenimiento y testeo de componentes de software.

Por supuesto, el aspecto de seguridad es uno de nuestras preocupaciones principales. Más aún, en lo que respecta a la ingeniría de software, proponemos elevar el nivel aún más: Ofrecer un lenguaje capaz de explotar por completo todos los recursos de la máquina, un lenguaje y un juego de erramientas pare generar auténticos programas de alta performance.

Personal tools
Otros idiomas