AMIGALANDIA

AMIGALANDIA --- Blog Retrospectivo Amiga/MorphOS

sábado, 21 de noviembre de 2015

Magic User Interface (MUI): La Interfaz del Amiga en la actualidad

Fuente: http://www.hugi.scene.org/online/hugi37/hugi%2037%20-%20demoscene%20forum%20kas1e%20gui%20on%20amiga%20today.htm

Por kas1e, 02.02.2012


Hoy día, "Amiga" es algo distinto de lo que era en tiempos de Commodore. Algunas variantes nuevas de este SO continúan con las ideas del estupendo y antiguo AmigaOS (AmigaOS4, MorphOS y AROS) sobre hardware PPC e incluso X86. Todos tratan de acercarse a estándares modernos en diferentes áreas, pero sin alejarse del API de AOS3.x. Obviamente no se pueden comparar con WinXP/7 por ejemplo, ni siquiera con MacOS debido a la cantidad de software disponible, y a elementos como la conocida protección de memoria, trazabilidad de recursos etc.., pero se mantienen en la brecha como pueden :)


La división en diferentes "batallones" añade más problemas para los programadores de Amiga: tienen que escoger entre sistemas operativos que son casi idénticos, pero diferentes, con el mismo API de AmigaOS3, pero con distintas herramientas de interfaces gráficas de usuario (GUIs) y otras divergencias aquí y allá. Y mientras que los programadores de SO trabajan sólo con el sistema de su elección, los programadores de terceras partes buscan generalmente que sus programas funcionen en todos los sistemas operativos compatibles Amiga. Hay algunas facilidades para conseguir dicho objetivo, siendo incluso posible crear programas desde plataformas cruzadas, no únicamente para Amiga, empleando librerías SDL, Allegro, OpenGL y demás. Pero visto así se pierden las características excepcionales de los SO Amiga, con todas sus peculiaridades distintivas con otros SO, como datatypes, herramientas para interfaces exclusivas, modos de funcionamiento con el API nativo de AOS3, etc. Existe una herramienta para GUIs que resulta genuina, específica de AmigaOS, pero aún disponible en todos los sistemas operativos estilo AmigaOS, y no es otra que MUI.


Últimamente he estado involucrado en la conversión del navegador basado en Webkit, de MorphOS a AmigaOS4 obra de Fabien Coeurjoly denominado Odyssey, cuya interfaz está basada en MUI4. Hasta hace nada únicamente contábamos con MUI3.9, y por ese motivo me compliqué la existencia con todos los problemas y diferencias presentes entre los distintos sistemas Amiga y sus herramientas para el desarrollo de GUIs. Pienso que para algunos puede resultar interesante conocer cómo es la estructura de todo esto y cómo se encuentra todo en la actualidad.


¡Y qué es MUI? MUI (magic user interface) es un juego de desarrollo que te brinda la posibilidad de desarrollar programas con Interfaz gráfica más fácilmente. Un juego de librerías y clases que simplifican la vida a los programadores. Las primeras versiones de MUI nacieron allá por 1992, y desde luego, como toda versión primeriza de cualquier software no contaba con demasiadas funciones, opciones ni con tantas clases (eso sin contar con las clases de terceros).


Como todo software original de Amiga, MUI contiene una serie de autodocs (documentación al estilo Amiga) en la cual se puede consultar el funcionamiento de su API, sus reacciones, lo que es capaz de ofrecer y todos los elementos habituales. MUI incorpora una guía estupenda denominada "MUI programming tutorial", algo desfasada puesto que fue redactada em tiempos de AmigaOS3 y cubre sobre todo aspectos de MUI3. Hoy en día, uno de los mejores tutoriales MUI que incluye todas las características nuevas de MUI es el que realizó el programador de MorphOS (puesto que sólo hasta hce muy poco MUI4 era exclusivo de MorphOS) Grzegorz "Krashan" Kraszewski. Puede leerlo en este enlace: Magic User Interface Programming


En origen el programador principal de MUI fue Stefan Stuntz, siendo MUI3.8 la versión más popular, ya que fue la última publicada para AmigaOS3, habiendo pasado varios años hasta que AmigaOS4 y MorphOS consiguieron el nivel actual de MUI con sus cambios. Por esto, usuarios y programadores que siguen utilizando AmigaOS3 piensan que MUI para todas las plataformas seguirá ceñido a la versión 3.8. Actualmente, y tras 15 años, la versión antigua de MUI tiene un aspecto retro sensacional pero "desfasado" - basta con observar estas imágenes y comparar MUI3 para AmigaOS3 con MUI4 para MorphOS:





Hasta el año 2000 todo en relación a MUI estaba bien claro. Su desarrollo progresaba peldaño a peldaño. Eran años estos en que los usuarios de Amiga tenían la esperanza de tener un AmigaOS nuevo (había unas cuantas promesas pero poca claridad), mientras que MorphOS iba creciendo y no parecía estar demasiado claro qué sistema optaría por soportar el creador de MUI: ¿continuar con AmigaOS, o pasarse a MorphOS?. A causa de todo esto, AmigaOS4 no ha contado con MUI4 hasta la actualidad - la última versión para AmigaOS4 es MUI3.9 (las diferencias entre este y MUI3.8, disponible para AmigaOS3, únicamente atañen a la corrección de algunos errores, y mínimos cambios en su diseño, siendo casi idéntico que MUI3).Pero llega un momento en que nuevas versiones de MUI4 aterrizan en MorphOS, y sólo hasta hace poco MorphOS era el único sistema Amiga para el cual ha estado disponible esta última versión de MUI (MUI4). Por algún motivo la versión AOS4 de MUI4 no se actualizaba de forma contínua como sucedía con la versión MorphOS, estando el desarrollador de AOS4 encargado de actualizaciones MUI (Thore Bockelmann) obligado a re-implementar gran cantidad de elementos desde cero (como títulos de listas dinámicas, títulos de grupos, manejo de fuentes, clases nuevas como process, lamp, title, rawimage y otras) para conseguir que MUI para OS4 tenga las mismas características que la versión MorphOS. No fue una tarea nada sencilla, puesto que hubo de reimplementar todo partiendo de los includes, autodocs y realizando pruebas.


Hoy MUI para AmigaOS4 cuenta con todas las características de MUI4 para MorphOS: gradientes en color real, diferentes temas e imágenes, mapas de bits sofisticados, títulos de listas (como en NList), y todas esas atractivas funciones que hacen a MUI4 tan excelente en Amiga. En la actualidad realizo pruebas de MUI beta para AmigaOS4, y por diversión he recreado el tema gráfico por defecto de MorphOS denominado "Ferox", observe las imágenes, con MUI4 MorphOS con el tema Ferox, y otra de MUI4 en AmigaOS4, con idéntico tema, que no se puede emplear por defecto en AmigaOS4 (puesto que sólo cuenta con derechos de copia para MorphOS):





Seguramente se pueden apreciar las diferencias en el diseño, pero el fin de estos pantallazos es demostrar que MUI en AmigaOS4 cuenta ahora con las mismas ocpiones que MUI4 en MorphOS. Así, que al menos ahora contamos con dos sistemas operativos AmigaOS modernos que disfrutan de MUI cargado con todas sus últimas actualizaciones. ¿Y qué decir del tercero (AROS)?. No he mencionado AROS hasta el momento por el hecho de que MUI para AROS no es el mismo MUI que el creado por Stunzi. AROS cuenta con una implementación MUI de código abierto llamada ZUNE, pero lo triste es que ZUNE carece en ciertas áreas de funcionalidades, así que mejor no hablar de MUI4. Pero si omitimos algunos fallos y limitaciones, funciona, y los usuarios de AROS están acostumbrados:





Estas limitaciones o errores de ZUNE, comparadas con MUI4 para MorphOS y AmigaOS4, no tienen el mismo efecto de que algo no funcione. Algunas versiones de OWB (navegador basado en Webkit también) funcionan, así como clientes IRC, editores de imágenes (como Lunapaint), distintas clases MUI, etc. La gran ventaja de ZUNE es que su código es abierto, y esto implica que no existen problemas de legalidad ni derechos, todo se trabaja desde cero y los programadores lo hacen a su manera, y cuando quieren. Hasta ahora ZUNE no estaba siendo demasiado desarrollado, sólo pequeñas correcciones, hasta que uno de los programadores de AROS (Neil) decidió marcarse la meta de situar ZUNE al nivel de MUI3.8 en primer lugar (para ser idéntico 1:1, sin diferencia alguna), para posteriormente alcanzar el nivel de MUI4.


Así que puede que se pregunte cuales son las conclusiones finales...


- MUI4 está disponible para MorphOS y AmigaOS4 - en ambos SO el desarrollo de MUI no se detiene y está llegando a un nivel interesante.


- ZUNE para AROS - implementación en código abierto de MUI3.8


- MUI3.x para AmigaOS3.x - esto es para los fans de lo clásico, porque la evolución de MUI3 no es otra que MUI4. Pero la verdad sea dicha, las clases nuevas que aparecen para MUI, son aptas para todos los Sistemas Operativos, incluido MUI3.8.


¿Quiere decir esto que si un programador desea crear un programa con GUI para convertirlo a todas las plataformas Amiga OS, es MUI la única opción? La respuesta es sí. Hablamos claro está de GUIs nativos Amiga, porque como hemos comentado anteriormente, también se pueden utilizar SDL, OpenGL y demás.


Durante mucho tiempo los programadores principales de AmigaOS4 (Hyperion) intentaron convencer a todos de que Reaction es el futuro de AmigaOS (juego de desarrollo de GUIs oficial de AmigaOS4), pero el tiempo y la práctica han demostrado que MUI es la única herramienta plena de funcionalidad que puede ser utilizada en todos los SO. Sí, siendo francos hemos de apuntar que Reaction se sigue desarrollando y podría alcanzar el nivel de MUI, pero aquí hablamos de una solución cruzada multiplataforma entre sistemas operativos Amiga. Reaction en este sentido no es de gran ayuda, puesto que únicamente está presente en AmigaOS4.


Como siempre, está en manos de los programadores decidir, pero si queremos ofrecer soporte para todos los sistemas operativos Amiga, MUI es la única opción.


kas1e