¿Qué es mejor, Smalltalk o Pharo?

Mejor respuesta

Larga historia.

TL; La versión DR es la siguiente desde mi punto de vista:

  • Uno puede leer los libros originales de Smalltalk y sacarles valor al usar Pharo, por lo que definitivamente hay una sólida herencia de Smalltalk.
  • En el frente de las herramientas, hay Hay varios avances en Pharo que lo hacen bastante único y diferente de Smalltalk 80. Por ejemplo:
  • GToolkit, con inspectores superpoderosos
  • Spotter, que permite una forma realmente interesante de acceder a elementos de el sistema, etc.
  • Especifique y Bloc para otras formas de hacer la interfaz de usuario que MVC y Morphic
  • Limpiezas y adiciones a los paquetes estándar de Squeak
  • Zinc, NeoJson, STON, … todos se originaron en la comunidad Pharo
  • Roassal2, para visualizaciones, también se originó en la comunidad Pharo
  • La VM, que ahora es una OpenSmalltalk / opensmalltalk-vm el esfuerzo con áreas específicas de Pharo es más rápido, w con un mejor JIT y otro conjunto de códigos de bytes. La gestión de memoria con reenvío de puntero hace que sea mucho más rápido. Verifique Ajuste del recolector de basura Pharo , verifique resumen de 7 puntos del administrador de memoria Spur , bueno, mira todo lo que hay en ese blog, simplemente genial.
  • Tenemos rasgos. Tenemos XStreams. Tenemos a Calypso. Tenemos Iceberg. Tenemos lo de los críticos. Tenemos el compilador Opal. Tenemos Rubrik para la edición de texto. Tenemos Ring como modelo de código. Podemos inspeccionar AST en busca de métodos. Tenemos Beacon para un marco de registro de objetos. Tenemos referencias débiles en funcionamiento. Tenemos UnifiedFFI. Tenemos 64 bits. Tenemos Combustible. Tenemos Seaside3. Tenemos CommandLineHandlers geniales. Tenemos escala para el trabajo de CLI. Tenemos Epicea para cambios de código. Tenemos una API de sistema de archivos rediseñada. Tenemos HelpSystem. Tenemos una infraestructura de trabajo con CI y Git y el seguimiento de problemas, etc., que funcionan bien juntos. Contamos con Pilar para producir libros. Tenemos TaskIT para un trabajo fácil con futuros. Tenemos un sistema de KeyMapping decente. Tenemos un Mórfico limpiado (aún más por hacer). Tenemos OSWindow. Contamos con Refactorizaciones y CodeRewriter. Tenemos MetaLinks con Reflectividad. Tenemos Atenas para gráficos. Tenemos soporte para IoT.

Entonces, sí, está inspirado en Smalltalk. Pero definitivamente no Smalltalk-80. Es Pharo. Usamos un faro como nuestro logo. Porque nos gusta cuando hay algo de luz brillante allanando el camino hacia la felicidad de los desarrolladores.

Smalltalk es genial.

Pharo es mejor cuando se trata de obtener resultados comerciales cuando se utiliza tecnología del siglo XXI. . Porque combinar las herramientas de Pharo entre sí conduce a resultados poderosos.

Y sí, tengo opiniones.

Respuesta

Pharo es un dialecto de Smalltalk. En su sintaxis, semántica e implementación, Pharo es una versión de Smalltalk-80, y un pariente muy cercano de los dialectos Squeak y Cuis. Los tres descienden directamente del Smalltalk-80 v1 que Xerox le dio a Apple como parte del proceso de escritura de “Smalltalk-80: el lenguaje y su implementación”, también conocido como “el libro azul”. Alan Kay dirigió un equipo en Apple en los años 90 que desarrolló el dialecto Squeak y la implementación a partir de Smalltalk-80 v1. Más tarde, Cuis y Pharo se bifurcaron de Squeak. Pero los tres han hecho la transición a mi Spur VM, una evolución del JIT VM que en 2008/9/10 derivé del intérprete VM original de Back-to-the-future para Squeak.

Estos tres dialectos El pariente más cercano entre sí es VisualWorks Smalltalk, que desciende directamente de Smalltalk-80 v2, la versión final desarrollada en Xerox PARC. Los cuatro se distinguen de otros Smalltalks por contextos de apoyo (registros de activación de primera clase de Smalltalk) a través de la pseudovariable thisContext. Un contexto es un registro de activación; es el objeto que mantiene el estado de un método en ejecución o cierre de bloque. Una diferencia superficial es que la familia Squeak admite tuplas (una construcción de matriz conveniente) y una declaración de caso, mientras que VisualWorks tiene un sistema de espacio de nombres y una forma literal BindingReference para acceder a objetos a través de los límites del espacio de nombres.

Una cosa única acerca de Smalltalk y sus parientes cercanos Self y Newspeak es que los sistemas se autodefinen; clases, métodos y contextos son todos objetos de primera clase definidos en términos de clases y métodos. Esto se extiende a su compilador y depurador, el sistema de excepciones, etc. Esto permite que Smalltalk evolucione a nivel de lenguaje. Las tuplas, la declaración del caso y los espacios de nombres se implementaron en sus respectivos sistemas sin tener que modificar ninguna máquina virtual subyacente. Esta capacidad de evolucionar hace que definir exactamente qué Smalltalk sea algo problemático. Un Smalltalk sano es un Smalltalk en evolución; un objetivo en movimiento.

Algunos, quizás muchos, en la comunidad de Pharo piensan que Smalltalk obtuvo un mal nombre en los 90, y algunos están descontentos por la falta de soporte para los desarrolladores y se centran en Etoys que tenía el equipo de investigación de Alan Kay, comprensiblemente ya que de hecho Etoys era el foco del equipo. En consecuencia, Pharo tiene un énfasis muy diferente y quiere progresar desde el ahora envejecido soporte multimedia de Squeak hacia una mejor integración con el ecosistema informático actual, como github, y hacia la reinvención de la programación como un proceso exploratorio mucho más dinámico; vea, por ejemplo, el trabajo de visualización ágil sobre Rossal y el kit de herramientas GT. Por lo tanto, algunos en la comunidad Pharo quieren negar que Pharo es un dialecto de Smalltalk. Esta es una posición que entiendo pero encuentro falsa en la realidad (sin lugar a dudas, en su sintaxis, semántica e implementación Pharo / is / una versión de Smalltalk-80) y algo irrespetuosa e ingrata (Pharo es un gran entorno de programación, tanto porque tiene grandes personas que hacen un gran trabajo en él y pueden hacerlo porque es un Smalltalk). Pero no importa. Pharo destaca por sus méritos, un poderoso dialecto de Smalltalk en rápida evolución que ofrece beneficios radicales de productividad a los programadores. Espero que le eches más que un vistazo superficial. Está yendo a lugares.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *