1995 | 1996 | 1997 | 1998 | 1999 | 2000 | 2001 | 2002 | 2003 | 2004 | Оглавление текущего номера /137, 1996 г./ | Бонус | Поиск  

Технологии

От рожка до флейты Пана

Руслан Богатырев


© 2004, Еженедельник «Компьютерра» | http://www.computerra.ru/offline
Этого материала на сайте "Компьютерры", к сожалению, нет

 

От рожка до флейты Пана…

Путь длиною в десять лет

Совершили два титана –

Кто в строю, кого уж нет.

В той борьбе лихой, кровавой

Пал Туманный Альбион.

Но теперь на гребне славы

И TopSpeed, и Clarion.

Введение

Этот эпиграф, обличенный в форму классического четырехстопного хорея, – да-да, того самого хорея, который Николай Гумилев называл "поднимающимся, окрыленным, всегда взволнованным и иногда смешливым", – вобрал в себя краткую, но весьма насыщенную событиями историю становления технологии Clarion.

Так что же такое Clarion*) ? Что это за технология, которая вот уже 10 лет сохраняет свою актуальность и удерживает позиции в таком бурном секторе рынка, как приложения для PC? В чем секрет ее долголетия? Почему у нее столько верных почитателей? Почему до недавнего времени в компьютерных изданиях об этой, как сегодня модно говорить, системе визуальной разработки нельзя было найти ни строчки? И с чего это вдруг в середине и в конце прошлого года специалистов словно прорвало? "PC Week", "InfoWorld", "Windows Tech Journal", "Windows Magazine", "DBMS", "PC Techniques", "Data Based Advisor" в один голос заговорили о ее достоинствах, да еще не забывая рассыпаться в восторженных комплиментах. "Солидная и впечатляющая система, лучший выбор на рынке Windows RAD, по многим параметрам превосходит Borland Delphi, Visual Basic, WmMaker Pro", – вот лишь малая толика этих отзывов [Ber95, Bob95, Cof95a, Cof95b, Fas95, Ful95, Hel95, Pet95].

Понимаю, что вы хотите сразу услышать ответ, но давайте наберемся немного терпения. За те шесть с небольшим лет, что я знаком с Clarion, мне не раз доводилось отвечать на подобные вопросы Причем реакция слушателей была практически одна и та же: вне зависимости от того, где это было, – на учебных курсах, в студенческой аудитории, на выставочных стендах или в кулуарных беседах, – удивление быстро сменялось неподдельным интересом, который затем вырастал в твердое желание во всем этом хорошенько разобраться.

Сегодня часто можно слышать абсолютно полярные высказывания в адрес Clarion. Причем негативных, язвительных и благодушно-снисходительных с годами становится не меньше, а больше. Быть может, это связано с резкой девальвацией профессионализма; быть может, с особым статусом Clarion в нашей стране, да и во всем мире. Это андерграунд. О нем знают, немало спорят, но почти ничего не пишут. Мне известны лишь два отечественных журнала, уделяющих внимание Clarion: "Технология программирования" и "Clarion Magazine". И все.

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

Существуют ли сегодня реальные альтернативы архитектуре "клиент-сервер" и объектно-ориентированному программированию? Как решать проблемы архивации программных идей с последующей их настройкой на разные задачи, языки и платформы? Можно ли осуществлять плавное масштабирование приложений, причем не только в сторону разукрупнения (upsizmg), но и в обратную сторону (downsizing)? Как, не нарушая технологию и ее воплощение в конкретной инструментальной системе, корректно вмешиваться в технологический цикл на самых разных его стадиях, чтобы довести реализацию до соответствия нужным критериям? Эти вопросы волнуют многих. В меру своих сил и крайне ограниченного пространства статьи я постараюсь так или иначе на них ответить. Однако заранее оговорюсь: не ищите здесь универсальных рецептов на все случаи жизни. И еще: подвергайте все сомнению, не полагайтесь всецело на любые, даже самые убедительные заявления автора, и если есть такая возможность – обязательно проверяйте их сами.

Тот самый Clarion

Не так давно на одной из осенних московских выставок я стал свидетелем спора двух программистов. Один из них (назовем его "реформатор") страстно доказывал другому ("консерватору"), что тому уже давно пора бросить этот "убогий" Clarion и перейти на что-нибудь поприличнее, вроде Access, Magic или Delphi (речь шла, как вы уже догадались, о работе на PC). Консерватор возражал довольно спокойно: он уже лет пять, как работает с Clarion, и для своих задач (небольших автономных баз данных, рассчитанных на одного пользователя) Clarion'a ему вполне хватает. Да, пользовательский интерфейс тяжеловат, приложения работают не очень быстро. Зато сделать прямо у вас на глазах с помощью Clarion неплохое приложение, которое будет надежно работать, да к тому же на самой неприхотливой PC под DOS – никаких проблем. Так зачем же искать что-то другое? "Да ты просто не понимаешь, – кипятился реформатор. – Люди в "клиент-сервере" давно работают. У всех поголовно Warp или Windows 95. А ты уткнулся в свой DOS и чего-то там кропаешь на этом Clarion. Эх, да что тебе объяснять". В сердцах он махнул рукой и пошел дальше, в сторону красивого стенда, у которого уже собралась небольшая толпа.

