СТАТЬЯ
20.03.01

CTD и Delphi: какое средство разработки вам больше подходит?

С. А. Большаков


Начиная эту статью, заранее предвижу возражения и контраргументы оппонентов, но все-таки решился изложить свои доводы. Основной целью данной статьи является попытка показать, что средства, подобные Centura Team Developer (CTD), в довольно большом числе случаев при создании информационных бизнес-систем разного класса являются более предпочтительными, чем, например, Delphi. Пусть нетерпеливый и несговорчивый читатель найдет в себе силы, терпение и время для того, чтобы дочитать данный материал до конца и заочно со мной поспорить (а возможно, и согласиться с моими доводами). Желаю всем в этом успеха.

Не сегодня, а достаточно давно (при появлении первых алгоритмических языков), начались споры о предпочтительности того или иного языка, той или иной системы программирования. Жаркие диспуты можно было услышать и в студенческой аудитории, и в среде профессиональных программистов. Что лучше - АЛГОЛ или ФОРТРАН, PL/1 или СИ? И так далее. Сегодня эти споры переносятся на сравнение языков СИ, Паскаль, JAVA и других. У этих споров, конечно, несмотря на субъективность их по сути, были и есть объективные основания. Субъективность основывается на привычке, профессиональном освоении средств и конечном смысле "привязанности" (или даже "любви"). Так как программист, изучая универсальный язык программирования, тратит на это достаточно много времени, а освоение нового языка, и даже привыкание к нему, стоит больших затрат и может привести к "забыванию" возможностей первого. В связи с этим споры о предпочтительности часто выглядят как разговор "немого с глухим".

"Осуждают то, чего не понимают" – утверждал Квинтилиан Марк Фабий (ок.35-96 гг.) - оратор и теоретик ораторского искусства в Древнем Риме. И именно нехватка знаний и опыта использования универсальных языков, защищаемых оппонентом спора, объективно приводит к порой неразрешимой ситуации. Кроме того, каждый универсальный язык программирования позволяет сделать все или почти все для данного уровня развития информационных технологий. Нужно отметит еще один объективный фактор, который, на мой взгляд, пока недостаточно учитывается. А заключается он в следующем. Подозреваю, что у программистов существует некоторый стереотип восприятия языков (это все-таки средство общения, хотя и с компьютером), зависящий от их характера, темперамента, опыта работы, психологии, в конечном счете, определяющий привязанности. Не последнюю роль здесь играют и успешно завершенные разработки с использованием данных средств программирования, которые, как собственные "дети" постоянно напоминают о себе в сознании и памяти.

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

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

Для сравнения мы выбрали распространенные программные продукты Centura Team Developer (CTD) и Borland Delphi (BD). С почти таким же успехом мы могли бы сравнивать Oracle Developer (Power Builder и др.) и Borland CPP Builder (MS Visual C и др.), хотя у каждого из программных средств читатель наверняка найдет неоспоримые преимущества по сравнению с другими продуктами. Но на основе информации, изложенной ниже, наверняка станет ясно, почему выбор пал именно на эти продукты. Рассмотрим сравнение хотя бы по некоторым из перечисленных критериев.

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

BD базируется на универсальном языке объектно-ориентированном ПАСКАЛе, который позволяет создавать системы практически в любой области. CTD, в свою очередь, базируется на языке SAL (Scalable Application Language), который, несмотря на свою универсальность и близость к языку СИ, является все-таки специализированным языком создания информационных систем. В этот язык введены стандартные объекты и операторы, ориентированные на решения поставленных задач. Специализированные языки и специализированные системы программирования по определению всегда эффективнее применять для своей области. С этих позиций использование CTD для построения информационных систем можно считать предпочтительным.

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

Конечно, если не обращать внимания на трудоемкость, стоимость и сроки разработки, то предпочтительнее было опираться на специалистов последней группы, но, во-первых, их не так много (хотя наша страна богата талантами), и, во-вторых, нельзя пренебрегать все-таки трудоемкостью и стоимостью. Существует еще много причин, по которым ориентироваться только на специалистов третьей группы невозможно, но я не буду на них останавливаться. Для этих специалистов, кстати, без особых опасений, можно предложить и BD и MS VC и другие сверхуниверсальные средства программирования, но все-таки основной группой для разработки профессиональных приложений является вторая. При достаточном уровне профессионализма они способны создавать информационные системы в большом количестве, в соответствии с быстро растущими информационными запросами общества. Для этой группы и предназначены средства типа CTD, которые легко могут быть освоены и обеспечивают относительно невысокую трудоемкость создания систем и их живучесть. Отмечу также, что в CTD есть специальный набор инструментов и для первой группы программистов (AX, Wizard, Quick Object). Эти средства можно использовать и для макетирования приложений. Не обойдены вниманием в CTD и специалисты третьей группы, так как предусмотрены все механизмы объектного подхода, возможности создания собственных компонент на основе CTD и даже других систем (СИ), что обеспечивается подключением любых библиотек и наличием CDK – Component Developer Kit.

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

В CTD представлена уникальная, в других системах программирования такой нет, модель представления программного текста (Outline). Я называю эту модель объемным представлением программы. Эта модель базируется на принципах структурного программирования и обеспечивает быстрый доступ к объектам и методам программы, легкую ориентацию в сложных текстах и целостное представление программы. По своей сути эта модель похожа на структуру документа в MS Word. К ней достаточно быстро привыкаешь и начинаешь применять на практике все ее преимущества. Введенная структуризация текста программы не мешает программисту, помогает избежать лишних ошибок и позволяет удобно манипулировать программными составляющими. Во всех других системах, включая и BD, мы имеем в наличии плоское представление программы, как совокупности исходных текстов, что затрудняет поиск нужного фрагмента и целостное восприятие программы. Чтобы меня правильно поняли, отмечу, что модули и библиотеки в CTD тоже есть. Здесь тоже, в представлении программы, найдена "золотая середина" между сложностью программы и ее представлением.

Другой особенностью CTD является наглядная и простая система стандартных классов, которые по сути дела скрыты от начального пользователя. При этом не теряются возможности использования объектов программы и их настройки. В BD наоборот, даже для начального использования нужно фактически изучить эти все классы, что является фактически изучением нескольких новых языков программирования, со своей логикой, операциями, синтаксисом и семантикой, которая от версии к версии может изменяться. Даже для программистов второй группы такое изучение может стать камнем преткновения. Опять же отмечу, что в CTD существуют возможности описания собственных классов, которые разбиты на типы и имеют свои особенности при построении. Здесь также найден компромисс ("золотая середина") для реализации механизмов объектного программирования. Если с этих позиций сравнивать наши продукты, то CTD опять же окажется в выигрыше.

Приближаясь к завершению, отмечу также, что в CTD более развиты средства взаимодействия со всеми известными и распространенными SQL СУБД, для некоторых их них реализованы специальные роутеры, что позволяет без снижения эффективности, какое обычно имеет место при использовании ODBC, получать доступ к данным. В BD такие возможности реализованы пока только с СУБД Interbase и делаются для новых версий СУБД Oracle.

Помимо всех перечисленных особенностей хочу выделить и встроенные CASE средства в CTD, реализованные в Team Object Manager, который обеспечивает коллективную разработку программ, проектирование систем и сопровождение версий программных продуктов. Подробнее об этих возможностях смотрите в статье на сайте.

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

Подводя итоги, можно сказать, что в области построения информационных бизнес систем Centura Team Developer имеет ряд неоспоримых преимуществ по сравнению с Borland Delphi. Они заключаются, если коротко, в следующем: специализация в области информационных систем, учет специфики и групп программистов, ориентация на коллективную разработку систем, объемное представление программ, широкий спектр поддерживаемых СУБД, меньшая трудоемкость обучения и программирования, интеграция современных WEB технологий для взаимодействия с БД.

Borland Delphi в свою очередь опирается на более распространенный язык объектный Паскаль, имеет широкую распространенность, высокую универсальность и ориентацию на программистов высокой квалификации. Если речь идет не о создании информационных систем, то BD (или системы, базирующиеся на языке СИ) могут оказаться предпочтительными. Если Вам необходимо создавать сложные информационные системы, то предпочтительнее выбрать Centura Team Developer.

В завершении данной статьи приведу некоторую общую характеристику свойств CTD, собранных воедино. Это позволит создать целостный взгляд на систему (при желании этот раздел можно и опустить при чтении). В целом возможности CTD следующие:

  1. Centura Team Developer: обеспечивает коллективную разработку, отладку и сопровождение информационных бизнес систем, ориентированных на работу в среде Windows (всех версий) и на работу с различными СУБД, популярными в настоящее время (SQLBase, Oracle, DB2, MS SQL Server, Sybase, DB2, Informix и другими). Связь с СУБД обеспечивается как посредством специальных интерфейсов (Routers - Connections) или посредством ODBC.
  2. Centura Team Developer: является комплексным, профессиональным программным продуктом, простым для освоения и обслуживания, обладающим открытой архитектурой, приемлемой стоимостью по сравнению с системами подобного класса. Комплексность обеспечивается наличием составляющих компонент, таких как: управление базами данных (SQLTalk, SQLConsole), обеспечение механизмов формирования выходных документов (RB), а также наличие унифицированных средств, ориентированных на работу с БД (DBExplorer).
  3. Centura Team Developer: обеспечивает накопление результатов предыдущих разработок в виде библиотек и шаблонов (APL и Team Object Manager); обеспечивает быстрое макетирование приложений на основе созданных баз данных (QuickObject и Wizard); является наилучшим средством для освоения визуального программирования и языков уровня 4GL.
  4. Centura Team Developer: поддерживает программирование на объектно-ориентированном языке SAL (Scalable Application Language), который по своим свойствам близок к языку СИ; использует стандартный для Windows API механизм обмена сообщениями, который органично встраивается в алгоритмы управления приложением, обеспечивает построение собственных классов, вызов функций из стандартных и собственных Windows DLL; дает возможность построения собственных DLL и библиотек APL, для модульного программирования.
  5. Centura Team Developer: обеспечивает работу в удобном дизайнере; предлагает удобную уникальную (объемную) форму представления сложных программ в структурированном виде (Outline - структура), в которой программист отказывается от операторных скобок и целостно воспринимает приложение; предлагает удобные механизмы генерации отчетов на основе шаблонов, причем программа имеет возможность вмешиваться в этот процесс генерации на основе специального протокола.
  6. Centura Team Developer: имеет удобную справочную систему и хорошо выверенную документацию; обладает открытой архитектурой и возможностью наращивания библиотек объектов (в частности, используются библиотеки QuickObject и VisualToolchest и CDK); обладает всем необходимым набором средств для сопровождения БД и имеет интерфейс с распространенным продуктом ERwin.
  7. Centura Team Developer: обеспечивает поддержку современных WEB-технологий, построение WEB-приложений, обслуживающих БД с удаленного Интернет-броузера, включает стандарты ASP, XML, WML (CTD2001).
Дополнительная информация

Дополнительную информацию Вы можете получить в компании Interface Ltd.

Обсудить на форуме Centura Software
Отправить ссылку на страницу по e-mail


Interface Ltd.

Ваши замечания и предложения отправляйте автору
По техническим вопросам обращайтесь к вебмастеру
Документ опубликован: 20.03.01