KOL

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

Перейти к: навигация, поиск
KOL
Тип Библиотека
Разработчик Владимир Кладов
Написана на Delphi
ОС Windows, Linux
Версия 2.88 (28 сентября 2008)
Лицензия Freeware
Сайт http://kolmck.net


KOL (Key Objects Library) — библиотека объектных типов для программирования в среде Delphi. Основная цель KOL — уменьшение размера конечной программы (Win32, GUI) в 5-10 раз по сравнению с тем, что дает библиотека VCL. Поддерживаются все 32-разрядные версии Delphi, начиная с Delphi 2 и заканчивая BDS 2009.

MCK — это набор зеркальных компонент, позволяющих разрабатывать проект на основе библиотеки KOL визуально. Компоненты MCK устанавливаются на палитру компонентов, работа с ними происходит так же, как это обычно делается в Delphi при визуальной разработке. В откомпилированном проекте визуальные компоненты замещаются своими невизуальными двойниками из KOL. Использование MCK сокращает размер исполнимой программы так же, как и при использовании KOL невизуально. Преимущество — визуальная разработка. Недостаток — зависимость от версии Delphi.

В настоящее время библиотеку KOL также можно использовать с компилятором Free Pascal.

Причина создания

Тема написания минимальных (по размеру) приложений на Delphi раскрыта достаточно широко. Любой новичок может легко найти информацию о том, как сделать свое приложение маленьким. Практически любой источник утверждает, что нужно отказаться от VCL и писать на чистом API (Application Programming Interface — Интерфейс Программирования Приложений). Довольно часто упоминается и возможность использовать вместо VCL другие библиотеки — ACL и KOL. Я же являюсь убежденным сторонником того, что на чистом API писать не нужно, кроме тех случаев, когда по-другому выполнить работу просто невозможно.

API-функции обычно достаточно универсальны, и число и типы параметров, которые используются в функциях API, располагают к появлению изрядного числа ошибок. (Например, вместо целого в некоторых случаях может на том же месте передаваться указатель на строку типа PChar). Код с использованием прямого вызова этих функций выглядит громоздким, неудобен для чтения и модификации. А, например, рисование на так называемом Device Context путем прямого обращения к методам Graphic Device Interface — это искусство более чем нетривиальное. Лучше все-таки во многих случаях использовать инкапсуляции в объектах или классах, пусть даже более простых, чем VCL.

Впрочем, я никого не принуждаю использовать Key Objects Library. Но опыт показывает, что создание и сопровождение приложений на KOL нисколько не сложнее, чем на VCL (нужна лишь некоторая практика, так же как и для начала работы на VCL). В то же время, размеры KOL-программ — вполне сопоставимы с тем, что возможно получить ручной работой через API.

Теперь к вопросу о том, зачем вообще уменьшать код приложения. Зачем — это каждый решает сам. Или он хочет сэкономить свой трафик и трафик пользователей при загрузке своего приложения на интернет. Или он пишет ActiveX — приложение, которое загружается с сервера на клиентскую сторону (и время загрузки так же желательно сократить). Или же он пишет CGI-приложение, и желает разгрузить сервер, которому придется выполнять сотни и тысячи таких CGI-приложений в секунду. Разумеется, большая программа размером с 400 Кбайт тоже может считаться CGI-приложением, вот только на его запуск у системы наверняка уйдет в несколько раз больше ресурсов и времени. Да, писатели вирусов и троянов — это еще одна категория «программистов» (так сказать), которым нужно писать маленькие программы. Но пусть уж лучше они тоже делают свои грязные поделки поменьше размером, чем принимать письма с троянскими вложениями на полмегабайта.

В последнее время «мода» на создание как можно больших по размеру приложений (в качестве доказательства своей крутости) сходит на нет. Несмотря на то, что большинство пользователей интернета уже не ограничены скоростью доступа в Интернет (и со временем эти скорости только растут), очень многие из них начинают понимать, что размер приложения практически никак не связан с его возможностями, качеством исполнения, удобством использования. А говорит лишь о квалификации программиста (и здесь связь как раз обратная: у матерого программиста код, как правило, будет намного меньше, чем у начинающего).

См. также

Ссылки


Источник — «http://www.sbup.com/wiki/KOL»
Личные инструменты

Served in 0.140 secs.