В другую, не менее плодотворную дискуссию оказался втянутым и ваш покорный слуга. Дело было на Международном Компьютерном Форуме, который проходил прошлым летом в Москве. Как истинный ценитель безграничных выразительных возможностей великого и могучего русского языка, я не могу удержаться от почти дословного цитирования яркого монолога одного из посетителей Форума. Диалогом назвать его язык не поворачивается, поскольку те редкие слова, которые мне удавалось робко вставить в разговор, совершенно терялись в потоке речи моего собеседника. "Кларион? Вы что, не в курсе, что он уже загнулся? Да, я лабал на Кларионе и знаю его не хуже вас – это вчерашний день. С каким? С двойкой. Да, слыхал, что появилась и тройка, но, говорят, что-то у них она очень сырая, постоянно глючит. Какой? Для Виндов? Нет, не видал. Вы, что, и впрямь думаете, что старушка Клара в силах еще чем-то шамкать?" Речь, как вы догадались, идет не о мужских костюмах. "Двойка" и "тройка" – это два разных продукта из Clarion-семейства.

Я не напрасно привел такие весьма характерные эпизоды, поскольку Clarion, которому посвящена статья, – это далеко не тот Clarion, о котором столь горячо рассуждали герои моего рассказа. Точнее, тот, да не совсем.

Уверен, что читатель прекрасно понимает, что технология и ее реализация – это несколько разные вещи. Точно так же, как язык и соответствующая ему среда программирования. Технология Clarion на сегодняшний день воплощена в четырех различных системах:

 – Clarion Professional Developer 2.1 (CPD2.1);

 – Clarion for DOS 3.1 (CFD3.1);

 – Clarion for Windows 1.0 (CW1.0);

 – Clarion for Windows 1.5 (CW 1.5).

Говорить о каждой из них можно долго и обстоятельно, но здесь я по понятным причинам ограничусь лишь сжатым обзором.

Краткая характеристика систем Clarion-семейства

CPD 2.1. Система появилась на свет в 1988 году. Неприхотливый, проверенный и довольно надежный инструмент. В странах бывшего Союза распространена очень широко. В основном используется нелегально и прежде всего для написания так называемых "внутренних" и "заказных" систем. Базовой (для инструментальной системы) и целевой (для создаваемых приложений) платформой является DOS. Слово "Clarion" у нас в стране обычно связывают именно с этой реализацией. Из крупных "рыночных" систем можно отметить спектр банковских продуктов фирмы "Диасофт" (не менее известны и их реализации на CFD 3.1). Наиболее распространенным (но не штатным!) сетевым решением является связка CPD 2.1с Novell Btrieve. Система позволяет проводить быстрое макетирование схемы БД и приложения при крайне ограниченных ресурсах. И инструментальная среда, и готовое приложение могут работать даже на монохромном PC/ 286с 1 Мбайт оперативной памяти. Имеется неплохой генератор отчетов, позволяющий создавать разнообразные выходные формы на основе одних лишь существующих файлов БД. К существенным недостаткам относятся: проблемы с оперативной памятью при сборке больших приложений (требуются специальные программы построения оверлеев), отсутствие поддержки мыши и графического интерфейса (существуют специальные сопутствующие реализации в виде LEM-расширений), сложности при компоновке с внешним объектным кодом (требуется LEM Maker), в некоторых случаях чересчур медленное выполнение операторов языка (из-за режима интерпретации), довольно неудобный отладчик, невозможность прозрачной работы с файлами БД в иных форматах (xBase, Clipper, Paradox, Btrieve и т.п.). Наконец, крайне зачаточный вид имеют язык шаблонов и сам язык Clarion – наиболее важные отличительные свойства одноименной технологии. Тем не менее CPD 2.1 до сих пор используется многими отечественными и зарубежными разработчиками. CFD 3.1. Появилась на свет в 1995 году. Распространена не столь широко, как СРD2.1, и прежде всего из-за критических откликов разработчиков. Непривычна для тех, кто знаком с CPD 2.1; гораздо сложнее в освоении. Ликвидировала основные недостатки CPD 2.1. Базовой и целевой платформой является DOS. Требования для среды разработки и для приложений колеблются в районе 4 Мбайт памяти и 386-го процессора. Появился настоящий компилятор усовершенствованного диалекта языка Clarion, генерирующий крайне компактный код под конкретный процессор семейства 80x86 с учетом реального и защищенного режима. Весьма приличный символьный отладчик (мультиязыковой). Сняты многие проблемы с интеграцией объектного кода других компиляторов. Появился интеллектуальный компоновщик (smart linker), обеспечивающий устранение избыточного объектного кода. С появлением поддержки DLL-библиотек под DOS снята проблема с оперативной памятью. Благодаря сопутствующему продукту GUI Kit имеется возможность на выбор встраивать в приложение поддержку простого символьного или объемного графического интерфейса (схожего с Windows 95), хотя в последнем случае CFD предъявляет серьезные требования к ресурсам. За счет ввода концепции драйверов БД появилась возможность работать с внешними форматами файлов БД как со своими собственными. Для работы в защищенном режиме можно использовать как собственный расширитель DOS, так и большинство известных. На уровне реализации технологии разделены понятия приложения и схемы БД (словарь данных). Значительно усовершенствован язык шаблонов, теперь позволяющий осуществлять прозрачную автоматическую генерацию исходных текстов приложения на языке Clarion. Серьезные недостатки: неустойчивая работа приложений, ошибки в шаблонах, поддержка только 16-разрядного режима, медленные драйверы БД, проблемы с корректной обработкой транзакций при работе сетевых приложений. Нет полноценной поддержки архитектуры "клиент-сервер". Для сетевых приложений основной остается связка Clarion-Btrieve. Появилась поддержка SQL. Система продолжает развиваться в параллель с Windows-версиями Clarion, что для нынешнего состояния DOS-рынка большая редкость.

 

