Обзоры
Kylix — без права на ошибку
0

Kylix — без права на ошибку

Не оставлять без внимания события на рынке программного обеспечения для ОС
Linux сегодня трудно. Но… достаточно удобно — странная ситуация, сложившаяся
вокруг этого, безусловно успешного и столь же безусловно — неоднозначного, проекта,
требует от технического журналиста крайней осторожности в оценках.

Путешествия по минному полю

Поиск истины способен
изрядно позабавить.
Вернон Говард

Проще всего рассказывать о той или иной программе, ограничившись исключительно анализом ее собственных достоинств, недостатков и возможностей. В большинстве случаев именно так и происходит. Но для продуктов с предысторией, особенно мигрировавших на новую платформу, такой подход бесперспективен по нескольким причинам. С одной стороны, профессиональным пользователям рассказать что-либо новое будет слишком трудно (если вообще возможно). С другой — не видевшие необходимости в предмете обсуждения на "родной" платформе профессионалы тем более не будут заинтересованы в странном гибриде "ненужного с бесполезным". С третьей — сам разработчик ПО тщательно следит (так и должно быть) за тем, чтобы категория заинтересованных пользователей не ощутила перехода с платформы на платформу. И наконец, сложность процесса миграции заключается не столько в технологических "подводных камнях", сколько в проблеме идеологической совместимости и, как следствие, неизбежности незаметной битвы "не на жизнь, а на смерть".

Если
отбросить амбиции, симпатии, антипатии и попытаться просто взглянуть на последние
события в мире Linux, картина получится, мягко говоря, странной. Удачный академический
проект, усовершенствованный международным сообществом разработчиков, огромная
популярность, высокое качество, динамика развития — все это абсолютная правда.
Как правда и то, что большинство небольших компаний, делавших ставку "на
Linux", испытывают серьезные финансовые трудности (если вообще не стали банкротами).
Но вот и еще одна правда — крупные корпорации с удовольствием готовы использовать
Linux в качестве оружия, для чего (по крайней мере, в PR-компаниях) не жалеют
даже обещаний миллиардных инвестиций. К этим "большим правдам" можно
добавить и множество малых. Так, формирование новой массовой культуры "geeks"
(настораживающей именно своей массовостью) — этакого "киберпанка по возможностям"
— на фоне заслуженно критикуемой утраты сообществом разработчиков инновационного
характера кажется не совсем адекватной заменой последнему. Неожиданная конкуренция
на находившемся достаточно давно в состоянии Пизанской башни рынке коммерческих
Unix-систем не заставила долго ждать результатов: вот уже и единственная "настоящая"
ОС Unix — Unixware (настоящая по trademark-критериям) — "пошла с молотка",
а доступность и неплохие показатели дешевых кластерных супервычислителей на основе
бесплатных ОС становятся новым "кошмаром на серверной улице". Угроза
производителям встраиваемых систем вынуждает их совершать весьма неожиданные поступки
— от бесплатного распространения еще недавно стоивших многие тысячи долларов
ОС (хороший пример — канадская QNX) до приобретения, казалось бы, никак не связанных
с embedded-миром компаний (WindRiver).

Разобраться в таком количестве "правд" очень трудно. Тем более трудно во всем соглашаться или полностью отвергать и постоянную критику современной модели развития ОС Linux со стороны ее очевидных конкурентов, и аргументы "евангелистов" freeware. Но с одним не согласиться нельзя — сегодняшние игроки на поле коммерческого ПО для freeware-ОС должны действовать с осторожностью сапера. Здесь нет права даже на одну ошибку — не простит эту ошибку, в первую очередь, сообщество Linux-пользователей.

Первые впечатления

Итак, вот она, коробка с инструментальной средой "всех времен и народов",
воплощением знаменитой Delphi для ОС Linux. Сразу бросается в глаза очень высокое
качество печатной документации — несоизмеримое, например, с сопроводительной
документацией на коробочный же дистрибутив Linux от фирмы SuSe, использованный
в качестве тестовой платформы (и рекомендуемый Borland). Впрочем, до радости от
чтения отличного справочного материала еще далеко — сначала автору пришлось столкнуться
с неожиданной проблемой. Слава Богу, что основные перспективные потребители Kylix
— прикладные программисты, желающие относительно безболезненно мигрировать в
Unix-совместимую ОС, подобной проблемы не узнают. Все же не будем делать тайн
и из недостатков — многократные попытки инсталляции базовой для Kylix ОС SuSe
Linux 7.0 были безуспешными из-за того, что… на стареньком жестком диске, выделенном
для этой процедуры, ранее была установлена ОС FreeBSD. Как выяснилось впоследствии,
программа разбиения диска инсталлятора SuSe по непонятным (но, возможно, идеологическим)
причинам отказывалась "видеть" разбивку диска с чуждой файловой системой,
что внешне проявлялось весьма забавно — считая и отображая диск неразмеченным,
инсталлятор упорно сообщал о нехватке места для установки. Помогло только использование…
той же ОС FreeBSD, так как расположенные на "живой" файловой системе
CD с SuSe Linux восстановительные средства по опять же непонятным причинам отказывались
работать — зато после предынсталляционного переразбиения диска и создания файловой
системы FAT16 все пошло как по маслу.

И здесь сразу хочется компенсировать недовольство первой фазой установки и по достоинству оценить очень высокое качество инсталлятора Kylix — программисты из Borland не стали создавать ни монстроидальных графических надстроек, ни требующих многочасового "тюнинга" текстовых репозиториев с установочными характеристиками. Запуск всего одного скрипта, ответы на пару вопросов, и через несколько минут система размером почти 150 MB готова к работе. При этом дополнительные "удовольствия" от инсталляции полностью соответствуют, например, возможностям встроенного инсталлятора Windows — и в "настольной" оболочке KDE, и при использовании оконного менеджера WindowMaker всего два вызова главных подсистем Kylix автоматически появляются в пользовательском меню.

Если подвести краткие итоги инсталляционного этапа, можно смело сказать, что для "мигранта из настольного мира" в мир рабочих станций с самого начала никаких проблем быть не должно — требуются только минимальные представления об организации и правах пользователей ОС Unix.

Первый запуск системы открывает массу примечательных подробностей. Но мы остановимся только на технологической подоплеке этого проекта, интересной хотя бы потому, что опыт разработчиков Kylix отражает, вероятнее всего, современные тенденции в построении кросс-платформенного прикладного ПО достаточно высокого класса. Некритичные платформенно-зависимые компоненты пользовательских интерфейсов Kylix (в частности, крохотный, инициируемый установочным скриптом диалог инсталлятора) разработаны с использованием библиотеки примитивов пользовательского интерфейса Gtk. Основная же система построена исключительно на базе библиотеки Qt компании Troll Tech, в том числе на Qt основаны и кросс-платформенные библиотеки GUI Kylix. Последняя особенность очень важна из-за лицензионных соображений. Дело в том, что продукция Troll Tech существует параллельно в двух лицензионных мирах. Первый подчиняется строгим законам Open Sources — лицензии GNU, второй — не менее строгим сугубо коммерческим законам. Неизбежное наследование приложениями, созданными в Kylix, этого двойственного лицензионного характера и правовые особенности коммерческого их применения, похоже, являются вопросами не слишком простыми и заслуживают отдельного, очень внимательного рассмотрения, которое непозволительно для обзорной статьи. Потенциально заинтересованным в создании коммерческого ПО разработчикам просто следует сразу принять ко вниманию, что такая проблема существует и что коммерческая версия Qt не отличается дешевизной.

Вид на Kylix из мира Unix

Функционально Kylix является комплексным инструментальным средством, попадающим
в никем не определенный класс, название которого стало уже расхожим — RAD (Rapid
Application Development — быстрая разработка приложений). Избалованному инструментальными
возможностями Unix разработчику ожидать потрясений от Kylix не стоит — выражаясь
более или менее понятными терминами, RAD представляет собой комбинацию "все
в одном" из текстового редактора, конструктора графических интерфейсов (GUI
builder), компилятора, генерирующего "родной" исполняемый код ОС Linux,
отладчика, навигатора по иерархии классов и оболочки управления проектом. К приятным
особенностям следует отнести несложный репозиторий компонентов и прекрасно реализованную
встроенную подсистему помощи.

