MSEIDE и MSEGUI

Уже довольно давно, почти два года назад, я рассказывал читателям "Компьютерных вестей" о среде быстрой разработки приложений Lazarus, основанной на пакете Free Pascal и реализующей кросс-платформенный аналог Delphi. Сейчас я хочу рассказать ещё об одной RAD-среде для Free Pascal и о соответствующей компонентной библиотеке.


Первое впечатление...

...честно говоря, не очень хорошее. Начнём с адреса официальной страницы этого программного продукта: homepage.bluewin.ch/msegui. Хотя многие бесплатные (и особенно open-source'ные) программы хостятся где попало, многие из них имеют хотя бы приятные взгляду сайты, не дышащие мирской аскезой. Ну да ладно, не так уж и много людей, которые способны создать собственную RAD-среду, а потому будет несправедливо требовать у них обладать ещё и дизайнерскими талантами.

Дистрибутив представляет собой два архива. В одном - бинарники сразу для Windows и Linux (нет, не хитрые такие "Universal binary" новой волны, а просто два разных файла для разных систем), во втором - сорцы, они кроссплатформенные. Всё вместе занимает объём около четырёх с половиной мегабайт. Распаковывать их нужно так, чтобы исполняемый файл был в итоге внутри папки, которая вложена в архив с сорцами. Кроме того, для непосредственно программирования нужен компилятор Free Pascal - его берём с freepascal.org.

Распаковали? Тогда запускаем. И тут на экране появляется нечто странное - окошко, в котором нет ничего, кроме строки меню. И размером окошко такое, что ровненько это меню в нём и помещается. По внешнему виду меню сразу становится ясно, что для отрисовки контролов библиотека MSEGUI, которая и есть сердце всей этой разработки, не использует платформенных API для GUI. Видимо, автор библиотеки и среды разработки решил для реализации полной платформенной независимости самостоятельно реализовывать все контролы. Это, конечно, с чисто технической точки зрения, совершенно верно. Ладно ещё Windows, где GUI унифицирован и вылизан донельзя. Но вот в Linux... м-да, там, конечно, возникают некоторые проблемы. Этот путь действительно проще, чем писать поддержку Qt, Gtk и прочих GUI, как это сделано в Lazarus. Но только выглядит это не совсем так, как хотелось бы. Как сказал когда-то Джоэл Спольски по поводу интерфейса первых Java-приложений, это как если бы инопланетяне попробовали приготовить человеческую еду. Она была бы с виду как еда и была бы питательной и полезной, но это не было бы человеческой едой, если бы на вкус это была овсянка. Заранее приношу свои извинения, если исказил слова Джоэла, но суть там была именно такая. Так вот, всё это можно с точностью повторить, если вместо Java написать MSEGUI. Конечно, можно выдать необычный вид за этакую "фишку" программы, но не думаю, что это будет хорошая идея. В наше время популярны интерфейсы в стиле Windows Vista, а MSEGUI предлагает стиль Windows 3.11. Этот стиль, конечно, вызывает ностальгию, и он наверняка понравится определённой категории пользователей. Но уж больно эта категория немногочисленна. Вот мне тут вспомнился другой продукт, написанный на Free Pascal - графический редактор Pixel (www.kanzelsberger.com/pixel). Очень, кстати, хороший графический редактор. Так вот, к чему я его вспомнил? К тому, что там тоже идёт отрисовка всех контролов самой программой. Но смотрятся они - взгляните на скриншоты на сайте - совершенно иначе, чем MSEGUI'шные.

 


Второе впечатление...

...уже получше. Хотя, конечно, так и не говорят (я про "второе впечатление"), но мы ведь тут не о филологии сейчас. Так вот, присмотревшись к количеству компонентов, понимаешь, что среда и библиотека хоть сейчас готовы к тому, чтобы с их помощью писать какое-нибудь приложение реальному заказчику. Посудите сами: стандартный набор Edit'ов, CheckBox'ов, Chart'ов и прочих контролов общего пользования, компоненты для разработки БД, компоненты для отчётов и даже компоненты для работы с COM-портами. В общем, всё довольно серьёзно. Но, конечно, одних компонентов для работы над проектом тоже недостаточно. Давайте глянем, что там ещё есть в этой среде.

Ну, во-первых, редактор кода. Он поддерживает подсветку синтаксиса. И... всё. Ну, то есть, он поддерживает ещё копи-паст, поиск по тексту и прочие штуки, но, в целом, это просто блокнот с подсветкой синтаксиса. И код в нём набирать не удобнее, чем в блокноте. Забыл, в какой очерёдности идут параметры функции - иди ищи в исходниках. Неудобно.

Теперь редактор GUI. Он есть, и он почти WYSIWYG. Когда создаётся новая форма, откуда-то выскакивает Object Inspector, который, впрочем, тут же благополучно куда-то прячется, и его приходится выковыривать по-новой. Также нужно самостийно лезть в менюшку View и включать отображение палитры компонентов. Мелочи, скажете вы, и, конечно, будете абсолютно правы. Но именно такая небрежность в мелочах меня лично почему-то и раздражает больше всего в программах. Ведь надо написать совсем немного кода, чтобы инспектор объектов не прятался при открытии новой формы, а был бы от неё где-нибудь, скажем, сбоку. Да и вообще, чтобы окна не разбегались по экрану, а образовывали собой некое подобие единого целого. Ведь в старых версиях Delphi IDE тоже была не монолитным окном, а множеством мелких окошек. Так вот Borland тогда не поленились сделать так, чтобы при открытии они все удобно умещались на экране. Что мешало так сделать создателю MSEIDE - сие науке неизвестно.

Ну вот, теперь все посчитают меня ворчуном... Самое время сказать наконец-то что-нибудь хорошее об MSEIDE. Сделать это несложно: к счастью, в среде есть возможность отладки, что само по себе искупает многие недостатки. Отладчик работает хорошо - ну, то есть так же, как и все остальные отладчики, и так, собственно, как он и должен работать. Судя по тому, что никаких внешних файлов типа gdb.exe в комплекте поставки обнаружено не было, отладчик написан самим разработчиком MSEIDE и MSEGUI (кстати, зовут его Martin Schreiber - простите, что до сих пор его вам не представил). А если это действительно так, то честь и хвала этому разработчику, потому что написать отладчик - это великий труд... Впрочем, всю среду разработки - тоже... Ну, к этой мысли я лучше потом вернусь, сначала дорасскажу основное.

Всё-таки редактор кода кое-что умеет: поддерживается завершение кода для классов. Ещё поддерживается навигация по коду, так что можно, зажав Ctrl, переходить с помощью мышки от места, где переменная, класс, модуль и т.п. используются, к месту, где оно самое декларируется. Ещё присутствует несколько вариантов сборки готового проекта - тоже вполне может пригодиться.

Настроек при этом у MSEIDE по минимуму - нет возможности даже настроить, какими именно цветами будет осуществляться подсветка синтаксиса. Возможно, это можно настроить, покопавшись в конфигурационных файлах - но, опять-таки, в приличных средах разработки это реализуется, мягко говоря, не совсем так, так что такой подход вызывает только негативные эмоции.


Окончательное (третье) впечатление...

...такое, что MSEIDE + MSEGUI - проект чисто концептуальный. Автор этого программного продукта (хотя, наверное, можно сказать, что продукта целых два - среда разработки и библиотека для программирования в этой среде) не претендовал на создание чего-то, не имеющего аналогов. Он просто играл своими интеллектуальными мускулами и программистскими навыками, когда создавал своё детище. Конечно, следует признать, что человек он, безусловно, талантливый и целеустремлённый, потому что иначе он вряд ли создал бы реально работающую среду разработки с отладчиком и собственной компонентной библиотекой. Но при этом следует отметить и то, что эта среда, судя по всему, рассчитана на одного-единственного пользователя - им является, конечно же, сам автор. Среда разработки не слишком дружелюбна к разработчику, да и оформление итогов работы этого самого разработчика, как я уже говорил, оставляет желать лучшего.

Безусловно, если смотреть на MSEIDE и MSEGUI как на разработку концептуальную, следует отметить, что она весьма интересна. Но, как мне лично кажется, на уровень массового средства разработки ей при таком подходе её автора никак не выйти. Хотя, судя по форуму freepascal.ru, есть энтузиасты, которые активно используют MSEIDE+MDEGUI, но там же находятся и такие, которые даже не смогли понять, как начать с ней работать.

Само собой приходит в голову сравнение MSEIDE и Lazarus'а. Сравнение вполне оправданное, потому что это две среды разработки, обе бесплатные и обе основаны на Free Pascal. И здесь чётко видно, насколько Lazarus продуманнее, чем MSEIDE. Во-первых, он совместим (пусть и не очень хорошо) с Delphi - самым массовым средством разработки на Паскале. Пожалуй, отсутствие совместимости с Delphi и Lazarus - самый серьёзный камень на пути дальнейшего прогресса MSEIDE и внедрения его в массы. Во-вторых, Lazarus предоставляет разработчику более совершенные механизмы работы с кодом, включая подсказки и рефакторинг. Всё это уже давно стало индустриальным стандартом, и любая приличная среда разработки должна это поддерживать. Ну, а в-третьих, MSEIDE не шибко рекламируется и разрабатывается всего одним человеком, в отличие от Lazarus'а, который является плодом деятельности многих разработчиков.

Так что, повертев в руках интересную, пусть и не очень красивую игрушку под называнием MDEIDE, сложим её назад в коробку и отнесём в чулан. Пусть пылится там, пока кому-нибудь не понадобится - есть и более интересные и полезные игрушки.

Вадим СТАНКЕВИЧ,
dreamdrusch@tut.by

Версия для печатиВерсия для печати

Номер: 

04 за 2008 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!
 

Комментарии

Страницы

Аватар пользователя minoshi
Про трудность портирования из delphi в мсе - не совсем корректное замечание. Средние проекты портируются очень даже быстро. Последнее, что я портировал - это комплекс из двух программ (конструктор сценариев для парсинга веб-страниц + проигрыатель этих сценариев). Портирование заняло 1 час

С уважением

Страницы