CW 1.0. Появилась в конце 1994 года. По качеству реализации стоит гораздо выше CFD 3.1. Требования к аппаратуре фактически те же, что и для CFD 3.1. Вобрала в себя поддержку основных достоинств Windows 3.1: MDI-интерфейс, DDE, VBX, ODBC. Существенные усовершенствования внесены в язык Clarion, в язык шаблонов, а также в сами стандартные шаблоны. В плане архитектуры "клиент-сервер" поддерживает связку с DB2 на IBM AS/400. По сути является плацдармом для CW1.5 и CW2.0. Недостатки напрямую вытекают из ориентации на Windows 3.1. Наиболее существенный – поддержка только 16-разрядного режима. Неприятным фактором является заметное рассогласование на уровне языка Clarion, языка шаблонов и самих шаблонов с системой CFD 3.1, что значительно осложняет возможность одновременной поддержки одного и того же проекта для DOS-и Windows-платформ.

CW 1.5. Появилась на свет в сентябре 1995 года. Ее выпуск был приурочен к выходу Windows 95. Требования к аппаратному обеспечению совпадают с требованиями нормальной работы Windows 95 (8 Мбайт памяти, 80486). На текущий момент наиболее сбалансированная реализация среды разработки Clarion. Допускает кросс-разработку для Windows 3.1 и для Windows 95 (а также для Windows NT3.51/PC). Поддерживает новые особенности интерфейса Windows 95. Приложения могут генерироваться как для 16-разрядного, так и для 32-разрядного режима. Появилась поддержка BLOB-полей в драйверах БД. Недавно вышел драйвер Oracle и объявлен SQL Driver Kit. В ближайшее время должен появиться драйвер Sybase.

Возвращаясь к диалогу "реформатора" с "консерватором", хочу поддержать последнего. Каждый инструмент должен оттачиваться под решение тех задач, для которых он и задумывался. И хотя здесь бывают приятные исключения, гвозди микроскопом забивать получается далеко не всегда.

История корпорации TopSpeed

Чтобы понять феномен столь запоздалого взлета Clarion и осознать потенциал реализаций этой технологии, надо вернуться к ее истокам и вспомнить историю того, как она пробивала себе дорогу наверх, к солнечному свету.

Нынешняя корпорация TopSpeed возникла в результате слияния двух фирм: американской Clarion Software Corp., которую возглавлял Брюс Баррингтон (Bruce Barrington), нынешний глава TopSpeed и идеолог технологии Clarion, и английской TopSpeed, во главе которой стоял Нильс Йенсен (Niels Jensen). Идеи, заложенные Баррингтоном еще в системе CPD, были весьма перспективны. Но без хорошей реализации пробить себе дорогу они не могли. Историю технологии Clarion можно отсчитывать от апреля 1986 года, когда появился первый коммерческий продукт под названием Clarion Version 1.0. Тем, кого заинтересовала история появления технологии Clarion, могу порекомендовать ознакомиться со статьями Евгения Галочкина [Гал95] и Дмитрия Рамодина [РамЭб], а также со статьей самого Баррингтона [Бар95]. Здесь я расскажу только о второй части той истории, которая затрагивала английскую фирму TopSpeed и, к сожалению, осталась как бы за бортом. Она тем более важна, что ныне основным центром разработки технологии Clarion является не Pompano Beach в США, а именно TopSpeed Development Centre в Англии, созданный еще Нильсом Йенсеном.

Около десяти лет назад в недрах небезызвестной фирмы Borland International возник проект по созданию среды программирования Turbo Modula-2. Возглавлял этот проект Нильс Йенсен, который тогда занимал пост вице-президента фирмы. Продукт был готов к выходу (я даже держал в своих руках документацию на него), но на рынке программного обеспечения для PC так и не появился. Причины впоследствии назывались разные, но наиболее вероятная из них – боязнь финансовых потерь от падения продаж Turbo Pascal, который к тому времени уже стал завоевывать популярность.

Разработкой Turbo Modula-2 занималась отдельная группа, и всем разработчикам, включая руководителя проекта, было крайне обидно выбрасывать в корзину продукт, лучший с их точки зрения. Йенсен вышел из Borland International и за очень большие деньги выкупил все права на этот продукт. В Великобритании он основал собственную фирму, которая стала называться Jensen & Partners International (JPI). Целью фирмы была разработка профессиональных компиляторов для PC. Естественно, что первым' компилятором стал компилятор Modula-2. В дополнение к нему был выпущен ассемблер. Указанный продукт сумел тогда потеснить знаменитую Logitech Modula-2, славящуюся своей высокой надежностью. Казалось, фирму ждет колоссальный успех. Но только вот незадача. Ставка на Modula-2 оказалась серьезным коммерческим просчетом. Язык, созданный Никла-усом Виртом с учетом изъянов Pascal, в течение долгих лет никак не могли стандартизировать. А без стандарта его серьезное применение было практически невозможно.

