Желание написать подобную статью возникло в свете того, что в последнее время я оказался вовлеченным в портирование WebKit-based браузера с морфос на amigaos4
сделанного Fabien Coeurjoly зовущегося Odyssey (ранее OWB), GUI котого, основано на MUI4. Однако до недавнего времени, amigaos4 имело только mui3.9, и по этому пришлось окунаться
во все проблемы и дебри связанные с разницами между различными версиями муи на разных amiga и amiga like осях, их изменениях и текущих состояниях, реализованных и не
реализованных фичах и тд, что в общем по итогу я решил структуризовать и оформить все как статью, что в свою очередь может быть интересным и другим амига-юзерам, и
просто интересующимся современными амига-осями.
MuiOWB on amigaos4 with MUI3.9
Касаться будем в основном AmigaOS4 и MorphOS, т.к. только на этих осях муи развивается, и обе выросли из оригинальных сорцов. Старых версий MUI для amigaos3 (сегодня
устаревших), и также Zune под AROS (эмуляция старой MUI3.8 под AROS) каснемся лишь для полноты картины.
Итак, что такое MUI ? MUI (magic user interface) это просто toolkit, облегчающий написание GUI интерефейсов. Т.е. это просто набор библиотек и классов, которые
упрощают программистам жизнь при создании GUI для их программ. Первые версии MUI появились еще в 1992 году , и естественно как первые версии, MUI была небольшой, с
небольшим числом возможностей и вообще без каких либо классов (не говоря конечно о том, что никто никаких сторонних классов еще и не писал).
Для русскоязычных амижников, MUI во времена AmigaOS3, являлась основным GUI тулкитом при разработки интерфейсов и было аписано достаточно много туториалов, среди
которых можно вспомнить и почитать онлайн:
1. Статьи из журнала "Новая Амига" Андрея Чернышова (1998-1999):
Программирование в AmigaOS Часть 2Программирование в AmigaOS Часть 3
2. Туториал написанный RDC в 1999:
Программирование под AmigaOS и MUI для начинающих
Разумеется речь в них идет о mui3.8 и старых версиях amigaos, все новые туториалы о MUI и новых возможностях новых версий доступны
лишь на анлгийском, такие например как Magic User Interface Programming написанные Grzegorz Kraszewski
Изначально MUI была написана неким Stefan Stuntz, и самой популярной версией была версия 3.8, просто потому , что это была
последняя версия вышедшая для AmigaOS3, и прошло некоторое количество лет прежде чем AmigaOs4 и MorphOS достигли своего уровня с новыми MUI. Поэтому те, кто все еще
юзали amigaos3, в течении продолжительного времени осозновали что MUI всегда останется на отметке 3.8. Сегодня конечно (спустя 15 лет) старые версии MUI выглядит очень
retro и мягко говоря "outdated", достаточно посмотреть на скриншоты и сравнить с mui4 на морфос.
До 2000 с MUI все было ясно и понятно. Развитие шло своим чередом, но эти годы опять же былы годами когда amiga пользователи ожидали новую AmigaOS и MorphOS давала
о себе знать, поэтому было не ясно как быть, поддерживать все еще AmigaOS, или же переключаться на Morphos. Начались проблемы с торговыми марками и всем остальным,
все хотели себе полные права, и тд и тп, в общем так или иначе, все пришло к тому, что на amigaos4 до последнего момента было доступно только mui3.9 (отличие между
3.8 и 3.9 было в целом в убирании кучи багов, неком лучшом дизайне и тд и тп, но все тот же mui3). А на Morphos начали появлятся первые версии MUI4, и до последнего
времени Morphos была единственной amiga-like ОС, где было MUI4. Однако так или иначе автор решил поддержать обе оси, и отдал первые-начальные mui4 сорцы (над которым
работал только он, пока морфос девелоперы не стали помогать и апдейтить) ос4 девелоперам, в которых многое то, что уже сейчас есть в mui4, не реализовано, и для aos4
mui девелоперов пришлось писать все с нуля, исходя из тестов-скриншотов-автодок с mui4 на morphos.
Так или иначе, когда мы стали работать над портом MUIOWB на AmigaOS4, некий немец с ником Tboeckel (Thore Bockelmann), автор некоторых муи программ (таких как YAM)
и со-автор многих mui классов (таких как better-string, textinput, Nlist и тд) уже работал над обновлением mui3.9 в разных аспектах, и так совпало, что при портировании
muiowb, он начал добавлять все больше и больше фич и кода, приводя mui3.9 в mui4 все больше и больше. Началось все с добавления простых конструкций, и убирания
некоторых мелких багов и на момент написания этой статьи, мы уже обсуждали стоит ли называть нашу муи теперь mui4, или еще рано. Сегодня beta-версия mui3.9 имеет все
те фичи и возможности что имеет текущая mui4 на морфос, за исключением некоторых моментов которые в процессе добавления. Теперь в mui39 и поддержка truecolor градиентов,
и любых схем и image-setов, и fancy-bitmaps (дающие возможность изменять любые элементы как угодно), и поддержка List titles (как в Nlist), и все приятные возможности
любых настроек и управления GUI, чем так известен MUI4. В текущие дни я как раз занимаюсь тем что воспроизвожу дефолтную Ferox схему с mui4 на морфос, и для сравнения 2
скриншота: 1 с морфоc/mui4 и 1 с amigaos4/3.9 (хотя лучше уже сказать amigaos4/mui4.0alpha)
Конечно видны некие отличия (пока что не 1:1) , но суть скриншотов это показать, что на amigaos4 теперь mui имеет теже возможности как и на morphos.
И как бы обособленно стоит AROS версия MUI, называющаяся ZUNE, и которая написана с нуля, дабы повторить MUI3.
Единственный плюс ZUNE, это открытый код, т.е. любой может фиксить баги и добовлять новые возможности, однако по результату Zune достигла некого уровня при котором
можно писать mui3 проги и особо не развивается. Багов слишком много, эмуляция mui3 не полноценная, и большинство функций просто не реализованы, не говоря уже о том
чтобы иметь чтото от mui4. Хотя справедливости ради стоит добавить, чтол на AROS портирован Mui-Mplayer с Morphos, который использует некоторые mui4-онли фичи, которые
ради mplayer порта и были добавлены в Zune. Сейчас многие пытаются сделать Zune такой же как MUI4, но пока никто так и не начал работу над этим. На основном aros странице
можно посмотреть текущую ситуацию с zune, а на power2people сайте можно посмотреть недавно созданное bounty, дабы кто-то начал работать над улучшением zune.
Итак, что же мы имеем по итогу ?
- mui4 для morphos и amigaos4 - 2 оси где разработка муи двигается, и достигла опредленного и современного уровн
- zune для aros - opensource тулкит который пытается эмулировать mui3.8, но еще нет (не говоря о mui4)
- mui3.x для старых версий amigaos - это уже для retro любителей, т.к. развитие mui3.x это mui4. Однако, новые муи классы часто все еще поддержкивают mui3.8.
Можно ли сказать, что если сегодня программер хочет написать какуюто тулзу, с гуи которую он сможет портировать на любую амига и амига-лайк ось без изменений в гуи
коде, то mui это единственный вариант ? Я думаю да. Конечно если речь идет о нативном амижном гуи. Т.к. все также можно юзать SDL, OpenGL и гуи тулкиты основанные
на них.
Долгое время основные разработчики AmigaOS4, Hyperion, пыталось проводить политику, о том что mui это плохо, и что Reaction это будущее (официальный тулкит в amigaos4),
но практика и время показало, то MUI был, и остается единственным полно-фичным gui тулкитом, и все hyperion'овские выпады против МУИ был лишь потому, что автор никак
не мог договорить о том в каком виде включать mui в amigaos4 дистрибутив (и даже сейчас, по умолчанию mui на amigaos4 не зарегестрировано). Справедливости ради стоит
добавить, что Reaction постоянно дополняетс и изменяетс, и почти что достиг уровня mui.
В общем по итогу, amigaos4 пользователи только выигрывают от этого всего: это единственная ось, где пользователи имееют теперь и последний Reaction, и последний MUI, и
программы могут быть написанны для любого из этих тулкитов.
Выбор конечно за программистом что использовать, но на сегодняшний день если кодер хочет поддерживать развивающиеся амига-лайк оси, mui это единственный выбор.