Difference between revisions of "KOL"

From Lazarus wiki
Jump to navigationJump to search
(Initial page for the KOL main library)
 
Line 27: Line 27:
 
* Free Pascal compiler 2.7.1 or later for Win64
 
* Free Pascal compiler 2.7.1 or later for Win64
 
* [http://kolmck.net|kol 3.22 or later] for win32
 
* [http://kolmck.net|kol 3.22 or later] for win32
* [http://kolmck.net/kol322-x64-unofficial.7z|A release preview of KOL 3.22-64] for KOL win32/64
+
* [http://kolmck.net/kol322-x64-unofficial.7z| Release preview of KOL 3.22-64] for KOL win32/64
 +
* [[KOL-CE|See the KOL CE page]] for win-ce development and requirements.
 +
* Not required, but recommended is a copy of FPC's RTL and/or Delphi's RTL sources
  
 
=== Supported targets ===
 
=== Supported targets ===

Revision as of 10:35, 8 September 2014

Introduction

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.

Requirements

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

Examples

TODO