Йенсен задумал выпустить целую серию компиляторов, связанную единой средой разработки и поддержки, и, тем самым, снять проблемы адаптации библиотек, написанных на разных языках. В этой серии планировалось выпустить С, Pascal, Ada, a затем и C++. Компилятор Ada так и не появился. Зато наработанная технология производства компиляторов нашла серьезные положительные отклики у многих авторитетных специалистов (причем не только в Великобритании). Интересно, что фирма JPI в качестве основного рабочего языка для производства всех своих продуктов использовала Modula-2. Уровень и качество первых компиляторов были высокими. До сих пор во многих фирмах (кстати, и у нас в стране) используют старое проверенное оружие – JPI Modula-2 1.17. Качество всех последующих версий компиляторов (не только Modula-2) становилось все хуже и хуже. Зато они были гибче, друг с другом интегрировались и поддерживали DOS, Windows и OS/2. Кстати сказать, мечта Йенсена о реальном использовании мультиязыкового программирования в какой-то степени сбылась. Ведь нынешняя гордость TopSpeed – Clarion for Windows – представляет собой мультиязыковой проект. Библиотека поддержки (RTL), компилятор языка Clarion, генератор исходных текстов и редактор словарей данных – все это написано на C++. Оптимизирующий кодогенератор и отладчик написаны на Modula-2. Весь пользовательский интерфейс написан на самом Clarion.

Фирма JPI шаг за шагом стала осваивать свою нишу на рынке инструментальных средств для PC и постепенно превратилась сначала в TopSpeed Corp., а затем и в TopSpeed Consortium. Проблемы, фактически уничтожившие JPI, носили как внутренний, так и внешний характер. В самый разгар этих проблем к Йенсену обратился Брюс Баррингтон с просьбой о лицензировании TopSpeed-технологии разотки компиляторов. Целью Баррингтона было создать настоящий компилятор языка Clarion. В результате длительных переговоров в мае 1992 года было принято решение о слиянии двух компаний (TopSpeed и Clarion Software) в одну – Clarion Software Corp. Разработчикам TopSpeed теоретически открывался американский рынок. A Clarion Software фактически стала обладателем не только важнейшей технологии, но и ее носителей.

Перестройка велась на ходу. Несколько ранее перед фирмой была поставлена задача в короткий срок сделать новую версию CPD (впоследствии получившую название Clarion Database Developer, а затем Clarion for DOS), но уже с максимальным использованием TopSpeed-технологии. Работа началась еще в 1990 году, а в сентябре 1991 года появилась первая функционирующая (но еще не работающая) версия. Создание CFD велось в Штатах. Результат вам известен.

Понимая, что фирма Clarion Software теряет весь свой с таким трудом завоеванный авторитет, Брюс Баррингтон сделал ставку на Clarion for Windows. Около двух лет специальная группа вела эту разработку. Были приостановлены работы по доводке и выпуску 32-разрядных компиляторов для DOS, Windows и OS/2. Латались дыры в CFD. Сейчас уже можно смело говорить о том, что Баррингтону удалось-таки

выкрутиться из сложнейшей ситуации, когда на карту было поставлено дело его жизни. В октябре 1994 года Clarion for Windows вышел на рынок под маркой TopSpeed Corp. Тем самым Баррингтон не только отдавал дань роли фирмы TopSpeed и лично Нильсу Йенсену, но и отмежевывался от пошатнувшейся марки Clarion Software.

Не могу не высказать свое уважение мужеству и настойчивости Брюса Баррингтона, который своим Clarion открыто бросил вызов моде на объектно-ориентированное программирование, – вызов тому самому подходу, который сегодня применяется где надо и где не надо. Своей технологией он сумел доказать, что существуют иные, альтернативные общепринятым подходы к разработке программного обеспечения. Воплощенная в Clarion концепция вариативного программирования на основе шаблонов с применением "замороженных" объектов не на словах, а на деле доказала свое право на жизнь!

Технология Clarion

Дочитав до этого места, вы узнали уже немало, но о самом важном – о сути технологии Clarion – пока не было сказано практически ни слова (разве только вам встречался изредка в тексте не очень понятный термин "шаблон").

Главной целью, которую ставил перед собой Брюс Баррингтон при разработке Clarion, было создание законченного технологического цикла, способного положить конец анархии кустарного производства и создать необходимые предпосылки для перехода к промышленной революции. В своей статье "Software Manufacturing" [Bar95] Баррингтон отмечает всю важность технологии Clarion в процессе перехода к промышленному производству, когда выпусктого или иного продукта осуществляется коллективом разработчиков с четким разделением труда. Причем качество реализации должно в наименьшей степени зависеть от искусства отдельного исполнителя и автоматически достигаться за счет применения продуманной технологии. В то же время такая технология должна легко масштабироваться под разработчика-одиночку, который выступает сразу в нескольких ипостасях. Центральным моментом технологии Clarion является идея быстрого макетирования как схемы БД, так и самого приложения. Причем получаемый макет, на котором отлаживается архитектура, поведение и внешний облик системы, не выбрасывается, а естественным образом доводится до нужной степени оптимизации.

Одним из важных принципов, проповедуемых Clarion на протяжении всего периода существования, является объединение разрозненных экранных форм, отчетов, подпрограмм в единое целое, получившее название "модель приложения" (application model). Модель позволяет установить логические и физические связи между различными компонентами приложения, и прежде всего между процедурами. С точки зрения логической организации все процедуры увязаны в общее дерево, которое строится в строгом соответствии с последовательностью вызова этих процедур. На вершине дерева находится головная процедура, с которой и начинается выполнение приложения. С точки зрения физической организации все процедуры группируются в отдельные модули. Описание процедуры содержит в себе спецификацию таких визуальных элементов, как меню, окно, отчет. Помимо этого, в описании задается определенное поведение данной процедуры. Как мы видим, идеи структурного программирования не погибли, а были бережно включены в технологию Clarion!

