Los desarrolladores ahora pueden ejecutar Pharo, un entorno basado en Smalltalk conocido por su iteración rápida e inmediata, directamente dentro de un navegador web utilizando WebAssembly. Este desarrollo permite a los usuarios explorar resultados emergentes y construcciones artísticas de una manera portátil, aunque introduce desafíos específicos sobre cómo el navegador maneja la entrada del ratón y el escalado del lienzo.
Pharo en el Navegador
La fuente principal presenta un proyecto que permite que Pharo se ejecute en un navegador web a través de WebAssembly. Pharo es un entorno Smalltalk donde los desarrolladores suelen valorar la capacidad de ver resultados intermedios o no deseados durante la construcción de un proyecto, como un clon de Minesweeper.
Se cree que el mecanismo técnico es un intérprete de bytecode compilado con Emscripten. Debido a que WebAssembly tiene un modelo de ejecución limitado, actualmente no hay intentos de JIT o de precompilar el código de la imagen, lo cual es una limitación notable para un lenguaje dinámico como Smalltalk.
Experiencia del Usuario y Fricción Técnica
Los comentaristas en Hacker News han identificado errores técnicos específicos en la implementación actual. Por ejemplo, un usuario informó que el entorno se renderiza incorrectamente en Firefox, con clics del ratón que no se alinean con el lienzo cuando el navegador está en zoom.
Otro comentarista señaló que la experiencia puede sentirse 'chapucera' debido a la fricción entre el software y el hardware. Argumentaron que ejecutar un entorno completo en un navegador requiere recursos y controladores significativos para alinear la experiencia con un sistema operativo nativo.
Compensaciones y Limitaciones
Si bien la versión para navegador aumenta la accesibilidad, algunos participantes en la discusión cuestionaron si este movimiento anula el propósito central de usar Pharo. La compensación implica ganar portabilidad a costa del rendimiento fluido que se encuentra en un entorno nativo.
Siguen sin resolverse preguntas sobre cómo construir el código y cómo superar las limitaciones del modelo de ejecución de WebAssembly para las características dinámicas de Smalltalk. Los usuarios actuales han sugerido ajustes de CSS, como eliminar escalas de transformación específicas, como soluciones temporales para los problemas de renderizado.
