From Free Pascal wiki
Revision as of 11:26, 8 September 2014 by Thaddy (talk | contribs) (Initial page for the KOL main library)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search


The Key Objects Library - a.k.a. KOL - is an object oriented framework created by Vladimir Kladov (http://kolmck.net) in 2000.
It is the successor to the XCL by the same author.

The main reason creating this library is explained through the dissatisfaction of Vladimir and others towards ever increasing codebloat.
Nobody seemed to care anymore about *efficient* coding.
According to KOL users there a strong correlation between Moore's law and degrading code optimizing efficiency.

The framework centers around three basic concepts:
1. It uses - some say old school - pascal objects, not classes.
2. Most of the widgets are basically one and the same object.
3. It ignores the VCL/LCL, in fact it attempts to replace them.

This has several advantages, some of which are:
1. The size of your binary is very tiny, on average 10-80% smaller than a VCL/LCL binary, but a factor 100 is not unusual.
2. KOL binaries (both executables as dll's) have much much faster load times and feel snappier.
3. KOL is very easy to extend once you understand its concepts. It is a fully object oriented framework

It also has very obvious disadvantages, some of which are:
1. KOL is a framework. It doesn't mix very well with classes and it can't be sensibly mixed with LCL/VCL code because you will loose the size advantage.
2. If you are not familiar with the old Object Pascal paradigm from Turbo Pascal the learning curve can be steep.
3. You will miss some functionality that has become common place, like RTTI, but most of these features are often codebloat and the reason why KOL exists in the first place.
4. Because you are often working on the same object with multiple appearances, it may be confusing that some methods or properties that you can see in the code editor do not apply.


Supported targets

  • All 32-bit Windows: from Windows 95 to Windows 8.1.
  • All 64-bit x86_64 from Windows 2000 to Windows 8.1.
  • Windows CE based PocketPC and Smartphones. More information on the KOL CE page