Вся информация о приложении сохраняется в АРР-файле – специальном репозитарии приложения (чуть не сказал в "репозитории"). Я тоже грешен. И вслед за Баррингтоном буду часто употреблять это новомодное словечко, которое на непосвященных производит просто неизгладимое впечатление. А является оно чистым слепком с английского "repository" (с ударением на втором слоге, это важно!) и обозначает всего-то навсего обыкновенное хранилище. И кто бы там что ни говорил, но если засорять русский язык, так уж со вкусом! Ведь, согласитесь, у репозитария мало общего с мораторием, санаторием и крематорием, зато депозитарий, гербарий и уж тем паче серпентарий (по-нашему "гадюшник") для него как родные. Схема базы данных (таблицы, ключи, валидаторы, ссылочная целостность, формат представления) заносится в специальный словарь данных (DCT-файл). Естественно, что для одной и той же схемы БД может быть создано произвольное количество работающих с ней приложений. Для построения приложения совсем не обязательно иметь словарь данных – вы вольны создавать системы, которым вообще не нужна работа с базами данных! Репозитарий приложения содержит ссылки на системный репозитарий (набор взаимосвязанных шаблонов), а также на словарь данных. На основе системного репозитария, репозитария приложения и словаря данных осуществляется автоматическая генерация исходного текста приложения на языке Clarion. Этот процедурный язык находится примерно на одном уровне с языками С, Pascal, Modula-2. Баррингтон называет его языком четвертого поколения (4GL). Честно говоря, я категорический противник этой надуманной классификации языков (post-4GL, 5GL и т.д.). Другое дело, что Clarion содержит в себе абстракции более высокого уровня; в отличие от упомянутых языков в нем имеются своеобразные "замороженные" классы объектов: окно, меню, список, файл данных, виртуальная таблица, отчет. Их можно порождать, динамически изменять их свойства, вот только нельзя создавать из них новые классы. Язык поддерживает ограниченную форму полиморфизма на уровне параметров процедур, а также весьма интересную особенность, которая носит название динамического выражения. Для реализации логики обработки интенсивно используется внутренняя схема событий, которая имеет много общего со схемой Windows-сообщений, но гораздо более компактна. На уровне текстового редактора поддерживается взаимно однозначное соответствие между визуальным представлением элемента приложения и кодом на языке Clarion. Разработчик интерфейса может использовать то представление, которое для него в данный момент наиболее удобно. Для языка имеется настоящий компилятор, который генерирует код, не уступающий лучшим промышленным компиляторам C/C++. Это и не удивительно, ведь он использует тот же оптимизирующий кодогенератор, что и все остальные компиляторы TopSpeed-семейства. Интеллектуальный компоновщик работает в тесной связи с системой управления проектом. Он позволяет компоновать в конечное приложение библиотечные процедуры (OBJ, LIB, DLL), написанные на других языках.

И все же самым замечательным во всей этой технологии является язык шаблонов. По своей сути это язык макрообработки, который за счет специальных встроенных символов напрямую использует информацию, находящуюся в служебных базах данных – репозитарий приложения и в словаре данных. Он управляет генерацией исходного текста, причем текст этот может быть произвольным, начиная от естественного языка (вот вам и автоматическое документирование) и кончая исходными текстами на любых языках программирования. Язык настолько мощный, что может быть даже использован как обычный процедурный язык программирования. С помощью языка шаблонов можно создавать по сути свои собственные проблемно-ориентированные языки, с которыми и будут в конечном счете иметь дело системные аналитики и прикладные программисты. Язык позволяет даже создавать меташаблоны, которые в качестве результата генерации порождают обычные шаблоны. Интересно, что все стандартные шаблоны Clarion, которые и определяют основной инструментарий разработчика, полностью поставляются в исходных текстах. Язык шаблонов поддерживает как пакетную, так и интерактивную работу, предоставляя богатые средства для организации визуального интерфейса с разработчиком. В наши дни не только многие разработчики, но и многие пользователи хорошо знают, что такое эксперт-программы (wizards). В технологии Clarion они существовали давно (взять хотя бы тот же Quick Start). И, как проницательный читатель уже понял, визуальные шаблоны Clarion практически идеально подходят для реализации таких эксперт-программ. Давайте теперь шаг за шагом пройдемся по всей технологической цепочке, поддерживаемой в Clarion.

 

1. Построение модели инструментария (шаблоны, системный репозитарий).

2. Формирование схемы БД (схема БД, словарь данных).

3. Моделирование приложения (модель, репозитарий приложения).

4. Макетирование приложения (макет, репозитарий приложения).

5. Автоматическая генерация исходного текста (программа, исх.тексты).

6 Оптимизация приложения(язык управления проектом, библиотеки).

7. Отладка (исполняемый файл).

8. Тестирование.

9. Документирование (шаблоны).

10. Создание выходных форм (отчеты).

