Amber Smalltalk , anteriormente llamado Jtalk, es una implementación del lenguaje Smalltalk -80 que se ejecuta en el tiempo de ejecución de JavaScript de un navegador web . Está diseñado para permitir el desarrollo del lado del cliente utilizando el lenguaje de programación Smalltalk. [2] El entorno de programación en Amber se llama Helios. [3]
Autor (es) original (es) | Nicolas Petton |
---|---|
Desarrollador (es) | Comunidad ámbar |
Versión inicial | 13 de septiembre de 2011 |
Lanzamiento estable | 0.30.0 / 23 de febrero de 2021 [1] |
Repositorio | lolg |
Escrito en | Smalltalk , JavaScript |
Sistema operativo | Multiplataforma |
Plataforma | navegador web |
Disponible en | inglés |
Tipo | Lenguaje de programación orientado a objetos, IDE |
Licencia | MIT |
Sitio web | www |
Caracteristicas clave
Amber incluye un entorno de desarrollo integrado (IDE) con un explorador de clases , espacio de trabajo, transcripción, inspector de objetos y depurador . Amber está escrito en sí mismo (es autohospedado ), incluido el compilador , y se compila en JavaScript, mapeando uno a uno con el equivalente de JavaScript. [4] Este mapeo uno a uno con JavaScript diferencia a Amber de otras variantes de Smalltalk como Pharo , Seaside y Squeak . [2] El desarrollo del proyecto Amber requiere que Node.js ejecute las herramientas; el proyecto implementado solo necesita un navegador para ejecutarse. Amber no se ejecuta lentamente en una máquina virtual de código de bytes debido a su conveniente asignación a JavaScript, que hace que el código compilado se ejecute rápidamente.
Historia
Amber fue creado originalmente por Nicolas Petton en 2011. [5] Amber fue influenciado por un proyecto anterior de Smalltalk en el navegador, llamado Clamato , creado por Avi Bryant. [5] [6] Amber y Clamato utilizan bibliotecas de gramática de expresión de análisis sintáctico (PEG) para analizar el código fuente de Smalltalk . Amber utiliza la biblioteca PEG.js basada en JavaScript [7] [8] escrita por David Majda. Clamato usa PetitParser, una biblioteca basada en Smalltalk escrita por Lukas Renggli. [5] Clamato y Amber fueron influenciados por trabajos anteriores de Dan Ingalls en el desarrollo de la implementación de Lively Kernel de Morphic para ejecutarse en navegadores web a través de JavaScript. [5] [9]
A partir de la versión 0.12.0, los módulos Amber se compilan según la definición de módulo asíncrono (AMD). [10] A partir de la versión 0.12.6, la herramienta de interfaz de línea de comandos (CLI) del asistente de desarrollo se extrae en un módulo dedicado, que se puede instalar desde npm como @ambers/cli
; y la configuración del proyecto y su ecosistema de JavaScript (npm, gruñido) se simplifica enormemente con esta herramienta CLI al emitir amber init
y responder algunas preguntas. [11] Desde agosto de 2018, el andamiaje del proyecto de "amber init" se simplifica, ya no se usa bower y solo se basa en npm y todo el proyecto reside bajo la organización npm @ambers
. Esto facilita la configuración de Amber Smalltalk para las personas con poca experiencia en JavaScript. [12]
Instalando
Las instrucciones actualizadas deben estar en https://lolg.it/amber/amber .
Para instalar Amber, primero debe instalar Git , si aún no lo está. Los siguientes comandos instalarán Amber: [3]
# para macOS y Linux, se necesitan los siguientes dos comandos:
npm config set prefix = ~ / npm export PATH = " $ PATH : $ HOME / npm / bin" # agregar a .bash_profile o .bashrcnpm install -g grunt-cli grunt-init @ ambers / cli
Para crear un nuevo proyecto, escriba:
# Crea el directorio del proyecto vacíoproyecto de ejemplo mkdircd ejemplo-proyecto# Crear e inicializar un nuevo proyecto Amberámbar init
El paso "amber init" dará lugar a algunas preguntas sobre el proyecto. Para la mayoría de ellos, se puede establecer una respuesta predeterminada. El siguiente paso es iniciar el servidor:
servir ámbar
Después de eso, escribiendo http://localhost:4000
en el navegador llegará a la aplicación. La mayoría de los navegadores bloquearán las ventanas emergentes de Helios IDE de forma predeterminada, por lo que es posible que sea necesario cambiar la configuración del navegador para permitir que aparezca la ventana emergente de Helios IDE.
Integrar bibliotecas de JavaScript externas
El software Npm se puede utilizar para acceder a una amplia gama de bibliotecas de JavaScript. Una biblioteca se puede integrar siguiendo solo cuatro pasos: [3]
- Instale la biblioteca usando npm.
- Si los archivos 'local.amd.json' no existen para el paquete npm, cree un archivo 'libname.amd.json' en la raíz del proyecto.
- Ejecute 'grunt devel' (o 'grunt deploy' si está listo para implementar una aplicación).
- Agregue 'libname' al #imports: del paquete de la aplicación.
Despliegue
Al ejecutarlo grunt deploy
, el proyecto Amber se empaqueta usando RequireJS en solo unos pocos archivos, como mínimo solo index.html
y the.js
. Puede alojarlos de forma estática como cualquier otra página web estática.
Ver también
- Pharo
- Seaside (software)
- Chirrido
Referencias
- ^ "Versión de lanzamiento 0.30.0" . lolg.it . Consultado el 25 de marzo de 2021 .
- ^ a b Implementaciones de Smalltalk (breves resúmenes comparativos que describen los dialectos de Smalltalk)
- ^ a b c Eng, Richard (9 de junio de 2015). "Una suave introducción a Amber: participar en Smalltalk con ella, se lee como en inglés, ¡y sigue siendo sucinto!" ¡Está vivo! ¡Está vivo! ", Helios que todo lo ve, probando D3" . Medio . Consultado el 7 de febrero de 2016 .
- ^ Petton, Nicolas. "Amber Smalltalk" . amber-lang.net . Consultado el 30 de enero de 2016 .
- ^ a b c d Schuster, Werner (22 de agosto de 2011). "Smalltalk IDE vienen al navegador: Jtalk, tODE, Lively Kernel 2.0" . Consultado el 20 de octubre de 2011 .
- ^ "Clamato" . (Sitio web del proyecto Clamato Smalltalk)
- ^ Majda, David (2010-2016). "PEG.js: Generador de analizadores para JavaScript" . PEG.js.org . David Majda . Consultado el 13 de noviembre de 2016 .
- ^ Petton, Nicolas (13 de septiembre de 2011). "Adiós Jtalk ... ¡Hola Amber!" . Grupos de Google . Google, Inc . Consultado el 13 de noviembre de 2016 .
... ahora estamos haciendo un primer lanzamiento humildemente numerado 0.9. ¡También estamos aprovechando la oportunidad para elegir un nombre más elegante para Jtalk: Amber!
- ^ Shuster, Werner (22 de junio de 2010). "Dan Ingalls sobre la historia de Smalltalk y el núcleo animado" . Consultado el 26 de octubre de 2011 .
- ^ "ámbar-smalltalk / ámbar" . GitHub . Consultado el 30 de enero de 2016 .
- ^ "ámbar-smalltalk / ámbar" . GitHub . Consultado el 30 de enero de 2016 .
- ^ Petton, Nicolas. "Instalación de Amber" . docs.amber-lang.net . Consultado el 30 de enero de 2016 .
enlaces externos
- Página web oficial
- Jtalk, el Smalltalk para desarrolladores web Nicolas Petton, diapositivas presentadas en ESUG 2011 (European Smalltalk User Group Conference). Edimburgo, Escocia, Reino Unido. (Agosto de 2011)