S8
S8, es una implementación de Smalltalk multiplataforma de diseño moderno.
S8 Smalltalk | ||
---|---|---|
Información general | ||
Tipo de programa | software | |
Autor | Alejandro Reimondo | |
Desarrollador | Asociación Smalltalking | |
Modelo de desarrollo | Open Source | |
Lanzamiento inicial | 6 de marzo de 2012 (12 años, 8 meses y 24 días) | |
Licencia | Licencia MIT | |
Información técnica | ||
Programado en | Smalltalk | |
Enlaces | ||
No requiere de una máquina virtual Smalltalk para ejecutar; los objetos comparten el espacio de ejecución provistos por otros lenguajes (Javascript, Lua, Julia, Python).
El código Smalltalk es traducido dinámicamente al lenguaje de ejecución, pudiendo así cambiar el sistema mientras ejecuta, incluso en lugares no planeados con anterioridad y/o de forma modular.
La misma forma de trabajo se utiliza en todos los lugares dónde ejecuta, permitiendo un intercambio de código y contenidos dinámicamente, incluso entre sistemas remotos.
El sistema puede generar una captura (Snapshot) el cual es un texto que puede ser guardado en un archivo, enviado remotamente para ejecutar o nutrir parcialmente otro sistema S8.
Todas las características de Smalltalk (dinamismo, reflexión, metaprogramación, etc) se conservan y amplían para explotar las capacidades de ejecución conjunta con otros modelos de programación (inlining, builders y framework de salto son algunas de las características únicas de S8 Smalltalk).
Los sistemas S8 no requieren de interfaz gráfica, generalmente son desarrollados por interacción remota (desde navegador o entre sistemas S8).
Los objetos S8 pueden usar las estructuras nativas provistas en el ámbito de ejecución y viceversa.
Su plataforma de desarrollo web comunitaria es denominada U8 (Universo 8).
Características
editarS8 es producto de la búsqueda de un cambio en la forma de utilizar Smalltalk basado en un esquema de producción de desarrollo social de software, superando los límites impuestos por el diseño original de Smalltalk80. Cuenta con las capacidades típicas y herramientas básicas de un sistema Smalltalk. Se encuentra entre los sistemas que se pueden ejecutar prácticamente en casi todas las plataformas de hardware que soportan Javascript, Lua, Julia o Python.
Las herramientas de desarrollo funcionan remotamente y sirven para modificar el comportamiento del sistema con un tamaño mínimo y sin requerir interfaz gráfica.[1]
Los sistemas implementados con S8 Smalltalk pueden ejecutar en páginas de internet, servidores (nodejs y otros), teléfonos y tabletas (android e IOS) sobre Javascript, Lua (desktop, IOS, Android), Julia (desktop) y Python (desktop, Android, IOS).
Los sistemas S8 pueden ejecutar en dispositivos Raspberry Pi sin requerir instalación de software adicional.
Formas de uso
editarS8 es utilizado para transformar/migrar sistemas escritos en Smalltalk, a otras plataformas de ejecución; permitiendo el desarrollo de soluciones en arquitecturas modernas sin esperar una nueva Máquina Virtual Smalltalk.
El salto de los objetos a un nuevo ámbito de ejecución (nuevos lenguajes de ejecución) se realiza por medio de un framework abierto.
En todos los casos se puede activar un servidor en el sistema para ser controlado y desarrollado remotamente desde un navegador de Internet.
En los casos de ejecución con Julia y Python, el sistema tiene acceso e interactúa directamente con cualquier objeto y/o librería permitiendo una ejecución eficiente y cómoda en manejo de altos volúmenes de imágenes, audio, visión por computador e IA.
Servidor
editarUtilizando Node.js se puede desarrollar servidores web, basándose en la contribución NodeJS Framework.
En los casos de ejecución sobre Lua, Julia, Python los servidores usan los frameworks de cada plataforma con acceso directo.
Plataformas Móviles
editarEl desarrollo para Android e IOS produce aplicaciones nativas (requiere de Android Studio y XCode).
En los casos de desarrollo Android con Javascript, la aplicación incluye NodeJS y una capa de interacción directa con los objetos Java, pudiendo usar e implementar la aplicación nativa en S8 Smalltalk.
En los casos de desarrollo Android con Lua, la aplicación no incluye NodeJS pero si las mismas características de interacción con Java.
En los casos de desarrollo IOS, la interacción con ObjetiveC; permite subclasificar, refinar e implementar lo necesario a nivel nativo en S8 Smalltalk.
Web
editarLas herramientas de desarrollo están contenidas en una página web (image base para web), y en U8 se permite grabar el image como contribuciones comunitarias.
Consola
editarEn todas las alternativas de ejecución existe un ejecutable para desarrollo de sistemas con interfaz de consola.[2]
Para Javascript se puede utilizar directamente la versión en consola.
Interfaz gráfica
editarActualmente la GUI ofrecida por el servicio U8 es generada dinámicamente y se accede como WI8. En su modalidad base consta con herramientas de desarrollo.
El desarrollo de sistemas embebidos en páginas Web se hace de manera modular basada en los frameworks Web de base.
La carga de interfaz de usuario y paquetes puede realizarse de forma modular y bajo demanda, por lo que un sistema puede tener un tamaño mínimo y ser generado (Snapshot) con el contenido suficiente para arrancar; sin fuentes, sin herramientas de desarrollo, incluso sin compilador (si es requerido).
Organización
editar- U8 es un servicio para el desarrollo social basado usando Smalltalk.
- Grupo de Smalltalking es un grupo social para debatir sobre S8 y realizar consultas.
Referencias
editar- ↑ u8.smalltalking.net http://u8.smalltalking.net/profile/aleReimondo/239/
|url=
sin título (ayuda). Consultado el 17 de mayo de 2024. - ↑ «u8.smalltalking.net - /profile/aleReimondo/Console/». u8.smalltalking.net. Consultado el 17 de mayo de 2024.
Enlaces externos
editar- Anuncio de salida a producción del primer release
- Smalltalking
- U8 - Universo S8
- Grupo de interacción social
- Repositorio de librerias de usuarios de U8
- Repositorio de librerias de usuario aleReimondo
- Swiki U8 - Espacio colaborativo de U8
- Swiki U8 - Espacio de medios y testing