На самом верху этого цикла работает метапрограммист, который с помощью языка шаблонов формирует модель инструментария. Результатом его работы служат шаблон-процедуры, которые размещаются в системном репозитарий (REGISTRY.TRF). Следующий этап – формирование схемы БД – напрямую не связан с предыдущим. На нем администратор БД определяет не только структуру БД, ее проекцию на физическое представление (форматы файлов), но также условия входного контроля данных (валидаторы) и даже рекомендуемый формат визуального представления данных в пользовательском интерфейсе. За системный аналитик, опираясь на системный репозитарий и на словарь данных, построенные на предыдущих этапах, создает скелет (модель) будущего приложения. Он не занимается тщательной проработкой пользовательского интерфейса и реализацией конкретных прикладных алгоритмов. Его задача – определить проект и архитектуру будущего приложения. Результатом работы служит репозитарий приложения. Интересным побочным эффектом технологии является то, что из построенной модели можно, нажав всего одну кнопку, автоматически получить работающий ЕХЕ-файл! Другое дело, что он будет составлять в основном из одних заглушек. На следующем этапе технологии на сцену выходит прикладной программист. По роду деятельности он является скорее дизайнером и конструктором, нежели программистом в традиционном смысле. Задача прикладного программиста – довести модель до состояния макета, который максимально приближен к реализации конечного продукта. Прикладной программист работает только с репозитарием приложения, насыщая его доопределенными шаблонами. В любой момент он может выйти на уровень языка Clarion, закодировав программные вставки, предусмотренные шаблонами данного репозитария приложения. Наконец, для получения готового приложения может потребоваться участие и системного программиста. Его роль не только в том, чтобы заниматься сопровождением внешних библиотек и обеспечивать к ним доступ со стороны метапрограммиста и прикладного программиста; он следит также за правильным подбором параметров кодогенерации (тип процессора, модель памяти, динамические проверки и т.п.) и за наиболее эффективным распределением процедур приложения по различным модулям. Когда приложение готово и работает, может потребоваться участие в технологической цепочке и дизайнера отчетов, который, пользуясь специальным генератором (Report Writer), создает на основании схемы БД требуемое многообразие выходных форм. Дизайнер отчетов совсем не обязательно должен работать в одной команде с остальными разработчиками. Он может быть даже в той организации, которая приобрела данное приложение На этом, пожалуй, стоит остановиться, хотя специализацию можно было бы расширять и дальше: так, к примеру, в паре с прикладным программистом в серьезных проектах обязательно должен работать человек, отвечающий за качественный внешний вид интерфейса (дизайнер окон).

Clarion не из разряда систем типа "нажми кнопку – и получишь результат". Так в жизни не бывает (если, конечно, конечный результат интересует еще кого-то помимо самого разработчика). И заблуждение многих программистов, работающих с Clarion, на мой взгляд, состоит в том, что они надеются, не предпринимая шагов, выходящих за пределы накатанной технологической цепочки, получить полноценное приложение. Безусловно, очень трудно провести грань между макетом и настоящим приложением. Все зависит от тех требований, которые вы (или ваш заказчик) предъявляете к конечной системе. Так что важное достоинство Clarion, быстрое макетирование, часто оборачивается против него, поскольку дальнейшие этапы технологии – превращение макета в работоспособную систему – падают на плечи разработчиков, и каждая команда создает свое know-how, приспособленное для решения своих конкретных задач в рамках своего конкретного коллектива.

Подведем некоторые итоги. Все то, о чем говорилось в этом разделе, наиболее полно реализовано в Clarion for Windows 1.5. Хотя практически все элементы технологии можно найти даже в CPD 2.1! Мечта программистов не одного поколения – иметь выразительные средства для архивации программных идей – в какой-то степени воплотилась в технологии Clarion. Конечно, язык шаблонов – это далеко не эсперанто алгоритмов, но он позволяет организовать мультиязыковые проекты, обеспечить кросс-разработку систем для других компьютерных платформ Язык дает возможность строить визуальный интерфейс с разработчиком. С его помощью, например, каждый желающий может создать свои собственные шаблоны, в которых закрепляются различные схемы работы со всевозможными API-интерфейсами, в частности, с Win32 API. Причем, если вы того хотите, языка Clarion в результирующем тексте не будет и в помине!

Технология Clarion сделала за последние годы довольно заметные шаги в направлении архитектуры "клиент-сервер". Вообще говоря, работе с базами данных Clarion уделяет особенно пристальное внимание. В технологии можно выделить три уровня работы с базами данных: автономный, транзакционный и клиент-серверный. Первые два наиболее обкатаны и за счет специального механизма драйверов БД позволяют быстро перенастроить приложение на поддержку разных форматов хранения реляционных таблиц (xBase, Paradox, Clipper, FoxPro, BASIC, ASCII, Clarion, TopSpeed, Btrieve). Основными форматами при автономной работе являются Clarion и TopSpeed, при транзакционной – Btrieve. За счет драйвера ODBC в Windows-реализации технология Clarion предоставляет доступ к немалому числу других форматов хранения, что в некоторых случаях просто необходимо. В отношении архитектуры "клиент-сервер" на сегодня есть, по крайней мере, две связки, в которых Clarion выступает в роли организатора клиентской части: это DB2/400 и Oracle. Связь с серверной частью вынесена на уровень абстрактных драйверов БД, и ее реализация почти полностью оставлена за рамками технологии. Помимо штатных драйверов, Clarion-системы предусматривают и специальные инструментарии для создания новых драйверов БД и для органичной их интеграции в технологию (Non-SQL Driver Kit, SQL Driver Kit) Возможно, что столь необычный подход имеет определенный смысл: ведь для тех, кто захочет использовать, скажем, схему распределенных агентов, открыты все двери. Вы вольны встраивать свои собственные механизмы с соответствующей диспетчеризацией и самой изощренной схемой оптимизации запросов в новые самодельные драйверы БД.

