Вообще спор программистов на Delphi/Visual Basic и C++ можно отнести к разряду споров физиков и лириков. Но все таки в стороне оставаться не хочется, поэтому выскажу свое мнение.

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

С++

Если требуется обеспечить хорошую скорость работы приложения и экономию ресурсов памяти и процессора традиционно считается, что лучше использовать C++. Однако, в последнее время разница в скорости работы программ, собранных различными компиляторами, становится все менее и менее заметной. Почему? Потому что большинство сред разработки имеет встроенный конвертор кода в ассемблер, а он – как ни крути самый быстрый. Delphi 2007 например имеет опцию работы компилятора {$PUREPASCAL}. Когда она включена – компилятор компилирует классический паскалевский код, когда выключена – используются функции и процедуры, написанные в ассемблере. По умолчанию, кстати, она выключена.

Единственное приемущество C++ – мощная модель работы с указателями. В общем случае это очень полезно, так как переменные в памяти не дублируются. Но, если проект сложный – всегда приводит к ошибками доступа к памяти.

В качестве очевидного приемущества C++ зачастую называют его модел работы с классами и шаблонами. Но, имхо, весь функционал C++ реализуем и в любом другом языке программирования. Да, в С++ можно например переопределить действие операторов + – / *, правда зачем, можно просто написать доп. функцию. Что же касается шаблонов функций и процедур С++, которые очень часто ставятся в достоинство – на это в Delphi есть вариантные типы. То есть мы просто не указываем тип переменной в Delphi, по сути – та же шаблонная функция.

Delphi

Противоположный случай – когда требуется разработать ПО в максимально сжатые сроки и обеспечить хороший рефакторинг (читабельность, модифицируемость, удобство и оптимизацию) кода приложения. Тут Delphi просто нет равных. Код хорошо структурируется, названия всех функций по сути есть сокращения английских слов (IntToStr – целое в строку; Now – возвращает дату и время сейчас; UpperCase – приводит к верхнему регистру и тд), хорошая модульность и видимость кода – все это способствует скорости разработки, а также позволяет производить ее в командном режиме более эффективно.

Еще одно очевидное приемущество Delphi – компоненты, число которых исчисляется миллионами. В Delphi есть возможность скомпилировать участок кода и предоставить его в свободное пользование как компонент. Что получается? Гигантское количество энтузиастов и организаций предоставляют в свободное пользование готовые решения. Хочешь фтп клиент? Нет вопросов – скачал компонент, кинул на форму и вуаля! Дело 2ух кликов.

Более того, большое комьюнити Delphi кодеров (в котором больше непрофессионалов в силу легкости языка) порождает в интернете большое количество справочной информации в самых разных областях программирования.

Итак, подведем итоги:

Характеристика С++ Delphi
Сложность изучения большая (-) маленькая (+)
Количество специалистов-профессионалов много (+) мало (-)
Восприятие кода плохое (-) хорошее (+)
Рефакторинг средний (+-) хороший (+)
Скорость работы приложения отличная (++) хорошая (+)
Скорость разработки решения маленькая (-) очень высокая (++)
Наличие документации много (+) MSDN не содержит примеров кода на pascal (+-)
Необходимость в будущем, ввиду конкуренции с языками C#,VB, Java маленькая (–) средняя (-)
Итого 5+/5- 7+/3-

Связанные статьи: