OpenGL в Delphi

       

Почему приложения Delphi имеют большой размер


Этот вопрос часто задают начинающие программисты при сравнении приложений, созданных в различных средах программирования. Действительно, минимальное приложение, созданное в различных версиях Delphi, может достигать от 170 до 290 Кбайт. Это очень большая цифра для операционной среды Windows, в компиляторах C++ она составляет порядка 40 Кбайт. Конечно, это не катастрофическая проблема, когда емкости накопителей измеряются гигабайтами, и средний пользователь, как правило, не обращает внимания на размер файла. Неудобства возникают, например, при распространении приложений по сети.
Использование пакетов значительно снимает остроту проблемы для масштабных проектов, но суммарный вес приложения и используемых пакетов все равно значителен.
Краткий ответ на вопрос, поставленный в заголовке раздела, состоит в том, что большой размер откомпилированных приложений является платой за невероятное удобство проектирования, предоставляемое Delphi. Архитектура среды программирования, RTTI, компонентный подход - все это превращает Delphi в поразительно мощный инструмент. С помощью Delphi легко написать приложения, в которых, например, динамически создаются интерфейсные элементы любого типа (класса).
Однако приложения среднего уровня не используют и не нуждаются в этих мощных возможностях. Часто ли вам встречались приложения, предлагающие пользователю перед вводом/выводом данных определиться, с помощью каких интерфейсных элементов будет осуществляться ввод или вывод, а затем разместить эти элементы на окне в удобных местах? И пользователи, и разработчики в таких средствах, как правило, не испытывают необходимости.
Однако откомпилированный модуль содержит в себе весь тот код, благодаря которому в Delphi так легко производить манипуляции со свойствами и методами объектов. К примеру, если просмотреть содержимое откомпилированного модуля, то мы встретим в нем фразы, имеющие к собственно операционной системе косвенное отношение, например, "OnKeyDown" или другие термины Delphi.
Дело здесь не в несовершенстве компилятора, компилятор Delphi оптимизирует код превосходно, дело в самой идеологии Delphi.
Очень часто после выяснения этого факта начинающие программисты задают вопрос, как избавиться от RTTI, от включения "ненужного" кода в исполняемые модули.
К сожалению, это сделать невозможно. Кардинально проблема решается только через отказ от использования библиотеки классов Delphi, т. e. программирование без VCL.


Содержание раздела