Clarion, конечно же, не свободен от недостатков как на уровне самой технологии, так и в плане ее реализации. Четкая поддержка коллективной разработки, поддержка OLE 2.0, возможность создавать собственные OCX-элементы и гораздо полнее использовать мультипоточность Windows 95 и Windows NT появятся только этой весной в новой версии CW 2.0. В отношении поддержки технологии – как на уровне базовой системы, так и в плане целевых приложений – речь об OS/2, Unix, Mac OS и других платформах пока не идет Довольно скромным выглядит количество поддерживаемых SQL-серверов. Все это говорит не в пользу CW 1.5.

Что же касается временных и пространственных характеристик реализации технологии в среде Windows, то они впечатляют. 5700 строк кода на языке Clarion генерируется и компонуется в ЕХЕ-файл за 90 секунд на 486DX2/66! Общий размер инструментальной среды со всеми библиотеками около 19 Мбайт. Типичный состав большинства приложений: файл ЕХЕ + 1-2 DLL (ядро и драйвер БД), все можно упаковать в один ЕХЕ-файл. Общий размер типичного приложения: 1-2 дискеты по 1,44 Мбайт.

Перспективы технологии Clarion выглядят вполне солидно. Помимо обычной доводки инструментальной среды CW и совершенствования средств доступа к базам данным, фирма TopSpeed обладает богатым потенциалом в плане создания беспрецедентной мультиязыковой среды, опирающейся на технологию БД и на мощный аппарат визуальных шаблонов. 32-разрядные TopSpeed-компиляторы Modula-2, C/C++ и Pascal были закончены еще в 1993 году, но на рынке из-за нервотрепки с Clarion пока не появились. Вполне вероятно, что вскоре мы увидим единую Clarion-среду кросс-разработки для DOS и Windows (на 16 и 32 разряда). Вне всякого сомнения, инструментальная система все в большей степени будет насыщаться средствами контроля версий и поддержки сетевой коллективной разработки. Раскрытие в CW 1.5 внутреннего формата хранения репози-тария и словаря данных с взаимным автоматическим преобразованием в текстовый формат создало необходимые предпосылки для полного контроля над технологией со стороны разработчиков Будущее Clarion, особенно при учете последних работ исследовательских центров Microsoft по интенциональному программированию [Sim95], на мой взгляд, связано прежде всего с развитием наиболее ценной стороны технологии – механизма визуальных шаблонов.

Легенда об охотничьем рожке и пастушьей флейте

Clarion – это больше, чем технология. Это почти религия А поэтому давайте ненадолго перенесемся в античный мир – куда, к сожалению, не столь уж часто обращают свой взор наши с вами современники. Там мы найдем немало интересных параллелей. Заранее оговорюсь, что в освещении сцен из греческой мифологии я дал небольшую волю своему воображению, однако с точки зрения имен и канонического изложения событий здесь все верно.

Как гласит предание, когда-то на земле великой Эллады жил бесстрашный охотник по имени Актеон. Этот юноша был сыном Автонои и Аристея, внуком Аполлона и Кирены. Искусство охоты ему передал не кто иной, как знаменитый кентавр Хирон. Однажды Актеон вместе со своими гончими пытался настичь красавца-оленя. Но отстал и выбился из сил. Уже давно затих лай собак, а усталый юноша все шел и шел и вскоре оказался на берегу реки Осторожно раздвинув прибрежные заросли, он замер от изумления В двух шагах перед ним стояла лесная красавица Жемчужные капли воды медленно и величаво катились по ее обнаженному стану. Длинные волосы мягко рассыпались по хрупким плечам и лишь подчеркивали ее ослепительную наготу. Как завороженный, он смотрел на эту богиню. То и впрямь была богиня – богиня охоты Артемида, дочь Зевса и Лето, сестра Аполлона. Она его узнала и попросила позвать своих собак. Лесную тишину нарушил громкий, призывный звук охотничьего рожка. Бедный юноша! Он не мог знать, что в этом очаровательном создании скрывается злобная и завистливая натура. Артемида давно уже невзлюбила Актеона за охотничьи успехи, затмившие ее славу. А теперь еще этот наглец посмел оскорбить ее своим нескромным взглядом В наказание он был превращен в красавца-оленя. И, о горе! Его гончие не признали в лесном великане своего хозяина. Они растерзали бедного юношу на глазах коварной Артемиды. Так что лишь упавший на тропинку рожок теперь напоминал о некогда славном охотнике Актеоне.

Прошло много лет. В священной Аркадии в семье нимфы Дриопы и прославленного Гермеса родился сын Дриопа ужаснулась, увидя сына с бородой, с козлиными копытами и рогами. Однако Гермеса и других богов вид младенца только развеселил. А потому они нарекли его Пан, что означает "понравившийся всем". Так появился на свет защитник пастухов и скотоводов, бог лесов и полей, которого философы античного мира называли божеством, все объединяющим

Как-то раз неподалеку от того злополучного места, где погиб Актеон, Пан повстречал прекрасную лесную нимфу-гамадриаду по имени Сиринга и безумно в нее влюбился. На его беду Сиринга свято почитала Артемиду: она дала ей обет целомудрия. Так что несчастному Пану не суждено было покорить сердце чудесной нимфы, да и как такой уродец мог добиться ее любви? Испугавшись, Сиринга бросилась бежать. Тропинка привела ее на берег той самой реки Ладон, где когда-то стояли Актеон и Артемида Она упала на песок, моля о помощи своих сестер-наяд И речные нимфы на глазах Пана превратили Сирингу в стебельки камыша. Теплый вечерний ветер согревал их своим нежным дыханием. А обезумевший от горя Пан, как завороженный, слушал жалобные стоны сухого камыша. То была дивная прощальная песнь Сиринги Покоренный этими чарующими звуками, Пан срезал на память о неприступной лесной нимфе семь камышовых трубочек, соединил их воском и сделал пастушью флейту, которую назвал Сиринга.

