Squeak es una orientada a objetos , basado en clases , y reflexivo lenguaje de programación . Fue derivado de Smalltalk-80 por un grupo que incluía a algunos de los desarrolladores originales de Smalltalk-80, inicialmente en Apple Computer , luego en Walt Disney Imagineering , donde estaba destinado a ser utilizado en proyectos internos de Disney. Posteriormente, el grupo sería respaldado por HP Labs , SAP y, más recientemente, Y Combinator .
Paradigma | orientado a objetos |
---|---|
Diseñada por | Alan Kay , Dan Ingalls y Adele Goldberg |
Desarrolladores | La comunidad de Squeak |
Apareció por primera vez | 1996 |
Lanzamiento estable | 5.3 / 4 de marzo de 2020 [2] |
Disciplina de mecanografía | Dinámica |
Plataforma | Multiplataforma |
SO | Multiplataforma : similar a Unix , macOS , iOS , Windows , más |
Licencia | MIT , Apache |
Extensiones de nombre de archivo | .imagen, .cambios, .fuentes, .st |
Sitio web | www |
Implementaciones importantes | |
Chirrido, Croquet | |
Dialectos | |
Croquet , Newspeak (lenguaje de programación) , Pharo | |
Influenciado por | |
Smalltalk , Lisp , Logo ; Bloc de dibujo , Simula ; Uno mismo | |
Influenciado | |
Etoys , Tweak, Croquet , Scratch |
Squeak se ejecuta en una máquina virtual (VM), lo que permite un alto grado de portabilidad. El sistema Squeak incluye código para generar una nueva versión de la VM en la que se ejecuta, junto con un simulador de VM [3] escrito en Squeak.
Desarrolladores
Dan Ingalls , un colaborador importante del proyecto Squeak, escribió el artículo [4] sobre el que se basa Squeak y construyó la arquitectura para cinco generaciones del lenguaje Smalltalk.
Alan Kay es un colaborador importante del proyecto Squeak, y Squeak incorpora muchos elementos de su concepto propuesto de Dynabook .
Marcos de interfaz de usuario
Squeak incluye cuatro marcos de interfaz de usuario :
- Una implementación de Morphic , el marco de trabajo de interfaz gráfica de manipulación directa de Self . Esta es la interfaz principal de Squeak.
- Scripting de programación visual limitado basado en mosaicos en Etoys , basado en Morphic.
- Una nueva interfaz experimental llamada Tweak . En 2001, quedó claro que la arquitectura Etoy en Squeak había alcanzado sus límites en lo que podía hacer la infraestructura de interfaz mórfica. El investigador de Hewlett-Packard, Andreas Raab, propuso definir un "proceso de secuencia de comandos" y proporcionar un mecanismo de programación predeterminado que evita varios problemas más generales. [5] Esto resultó en una nueva interfaz de usuario, propuesta para reemplazar la interfaz de usuario de Squeak Morphic en el futuro. Modifique los mecanismos agregados de islas, mensajería asincrónica, jugadores y disfraces, extensiones de idioma, proyectos y secuencias de comandos de mosaicos. [6] Su sistema de objetos subyacente está basado en clases, pero para los usuarios, durante la programación (scripting), actúa como si estuviera basado en prototipos . Los objetos Tweak se crean y ejecutan en las ventanas del proyecto Tweak.
- Una interfaz modelo-vista-controlador (MVC) era la interfaz de usuario principal en las versiones 3.8 y anteriores de Squeak. Se deriva del marco de interfaz de usuario original Smalltalk-80 que introdujo y popularizó por primera vez el patrón arquitectónico MVC. [7] MVC toma su nombre de las tres clases principales del marco. Por lo tanto, el término "MVC" en el contexto de Squeak se refiere tanto a uno de los marcos de interfaz de usuario disponibles como al patrón que sigue el marco. MVC todavía se proporciona para programadores que deseaban utilizar este tipo de interfaz más antiguo.
Usos
Muchos colaboradores de Squeak colaboran en Open Cobalt , un navegador de mundo virtual gratuito y de código abierto y un kit de herramientas de construcción construido sobre Squeak.
La primera versión de Scratch se implementó en Squeak.
OpenQwaq , un sistema virtual de conferencias y colaboración, se basa en Squeak. [8]
Squeak también se usa en el sistema operativo Nintendo ES [9]
Licencia
Squeak 4.0 y versiones posteriores se pueden descargar sin costo, incluido el código fuente, como una imagen de máquina virtual prediseñada bajo la licencia MIT , con la excepción de parte del código original de Apple, que se rige por la licencia Apache .
Squeak fue lanzado originalmente por Apple bajo su propia licencia Squeak . Si bien el código fuente estaba disponible y se permitía la modificación, la Licencia Squeak contenía una cláusula de indemnización que impedía que calificara como verdadero software gratuito y de código abierto .
En 2006, Apple volvió a otorgar la licencia a Squeak dos veces. Primero, en mayo, Apple utilizó su propia licencia de fuente pública de Apple , que satisface el concepto de la Free Software Foundation de una licencia de software libre [10] y ha obtenido la aprobación oficial de la Open Source Initiative [11] como una licencia de fuente abierta. Sin embargo, la licencia de fuente pública de Apple no se ajusta a las pautas de software libre de Debian . Para permitir la inclusión de Etoys en el proyecto One Laptop Per Child , se llevó a cabo una segunda renovación de la licencia utilizando la Licencia Apache. En este punto, también se hizo un esfuerzo para abordar el problema del código aportado por los miembros de la comunidad Squeak, que no estaba en manos de Apple para volver a licenciar unilateralmente.
Por cada contribución realizada bajo la licencia Squeak desde 1996, se obtuvo una declaración de renovación de la licencia autorizando la distribución bajo la licencia MIT y, finalmente, en marzo de 2010, el resultado final se publicó como Squeak 4.0, ahora bajo licencias combinadas MIT y Apache. [12]
Squeak máquina virtual
La máquina virtual Squeak es una familia de máquinas virtuales (VM) que se utilizan en las implementaciones del lenguaje de programación Smalltalk . [3] Son una parte esencial de cualquier implementación de Smalltalk. Todos son software de código abierto . La VM actual es un sistema de traducción dinámica de alto rendimiento. El código relevante se mantiene en el repositorio OpenSmalltalk / opensmalltalk-vm en GitHub.
Otras máquinas virtuales de Squeak
- CogVM
- RoarVM
- SqueakJS [13]
- VM de intérprete de pila
- RSqueak / VM [14]
- TruffleSqueak [15]
Ver también
- Lista de lenguajes de programación de código abierto
- Alice (software)
- Proyecto Croquet
- Pharo
- Seaside (software)
Referencias
- ^ "Tim: Squeak Smalltalk" . Consultado el 28 de febrero de 2016 .
- ^ "5.3 Notas de la versión" .
- ^ a b Miranda, Eliot; Béra, Clément; González Boix, Elisa; Ingalls, Dan (2018). "Dos décadas de desarrollo de VM smalltalk: desarrollo de VM en vivo a través de herramientas de simulación" . Actas del X Taller Internacional ACM SIGPLAN sobre Máquinas Virtuales e Idiomas Intermedios (PDF) . Biblioteca digital ACM. págs. 57–66. doi : 10.1145 / 3281287.3281295 . ISBN 9781450360715. S2CID 53116661 . Consultado el 9 de noviembre de 2020 .
- ^ Ingalls, Dan; Kaehler, Ted; Maloney, John; Wallace, Scott; Kay, Alan (1997). "Regreso al futuro: la historia de Squeak, un Smalltalk práctico escrito en sí mismo" . Biblioteca digital ACM . Consultado el 12 de junio de 2011 .
- ^ "Tweak: OriginalTweakMemo" . Tweakproject.org. 2001-07-06. Archivado desde el original el 2 de octubre de 2011 . Consultado el 12 de junio de 2011 .
- ^ "Tweak: Whitepapers" . Tweakproject.org. Archivado desde el original el 2 de octubre de 2011 . Consultado el 12 de junio de 2011 .
- ^ Burbeck, Steve (4 de abril de 1997). "Cómo utilizar Model-View-Controller (MVC)" . St-www.cs.uiuc.edu. Archivado desde el original el 1 de agosto de 2009 . Consultado el 12 de junio de 2011 .
- ^ "Moviendo la colaboración inmersiva hacia adelante" .
- ^ "Dentro del sistema operativo de código abierto ES de Nintendo" . Gamasutra . 2007-12-04 . Consultado el 5 de diciembre de 2007 .
- ^ "Opinión de la FSF sobre la licencia de fuente pública de Apple (APSL) 2.0" . Gnu.org. 2011-05-07 . Consultado el 12 de junio de 2011 .
- ^ "Aclaración de la APSL: comunicados de prensa OS aclara el estado de la APSL" . Opensource.org. 1999-03-17 . Consultado el 12 de junio de 2011 .
- ^ "Squeak 4.0 lanzado - ahora bajo licencia MIT / Apache" . El H Open. 2010-03-16 . Consultado el 12 de junio de 2011 .
- ^ Freudenberg, Bert; Ingalls, Dan; Felgentreff, Tim; Pape, Tobías; Hirschfeld, Robert (2014). "SqueakJS: un smalltalk moderno y práctico que se ejecuta en cualquier navegador" . Biblioteca digital ACM. doi : 10.1145 / 2775052.2661100 . Consultado el 9 de noviembre de 2020 . Cite journal requiere
|journal=
( ayuda ) - ^ Friedrich Bolz, Carl; Kuhn, Adrian; Lienhard, Adrian; Matsakis, Nicholas; Nierstrasz, Oscar; Renggli, Lukas; Rigo, Armin; Verwaest, Toon (2008). "Regreso al futuro en una semana: implementación de una máquina virtual Smalltalk en PyPy" . Sistemas autosostenibles . Apuntes de conferencias en informática. 5146 . Springer, Berlín, Heidelberg. págs. 123-139. doi : 10.1007 / 978-3-540-89275-5_7 . ISBN 978-3-540-89274-8. Consultado el 9 de noviembre de 2020 .
- ^ Niephaus, Fabio; Felgentreff, Tim; Hirschfeld, Robert (2019). "GraalSqueak: hacia una plataforma de herramientas basada en smalltalk para la programación políglota" . Actas de la 16a Conferencia Internacional ACM SIGPLAN sobre lenguajes de programación gestionados y tiempos de ejecución - MPLR 2019 . Biblioteca digital ACM. págs. 14-26. doi : 10.1145 / 3357390.3361024 . ISBN 9781450369770. S2CID 204728643 . Consultado el 9 de noviembre de 2020 .
enlaces externos
- Página web oficial
- Chillido a Curlie