Delphi или Visual C++ - вот в чем вопрос

Delphi или Visual C++ - вот в чем вопрос.

Сергей Трофимов

На днях я получил письмо с таким вопросом:

>Вы можете рассказать чем отличается DELFI от VISUAL C++.

>В чем недостатки и преимущества VISUAL C++, и какую программу из этих Вы посоветуете изучать.

И решил, что мое мнение, возможно, будет интересно не только автору письма. Конечно, это мое личное мнение и я могу в чем-то ошибаться, если Выхотите высказаться по этому вопросу, добро пожаловать на Форум.

Сразу начну со второй части вопроса. На него ответ можно было бы предугадать заглянув на сайт. Я не большой фанат Microsoft, но работаю на их продукте и считаю, что только за одно то, что везде стоят программы от Билла Г. можно выбрать именно VC++. Вспомните, что на Microsoft Visual C++ можно писать для MSOffice, писать обработчики баз MSAccess, легко работать с Windows NT, MS SQL Server.Так, что я больше склоняюсь к VC++.

По работе мне приходилось писать DLL и FLL (Foxpro Link Library) для Microsoft Visual Foxpro и это делается достаточно легко, причем даже в Help для Foxpro написано по шагам как делать библиотеки именно на VC++. Книг по VC++ предостаточно - учись - не хочу. Да и программисты требуются, можно заглянуть на www.job.ru. Конечно,  любой программист, будет востребован, если уровень его будет cравнительно высоким.

С точки зрения создания программ -разница между Borland C++ Builder(если изучать, то его, а не Delphi, как более продвинутую систему) и VC++ просто огромна. Например, разный подход к структуре приложений. VC++ каркасная структура, а Builder - компонентная. 

При каркасном подходе изначально приложение создается на основе каркаса и программист в него добавляет функциональность. При этом необходимо хорошо представлять структуру приложения.

Компонентный - когда приложение изначально создается на основе одного каркаса, который не дается программисту для изменения. А вся функциональность создается путем добавления и изменения программных компонентов.

Я бы сказал, что в VC++ возможностей больше для профессионала, но Builder легче для начинающего. Может быть он более понятен интуитивно, если не слишком обременять себя чтением литературы.

У Microsoft аналогичными возможностями обладает Visual Basic (кстати, используется для программирования MSOffice, рекомендую, как более простой в изучении, но не такой универсальный как VC++).

Опять же для каких целей применять среду программирования. Как писал Дмитрий Турецкий (ведущий сайта www.listsoft.ru) если человек пишет на С++ программу печати платежный поручений и языка при этом раньше не изучал, то это, по крайней мере, вызывает удивление. Для того, чтобы написать такую же программу на Visual Basic понадобиться значительно меньше труда на изучение собственно языка. Однако, я не во всем соглашусь с Дмитрием в этом примере. Если программа не одна, а входит в информационную систему, то написать ее может быть проще и на Basic, но сопровождать - значительно проще на С++ с его объектно-ориентированным подходом и строгим контролем данных. Но если вы пишете конкретную задачу, то можно использовать язык оптимизированный для создания такого типа задач. Правда, с появлением DLL и OLE и ActiveX границы между языками стираются. Ведь всегда можно воспользоваться библиотекой даже не зная на каком языке она была написана. Но все-таки, если есть специализированный инструмент то лучше воспользоваться им. Обычно, это RAD средства с наборами готовых объектов для конкретной предметной области. 

Другое дело- выбор между "одноклассниками" такими как Builder и VC++ здесь больше вопрос привычки, если уже изучена какая-то из систем. В свое время я начинал с Borland C++ для DOS. Но потом перешел на VC++, благо для программирования под Windows там изначально были наработки Microsoft, которые усиленно проталкивались в массы программистов, эта легкость, с которой создавались графические элементы в VC++ после работы на TurboVision меня просто подкупили.

Delphi вырос из паскаля, за это его и любят паскалисты. Builder - это смесь Delphi и BC++, а VC++ изначально рос сам по себе, еще и поэтому он мне нравится больше. В начале своей карьеры я написал несколько простых программ на паскале, но С++ стройнее и мне более симпатичен.

У Borland лучше дело с описаниями и HELP. Но VC++, как мне кажется,знает большее число людей. Я имею ввиду на профессиональной основе, хотя данные для таких выводов чисто субъективны кто подсчитает?

Глючность программ от Microsoft, вошла в историю, но, что действительно точно, так это то, что глюков в MsVC++ значительно меньше, чем в других продуктах Microsoft (FoxPro, например с которым я достаточно поработал). Не знаю как в Builder, на нем много не работал. 

Да и достать CD с Visual Studio проще, чем продукты Borland.

И самый наверное убийственный аргумент в пользу Microsoft так это поддержка VC++ таким CASE средством для разработки приложений как Rational Rose. Поддержка  именно VC++, позволяет по графическим диаграммам классов создавать исходный код проекта. По себе знаю, когда за тебя может создать код программа, хотя бы и просто шаблон для классов, то совершенно нет желания писать его руками.

Теперь я исхожу только из времени, затраченного на изучение. Если вы уже затратили несколько месяцев на работу, то жалко начинать все с начала и изучать еще один инструмент. Лучше знать один язык, но хорошо, чем иметь понятия о нескольких, без возможности написать что либо серьезное...

Конечно, разговор на тему какой язык программирования лучше, похож на вопрос какой иностранный язык изучать английский или немецкий. Конкретного ответа не даст никто. У каждого варианта есть свои плюсы и минусы. Я остановился на Microsoft Visual C++ чего и вам желаю.