Шли годы. Немало славных дел совершил Пан. Он помог Зевсу в борьбе с титанами, не раз и не два выручал пастухов и охотников, наконец, спас греков в знаменитой битве при Марафоне, нагнав ужас на жестоких воинов-персов. С тех пор и возникло слово "паника".

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

Теперь-то вам наверняка понятно, почему у этой статьи столь странное название. И дело не только в разном звучании этих редких инструментов. Что бы там ни говорили, Clarion на заре своего становления был скорее охотником, чьей добычей стал не один разработчик. Сейчас же ему больше подходит роль пастуха, который, отгоняя назойливых насекомых, спокойно и без ненужного героизма выполняет свою работу, принося немалую пользу людям.

Где получить дополнительную информацию

Фирма "Арсис" – дистрибьютор TopSpeed Corp. на рынке стран СНГ

тел.: (095) 530-2242 факс: (095) 535-8401

E-mail: info@clanon.msk.su FidoNet: 1:5020/319.4

WWW: www.topspeed.com, FTP: ftp.elvis.ru (mailserv@elvis.ru)

BBS: (095) 932-8465 (White Bear, 17)

Литература

[Бар95] Брюс Баррингтон. Истоки языка Clarion/Дехнология программирования, 1995, Т.1, No.1, с. 187-194.

[Гал95] Евгений Галочкин. История Clarion Software Corporation и ее продуктов//С!апоп Magazine, 1995, No 1, с. 19-22.

[Рам96] Дмитрий Рамодин. Призывный звук рожка//"КомпьютерПресс", 1996, No 3.

[Bar95] Bruce Barnngton. Software Manufacturmg^opSpeed Developer Newsletter, 1995, February.

[Ber95] K.J.Bernstein. Can you hear the Clarion call?//Wmdows Ti Journal, 1995, September.

[Bob95] Craig Bobchm. Clarion's Windows Version Rings Clear//Data Based Advisor, 1995, February.

[Cof95a] Peter Coffee. TopSpeed development tool yields fast, engaging database apphcations//PC Week, 1995, June 26.

[Cof95b] Peter Coffee. Clarion: A turbocharged 18-wheeler//PC Week, 1995, November 13.

[Fas95] Will Fastie. Clarion for Wmdows//PC Techniques, 1995, June/July.

[Ful95] Arthur Fuller. Clarion for Windows 1.001//DBMS, 1995, July

[Hel95] Martin Heller Pick a database that runs on its records//Windows Magazine, 1995, August.

[Pet95] Nicholas Petreley. Clarion top development tool to do the job right; an end to Wm95 in sight?//lnfoWorid, 1995, August 14.

[Sim95] Charles Simonyi. The Death of Computer Languages. The Birth of Intentional Programmmg//Microsoft Research, Technical Report No.TR-95-52,1995.

 

Кто ж вступился за Пифона?

Кто разбил твой истукан?

Ты, соперник Аполлона,

Бельведерский Митрофан!

 – тихонько бормотал присущий "Компьютерре" Дух Противоречия, постукивая в такт по отопительной трубе. Наконец он очнулся от дум и отстучал следующий комментарий.

Итак, Clarion – орудие тех, кто не на словах, а на деле занимается вопросами разработки сложных информационных систем. Как они все любят грозные заявления... Кто не верит в Clarion, тот болтун или шпион...

Но не убедил меня автор, нет, не убил! Возьмите любую фразу, например насчет "быстрого макетироования", и прикиньте, сколько названий можно подставить в нее вместо Clarion. Если на то пошло, все то же самое классики делали на Си. Даже "языков шаблонов" в UNIX было меряно-немеряно, это в DOS дошел один только СРР. Согласен, классики работали вручную, но мыслили так же. Да ведь не обязательно доводить технологию до совершенства, чтобы понять границы ее возможностей. Стенку лучше обходить до того, как ударишься об нее лбом.

А что в итоге? Нажать на кнопку и получить результат все равно нельзя. Классы недоношенные... виноват, замороженные. Отставание Clarion от систем, пользующихся коммерческим успехом, не может скрыть даже его пламенный поклонник. Строить собственные изощренные схемы оптимизации запросов лично я врагу бы не пожелал. Вот разве что места на диске Clarion мало занимает.

И потом, этот бред величия... Что такое Овидий, а что TopSpeed? Интересно, что о нас сказали бы потомки, если бы от всего написанного современными людьми о компьютерах остался бы только один исходный текст программы на Clarion?

 

Об авторе

Руслан Богатырев – главный редактор журнала "Технология программирования", E-mail: ruslan@irdis.msk.su.

________________

* В переводе с английского "clarion" буквально означает "призывный звук рожка".

 


1995 | 1996 | 1997 | 1998 | 1999 | 2000 | 2001 | 2002 | 2003 | 2004 | Оглавление текущего номера /137, 1996 г./ | Бонус | Поиск  

© 2004, Издательский дом «Компьютерра» | http://www.computerra.ru
Телефон редакции: (095) 232-22-61
E-mail редакции: inform@computerra.ru