Исторически сложилось так, что наш сайт уделяет
больше внимания продукту Borland, а именно Delphi. Сегодня мы исправим эту оплошность и поговорим о CBuilder. Это средство разработки предоставляет много возможностей, начисто отсутствующих в Delphi. Конечно же, CBuilder имеет и ряд минусов по сравнению со своим вышеупомянутым собратом. Сейчас мы разберем все эти вопросы подробнее.
Алексей Яковлевич Архангельский, доктор технических наук, профессор, академик Академии Информатизации, является автором целого ряда книг по Delphi и CBuilder. Он как никто другой разбирается в тонкостях этих двух систем. Именно к Алексею мы и обратились с нашими вопросами.
Х: Алексей, в своей работе Вы предпочитаете использовать Delphi или CBuilder? Как Вы считаете, что лучше?
А: Честно говоря, я предпочитаю Delphi. В современном виде Object Pascal может почти все, что и C++. Только шаблонов, увы, пока нет. Сам язык Pascal кажется мне более простым и естественным. Впрочем, студентам, изучавшим C, язык C++ кажется более естественным, чем Pascal. Так что это дело привычки. А если говорить о сравнительных достоинствах Delphi и CBuilder, то различие проявляется, прежде всего, в библиотеках. В C++ наработаны обширные стандартные библиотеки, так что за их счет язык более богат. То, что в C++ делается стандартными функциями, в Delphi приходится программировать руками. Особенно это проявляется при создании сложных многопоточных приложений. В противовес этому, программы на Delphi нередко эффективнее программ на CBuilder. Связано это, пожалуй, с тем, что в основе CBuilder лежит, все-таки, библиотека VCL Delphi. И разработчикам CBuilder приходится изощряться, чтобы втиснуть в C++ то, что является естественным в Pascal.
Х: Почему Вы отдали предпочтение RAD-средствам фирмы Borland, а, скажем, не такому популярному среди профессионалов MS Visual C++?
А: По-видимому, это получилось случайно. Отвечая на первый вопрос, я упомянул, что больше люблю Pascal. Поэтому, когда появился Delphi, меня очень увлекли его новые возможности. В свое время я на собственной шкуре испытал, что значит с нуля программировать разные кнопочки, менюшки и т.п. Так что Delphi меня пленил. Когда появился CBuilder, я, естественно, освоился и с ним. А знакомство с MS Visual C++ произошло позднее. Должен сказать, что идти от CBuilder к MS Visual C++ очень трудно. Все-таки в CBuilder все получается намного проще, особенно, если говорить о разработке интерфейса. Хотя я знаю о ряде задач, в которых Visual C++ дает эффективность на порядок большую, чем CBuilder. О причинах иногда недостаточной эффективности CBuilder говорилось частично в ответе на предыдущий вопрос. Я понимаю также немалые трудности, которые испытывает Borland, пытаясь постоянно отслеживать все новинки Microsoft. Это сложнейшая гонка. Уверен, Borland со многими задачами справилась бы лучше Microsoft. Но ничего не поделаешь - приходится подстраиваться под обстоятельства. А подстройка под чужую систему никогда не способствует эффективности. Кстати, не исключено, что я поддамся на уговоры издательства и напишу книгу по MS Visual C++. Вот тогда, погоняв различные задачи на обеих системах, смогу грамотно сравнить их.
Х: Сейчас все большую популярность набирает платформа .NET. Как Вы думаете, она перспективна? И почему Borland не торопится включить возможность разработки приложений под эту платформу в свои RAD-средства?
А: Нельзя сказать, что Borland не отреагировала на .NET. В Delphi 6 и CBuilder 6 есть уже много технологий, перекликающихся с .NET. Надо все-таки учесть, что .NET только появилась, да и то пока не в полном виде. Думаю, через год Borland всерьез состыкуется с ней. В перспективах же самой .NET не сомневаюсь.
Х: Какую версию CBuilder Вы считаете наиболее предпочтительной?
А: Все зависит от задач. Для простых приложений достаточно и CBuilder 4. Если отказываться от BDE (а это, возможно, надо делать - не поспевает BDE за новыми веяниями), то надо использовать CBuilder 5 с его компонентами ADO. А если создаются приложения для Интернет, то чем новее версия, тем лучше.
Х: Что Вы можете сказать об отличиях между пятой и шестой версиями CBuilder?
А: О различиях версий 5 и 6 я довольно подробно говорил в книге "Программирование в CBuilder 6". Это кроссплатформенные приложения (наверное, они пока не многих волнуют), ряд новых компонентов (правда, новый ActionManager и все с ним связанное дает, по-моему, не слишком много), множество (около 40) новых стандартных действий, новые технологии связи с базами данных и создания распределенных приложений (dbExpress, BizSnap, применение SOAP/XML), технология WebServises (кстати, возвращаясь к вопросу о .NET, - это ведь часть .NET). Если все это не требуется в работе конкретного пользователя, то можно ограничиться использованием CBuilder 5.
Х: Каковы перспективы развития языков программирования в целом и RAD-средств от Borland в частности?
А: На вопрос о перспективах отвечать не берусь. Возможно, это связано с .NET, но есть немало сомнений. Во всяком случае, уверен, что все новое Borland отследит. Возникающие время от времени слухи о тупике Delphi и CBuilder ни на чем не основаны. Последние версии этих систем показали, что, наоборот, Borland выходит на новый оперативный простор.
Х: Вы хотели бы сказать что-нибудь нашим читателям, только начинающим программировать на CBuilder&Delphi или уже программирующим с их помощью?
А: Во-первых, начинающим следует определиться, что им ближе: Delphi или CBuilder. Если человек не планирует создание каких-то сложных систем, то я бы рекомендовал выбрать Delphi. Если же задача - стать современным высококлассным программистом, то надо выбирать CBuilder. Тем, кто работает с CBuilder, я бы порекомендовал лучше изучить стандартные библиотеки и STL. Практика показывает, что очень многие не знают и не используют имеющихся в этих библиотеках возможностей. Кроме того, надо, конечно, осваивать Windows API. Я со своей стороны постараюсь в ближайшее время выпустить небольшие и дешевые книжки по библиотекам. Кроме того, соответствующие справки войдут в "Серию русских справок по CBuilder", распространяемую через Интернет. И в заключение желаю всем новых радостей и достижений в работе.
Х: Алексей, спасибо, что уделили нам время.