Re: мнение о Delphi
От: Gregory_krovosos  
Дата: 19.04.04 15:15
Оценка:
Почитал и решил высказать свое мнение. В настоящее время я разрабатываю систему интернет-трейдинга в финансовой компании, проекту уже 4 года. Интерфейсная часть написана на Delphi, есть также некоторое кол-во библиотек и подпроектов на C++.

Я считаю, что если есть необходимость создать Windows-приложение, в котором будет много формочек и нет ограничений (серьезных) на размер программы и на навыки программистов, то Delphi — отличный выбор, потому что:
1) VCL — достаточно продуманная и гибкая обертка для Windows GUI, которая берет на себя огромную часть рутины и позволяет программировать на высоком уровне абстракций (Button1.Caption := 'Ляля' и т.д.)
2) если возможностей VCL не хватает — можно переопределить оконную процедуру и обрабатывать самостоятельно специфические Windows-сообщения или использовать методы со свойством message.
3) Delphi — _модульная_ система программирования. Поэтому компиляция после исправления пары-тройки форм на моем компьютере занимает _ПАРУ СЕКУНД_.
Я очень ценю подобную скорость отклика, так как таков мой стиль программирования — быстро вносить изменения и смотреть что происходит.
С++ — не модульный язык. Даже включив всякие оптимизации компилирования, я очень долго __жду__ Это плохо.
А Дельфи замечательно переваривает большие проекты (скажем, сейчас у меня в проекте 118 юнитов из них 58 форм) — _никаких_ _тормозов_. Это замечательно.
4) Удобная среда, есть все что нужно и работает быстро.
5) Производимый компилятором код на мой взгляд очень неплох. Я имею в виду быстродействие там где оно нужно.



Разумеется, у Delphi есть недостатки. Самый главный ИМХО — "плохие" библиотеки. При работе с TCP/IP, потоками и пр. самое лучшее — написать свои собственные библиотеки на базе Win32 API. Скажем, самый главный компонент многозвенных приложений TClientDataSet "теряет" память. Включенные в поставку компоненты для поддержки интернет-протоколов — это @#$@$#@$#! Далее в Delphi нет STL и даже вообщем-то аналогов. Например, я до сих пор не нашел аналога map в стандартной поставке Delphi (может быть гуру подскажут?) и мне пришлось написать на C++ DLL-ку и свой модифицированный TStringList, где поиск ключа идет со скоростью O(log n), а не простым перебором (каковой можно наблюдать в исходных текстах Delphi ).

Далее, серьезный недостаток Delphi Pascal — отсутствие стековых объектов, все объекты — в дин. памяти и соот-но создание объекта и
его уничтожение приходится делать собственноручно. Т.е. C++:

{
SOME_STACK stack(some_parameter);
stack.push(123);
...
}
// stack уже автоматически уничтожен и его деструктор вызван


Delphi:

stack := TSomeStack.Create(some_parameter);
try
stack.push(123);
...
finally
stack.Free;
end;

Здесь C++ абсолютный лидер по лаконичности записи.


Шаблоны бы не помешали, но вообще говоря это не must have.


Вообщем, надеюсь главная мысль ясна. Дельфи — замечательная "обертка" для проекта под Windows, он легко "тянет" и маленькие, и большие проекты. А еще лучше он становится, если его доработать своими собственными библиотеками (хоть на C++, хоть на чем еще . И под него удобно делать и ActiveX-ы и еще много чего другого.

PS Один из отцов-основателей Delphi ушел в Microsoft разрабатывать C#, так что нетрудно заметить как отличные идеи в Delphi (скажем as и is) переползли в C#.

PPS К сожалению, Delphi конец. Мы получим еше одно обновление Delphi 7.1, после чего будет развиваться только Delphi .NET.
Король умер, да здравствует король.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.