Kylix, древнегреческое название
бокала для питья вина —широкого, на тонкой ножке

Недельный экскурс автора "в Kylix" был посвящен, в первую очередь, инструментальным
возможностям системы, не зависящим, так сказать, от привычек, взглядов и традиций
и при тщательной проверке оказавшимся весьма высокими. Компилятор Kylix, являющийся
по сути компилятором объектно-ориентированной версии Borland классического языка
Pascal, продемонстрировал очень неплохие результаты. Так, размеры собранных с
его помощью приложений оказались в среднем соизмеримыми с аналогичными приложениями,
написанными на C++ и скомпилированными бесплатным gcc. Быстродействие оценивалось
очень тщательно, многократными прогонами Object Pascal и C++ реализаций мощного
алгоритма генерации случайных чисел Mersenne Twister, что также выявило весьма
неплохие результаты. Для большей объективности сравнения тот же алгоритм был выполнен
в "паскалеподобных" языках Oberon и Ada 95 (в системах Oberon 3 и GNU
Ada) — во всех случаях компилятор Kylix показал соизмеримое и даже более высокое
быстродействие созданного кода. Надежность всей инструментальной среды оказалась
также достаточно высокой, но справедливости ради следует заметить — для своего
класса приложений. В ходе тестовой эксплуатации система неоднократно аварийно
завершала ряд абсолютно невинных действий при работе в отладчике, зато сгенерированный
код больших приложений "вел себя" просто безукоризненно.

Если же перейти от вещей объективных к более субъективным, то в Kylix больший интерес представляют собой не реализации отдельных компонентов, а скорее реализации способов их взаимодействия. Весьма "серенькие" по возможностям текстовый редактор и отладчик, навигатор по древовидному представлению программы и библиотеки классов — все это далеко не ново в Unix и существует во многих воплощениях, основанных на идеологии этой ОС. В отличие от канонических Unix-решений, Kylix опирается на собственную встроенную интеграционную схему. С точки зрения "выросшего" в Unix разработчика, такой нюанс является скорее особенностью, чем достоинством, а его главное преимущество — помощь слабо подготовленному пользователю — плохо согласуется с инструментальным характером системы.

Если же говорить о столь популярном за пределами мира Unix и фактически неприжившемся в этой, склонной к "многоязычности", ОС языке программирования Object Pascal, то он также относится, вероятнее всего, к "особенностям". 65 ключевых слов, 44 директивы со своими нюансами применения, отсутствие стандарта — назвать основу Delphi/Kylix языком простым язык не поворачивается. Впрочем, такое же мнение самого автора стандартного Pascal Н. Вирта никак не повлияло на популярность версии Object Pascal от Borland. Но все же, по оценкам многих специалистов, к которым не прислушаться трудно, у воспитанных в традициях Unix программистов Object Pascal "не приживется" — во-первых, есть доступные и мощные альтернативы (например, те же "паскалеподобные" языки Oberon, Modula-2 и Ada 95), во-вторых, нестандартность описаний и реализаций Object Pascal — слишком плохой аргумент в мире Unix. Хотя… не будем заниматься предсказаниями — те, кто всего несколько лет назад уверенно предсказывал "неприживаемость" самой системе Unix в современном мире, сегодня объявляют ее своим главным конкурентом, так что время покажет.

Если до этого момента восторженные оценки не прозвучали, пора перейти к торжественной части. Что действительно в Kylix сделано безоговорочно хорошо — это библиотеки. За качество, полноту, ясность интерфейсов и уровень документации этой системе можно простить многое, если не все. И именно на уровне библиотек Kylix (опять же, с точки зрения человека, работающего в Unix) представляет собой по-настоящему сильное инструментальное средство быстрой разработки приложений. Пользуясь только документацией и любимым текстовым редактором, без всех красот GUI Kylix, с компилятором Object Pascal можно добиться очень впечатляющих результатов даже в разработке GUI-ориентированных пользовательских программ.

Вид на Unix из мира Kylix

Было бы несправедливо оставить без внимания и обратную сторону медали. Для
чего автором (по очевидной причине сложности осуществления такого грандиозного
замысла в одиночку) был предпринят несколько неожиданный ход — компьютер с установленной
ОС SuSe Linux, пользовательской оболочкой KDE и Kylix был предложен для оценки
профессиональному программисту на Delphi, который (что доподлинно известно) ни
разу в жизни не работал не только в Unix, но и вообще ни в каких ОС, кроме MS
DOS и Windows. При этом для чистоты эксперимента SuSe Linux устанавливалась в
полностью автоматическом режиме без всяких последующих настроек, как, впрочем,
и сама Kylix. Не вдаваясь в подробности и не обращая внимание на некоторые недоразумения,
вызванные минимальными отличиями в пользовательской парадигме KDE и Windows, стоит
просто привести результат эксперимента: за несколько часов работы, прерывающейся
на перекуры и обсуждения за чашкой кофе, с виртуозной легкостью человеком, который
никогда не работал в Unix, было создано вполне работоспособное GUI-приложение
— примитивный графический редактор для совершенно новой платформы. Хотя… по
мнению самого разработчика, платформы "видно не было вообще". Вот такой
получается "вид на Unix из мира Kylix".

"Эксперимент" открыл главное назначение нового рыночного оружия Borland. Kylix не рассчитана на профессиональных Unix-программистов — не по причинам очевидного несовершенства реализаций отдельных, не критичных к свойствам всей системы в целом инструментов или не соответствующего Unix-лаконизму многословного Object Pascal. Вовсе нет — просто за каждым специалистом стоят годы опыта, сформировавшего приверженности, убеждения, взгляды. И в Borland, вероятнее всего, прекрасно понимают опасность "борьбы с идеями", даже с помощью такого мощного оружия, как замечательная библиотека классов Kylix (представляющая несомненный интерес просто как отдельная инструментальная единица). Зато разработчики прикладного ПО, которым "становится тесно" в рамках "настольных" ОС, теперь получают возможность создавать функционально насыщенные прикладные системы и для рабочих станций. Такой подход можно назвать стратегическим — востребованность прикладного ПО в современных условиях очень велика, армия не-Unix программистов огромна, следовательно…

А вот здесь, похоже, пора и остановиться. Предсказывать будущее — дело неблагодарное. Множество разработок — совершенных, изящных, доступных и простых — оставлены в небытии по самым разнообразным, иногда абсолютно неожиданным, причинам. Современный мир Linux, состоящий из тех, кто пытается зарабатывать деньги, кто не хочет тратить деньги и кому просто интересно, раздираем внутренними противоречиями. Но, что хуже, сегодня в этом мире, постоянно растущем за счет притока новичков, правят бал больше эмоции, чем разум. Достаточно набрать в строке любого поискового русскоязычного сервера, например, такую комбинацию: "Kylix ламер", чтобы получить сразу много ответов на один вопрос. Если сомневающиеся разработчики-индивидуалы, желающие и получившие возможность почти безболезненно мигрировать на новую платформу, не могут преодолеть порожденную непрофессионализмом неприязнь и хамство со стороны (по выражению главного участника описанного выше эксперимента) "Linux-югенд", то что уже говорить о профессиональных коллективах программистов и компаниях—разработчиках ПО, аналитики которых пока не могут отыскать платежеспособной целевой аудитории для своих прикладных программ. Зато, как ни странно, в классической области применения ОС Unix — в академической науке — Kylix находит поддержку и популярность. Ученые, не желающие ломать себе голову технологическими нюансами массы инструментальных программных средств в ущерб основной исследовательской работе, возможностями Kylix очень довольны (и, что немаловажно, это та категория пользователей, которая платит деньги).

Как бы там ни было, появление Delphi/Kylix на новой платформе — это событие и
очень смелый шаг Borland. Нам же остается надеяться, что и разработчику, и продукту
будет сопутствовать удача.


Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: