VisualWorks (anteriormente ObjectWorks , luego Cincom Smalltalk ) es una implementación multiplataforma del lenguaje Smalltalk . Se implementa como un sistema de desarrollo basado en imágenes , que son colecciones dinámicas de objetos de software, cada uno contenido en una imagen del sistema .
El linaje de VisualWorks se remonta a la primera implementación de Smalltalk-80 por parte de Xerox PARC . A fines de la década de 1980, un grupo de desarrolladores de Smalltalk-80 se separó de ParcPlace Systems para seguir desarrollando Smalltalk-80 como un producto comercial. El producto comercial se denominó inicialmente ObjectWorks y luego VisualWorks. El 31 de agosto de 1999, el producto VisualWorks se vendió a Cincom Systems . VisualWorks se ejecuta en muchos sistemas operativos, incluidos Windows , macOS , Linux y varias versiones de Unix .
VisualWorks admite proyectos de desarrollo multiplataforma gracias a sus funciones multiplataforma integradas. Por ejemplo, una aplicación de interfaz gráfica de usuario (GUI) solo se debe desarrollar una vez y luego se puede cambiar a diferentes estilos de widget. Una aplicación de VisualWorks se puede ejecutar en todas las plataformas compatibles sin modificaciones. Solo la máquina virtual depende de la plataforma.
Beneficios y desventajas
VisualWorks permite desarrollar aplicaciones con gran rapidez, ya que se pueden compilar métodos individuales incluso mientras se ejecuta el programa que se va a desarrollar. Compilar un método de Smalltalk suele llevar menos de un segundo, mientras que hacer lo mismo para un proyecto de C++ suele llevar un minuto o más, y no se puede hacer fácilmente sin reiniciar el proceso. Los distintos exploradores de código de VisualWorks ayudan al desarrollador a localizar rápidamente una clase o un método de interés.
El rendimiento y la velocidad de procesamiento de los programas Smalltalk pueden acercarse al rendimiento de lenguajes estáticos como C++ , Fortran , Pascal o Ada utilizando un compilador justo a tiempo al generar código de máquina especializado para tipos de uso frecuente, pero el procesamiento numérico y los programas que se benefician de una distribución precisa de la memoria pueden funcionar más lentamente. El recolector de basura generacional minimiza la mayoría de las pausas de recolección, pero puede no ser adecuado para requisitos de determinismo y tiempo real estrictos, ya que pueden ocurrir recolecciones completas prolongadas, que pueden detener el mundo durante decenas a cientos de milisegundos, proporcionales al tamaño del montón. Sin embargo, la recolección de basura es preferible a la gestión manual de la memoria en un lenguaje orientado a objetos, y el programador puede tomar varias acciones para controlar cuándo y durante cuánto tiempo ocurre la recolección de basura; por lo tanto, en la mayoría de las circunstancias, la recolección de basura no es una preocupación.
Instalación
Todos los componentes del sistema VisualWorks se instalan en Windows 7 o posterior en un directorio Archivos de programa\Cincom cuyo nombre coincide con el número de versión del sistema instalado, por ejemplo, vw7.5nc. Este directorio contiene varios subdirectorios, entre ellos bin, doc , examples y muchos otros.
Botones y menús del ratón
VisualWorks asume un mouse de tres botones con nombres lógicos <Select>, <Operate>y <Window>. Sin embargo, se puede utilizar un mouse de uno o dos botones junto con las teclas Ctrl , Opción o Comando . <Select>selecciona cualquier objeto de la interfaz. <Operate>muestra un menú de operaciones para la vista/selección actual. <Window>inicia acciones (mover, cerrar...) en las ventanas de VisualWorks.
Formato de archivo en
El formato File-in es el formato original de Smalltalk para representar clases como archivos de texto. Estos se pueden "archivar" en el IDE de VisualWorks para generar cualquier clase que no esté incluida en la imagen de Smalltalk . Cada documento File-in proporciona una representación textual simple de una clase o clases de Smalltalk en un archivo de texto con un .stsufijo. Aún se admite en VisualWorks, pero ha sido reemplazado por un mecanismo de Parcels. Hay ejemplos en formato File-in en el subdirectorio de ejemplos.
Paquetes
Las parcelas son representaciones de archivos externos de paquetes.
Se proporciona un explorador de ejemplos como paquete en el directorio de ejemplos. Hay varios conmutadores de nivel de imagen disponibles para especificar la carga de paquetes al iniciar la imagen. [1] La ruta de paquetes es la lista de directorios donde VisualWorks busca paquetes. Esto se puede configurar mediante la herramienta Configuración del sistema.
Las parcelas proporcionan la tecnología de componentes para VisualWorks. Los paquetes y los paquetes organizan el código y modelan el contenido de las parcelas. Las parcelas se crean mediante la publicación de paquetes o paquetes. El término componentes , en el ámbito de VisualWorks, se utiliza para referirse a parcelas, paquetes y paquetes cuando no es necesario especificar nada.
La organización del código de parcela al cargarlo está determinada por su creación. Si se creó mediante la publicación de un paquete, se carga en el mismo paquete. Si se creó a partir de un paquete, se puede volver a cargar como paquete o como un paquete.
La secuencia de carga de un paquete es:
- Se cargan todos los componentes necesarios.
- Se realiza cualquier acción de precarga definida (por ejemplo, se inicializan variables no declaradas).
- Se instalan los objetos en el paquete.
- A cada clase del paquete se le envía un mensaje después de la carga: el paquete y cualquier acción ejecutada. Suele tratarse del lanzamiento de una aplicación.
Gerente de paquetería
El Administrador de parcelas se utiliza para cargar y descargar todas las parcelas en la ruta de parcelas. Una vista de Sugerencias enumera las Categorías que contienen las parcelas complementarias clave: al seleccionar una categoría, obtendrá una lista de parcelas recomendadas. Por ejemplo, el Pintor de interfaz de usuario se encuentra en la categoría Elementos esenciales. También hay una vista de árbol de directorios de la ruta de parcelas, para buscar parcelas fuera de la vista de Sugerencias. Una vista Cargadas enumera todas las parcelas que ya están en la imagen. Solo se pueden explorar las parcelas cargadas.
Un paquete de producto compatible con VisualWorks se representa mediante un icono que parece un paquete. Los paquetes de otros proveedores parecen una bolsa de la compra. Debido a la complicada historia del desarrollo de clases de Smalltalk, esto puede resultar muy útil. Por ejemplo, un icono de paquete indica que el sistema de hipertexto Arbor ahora es compatible con VisualWorks.
También se pueden cargar y descargar paquetes mediante programación desde la aplicación.
Paquetes
Cuando se carga un paquete, se organiza como un paquete o conjunto de paquetes. Al buscar código cargado desde un paquete, se puede localizar el conjunto o paquete con el mismo nombre en el Navegador del sistema. Los paquetes son categorías que organizan las clases en grupos relacionados, según el componente. Los paquetes se pueden agrupar en conjuntos. Los paquetes y conjuntos se pueden guardar (publicar) como paquetes o en un repositorio de código fuente.
Cargando bibliotecas de código
La imagen visual.im inicial contiene funciones de desarrollo mínimas, utilizando bibliotecas de clases básicas . VisualWorks o proveedores externos proporcionan bibliotecas de clases adicionales, generalmente como archivos de paquete. Para la mayoría de los entornos de desarrollo que no son de Smalltalk, las bibliotecas de código se importan en tiempo de compilación, utilizando un comando include . En Smalltalk , las bibliotecas de código se cargan en el sistema en ejecución y se convierten en parte del entorno. Por ejemplo, el UI Painter se carga como un paquete.
Lanzador de VisualWorks
El Lanzador de VisualWorks, normalmente llamado simplemente Lanzador , es el centro de control del sistema VisualWorks. Es la plataforma de lanzamiento de todas las herramientas principales.
Conceptos básicos de Smalltalk
Smalltalk es un lenguaje de programación orientado a objetos puro , lo que significa que la única forma de lograr que algo suceda dentro de Smalltalk es enviando mensajes a objetos. VisualWorks utiliza el lenguaje Smalltalk-80 como estándar, pero viene con su propio conjunto de clases y métodos. Por lo tanto, incluso las clases básicas, como Object, difieren de las de otros IDE de Smalltalk-80 como Squeak y Dolphin Smalltalk . Los ejemplos ilustrativos aquí funcionan en VisualWorks Smalltalk, pero es posible que no funcionen en otros Smalltalks porque las clases y/o métodos pueden diferir.
Exploración y edición de código Smalltalk
En los entornos de programación orientados a objetos tradicionales , un desarrollador edita directamente un archivo de código fuente de texto simple que contiene definiciones de clases y métodos . En VisualWorks, como en todos los Smalltalks, todo es un objeto en ejecución , incluidas las clases. Al explorar las clases de Smalltalk, el desarrollador obtiene definiciones de los objetos en ejecución. El explorador/editor principal de VisualWorks es el Explorador del sistema. Permite al desarrollador explorar las clases, ya sea en la jerarquía de clases general o a través de sus paquetes. Se inicia desde el Lanzador de VisualWorks.
Los paneles de lista del explorador del sistema permiten a los desarrolladores navegar hasta las definiciones de clases y métodos. Luego, se pueden ver o editar en una vista de código o modificar con nuevas definiciones.
Variables no declaradas
Cuando se elimina una variable mientras aún existen referencias a ella, o se carga mediante un paquete pero nunca se declara, su nombre ingresa al espacio de nombres Undeclared. Las variables no declaradas pueden causar ciertos errores de programa.
Cadena y archivos
El primer tutorial de Cincom sobre VisualWorks ilustra cómo se puede utilizar VisualWorks para manipular archivos de registro del servidor . Ilustra cómo elementos como cadenas y archivos se pueden incorporar fácilmente a la estructura de objetos dentro de VisualWorks. Considere la expresión de Smalltalk :
'ws000101.log' comoNombre de archivo editar
Se puede evaluar esta expresión tal como está en un espacio de trabajo de VisualWorks mediante un comando en el menú de operaciones. Esto crea:
- Un objeto de la clase ByteString que contiene la cadena (como bytes ) y los métodos para manipularla;
- Un objeto de la clase NTFS Filename (en Windows XP ); y
- Un objeto editor.
Este último es un editor simple, similar a un cuaderno , que contiene el contenido del archivo. Es decir, la evaluación creó un objeto de nombre de archivo como puerta de acceso al archivo ws000101.logy abrió un editor en él. El editor en sí es un objeto, al igual que todos sus componentes (incluidos los caracteres de sus menús). El código fuente está disponible para todos estos objetos y VisualWorks tiene una gran cantidad de inspectores, exploradores y otras herramientas para que cualquiera pueda evaluar e inspeccionar el código en modo estático o dinámico.
Tutoriales
Con frecuencia se producen tutoriales para Cincom Smalltalk y existe un tutorial de Seaside.
Referencias
- ^ "Ejecución de VisualWorks" (PDF) . Guía del desarrollador de aplicaciones de VisualWorks 7.6 . Cincom. págs. 1– 3 . Consultado el 25 de abril de 2009 .
Enlaces externos
- Sitio web oficial de Cincom
- Wiki de VisualWorks en UIUC archivada en archive.org