Borland Kylix
Marc Hughes
WLUG Meeting 2/14/2001
Overview
- What Is Kylix?
- Licensing Issues
- Object Orientated Pascal?
- Creating a simple App
- Example of a more complex App
What Is Kylix?
- Rapid Application Development (RAD) Tool
- Compiler
- Editor
- Debugger
- GUI Designer
- Cross Platform Components (CLX)
- GUI
- Networking
- Database Connectivity
Kylix Licensing
- Commercial Version ($999-$1999)
- Open Edition ($0)
- CLX - GPL Only
- Must distribute to the public
Q: What is the GPL and how does it affect the distribution of applications that I create with Kylix Open Edition?
A: The GPL, GNU General Public License, is a free software (http://www.gnu.org/philosophy/free-sw.html) distribution license, often referred to as an open-source license. GPL, defined by Richard Stallman of the Free Software Foundation, was created to provide a protected means of distributing free software and to ensure that derivative works also remain free. A copy of the GPL license can be found at http://www.gnu.org/copyleft/gpl.html.
The Kylix Open Edition ships with CLX libraries licensed under the GPL license. As such, any applications that are built with a CLX library must make their sources freely available and distribute them under the terms of the GPL license as well. For example, any application built with the Kylix Open Edition must link to the BaseCLX? library and will therefore be bound to the GPL. Furthermore, the Open Edition IDE End User License Agreement (EULA) also requires that any software developed with Kylix Open Edition must be released to the general public under the terms of the GPL. Any other use of Kylix Open Edition IDE would be in legal violation of the license agreement.
Object Orientated Pascal?
- Yes ... all those annoying begin / end blocks
- Full featured object-orientated
- Inheritance
- Polymorphism
- Function Overloading
- (And many other buzz words)
- All derive from single object (Tobject)
- Code, Design, and is Java-ish
- Structure of code is C++ ish
Sample Code
Pascal Code:
unit WlugExample;
interface
uses classes;
type
TWlug = class(TObject)
private
x: integer;
members: TStringList;
public
procedure addMember( member: string = 'Andy');
function count: integer;
constructor Create;
end;
implementation
constructor Twlug.Create;
begin
members := TStringList.Create();
end;
procedure TWLug.addMember( member: String);
begin
members.add(member);
end;
function TWlug.count: integer;
begin
result := members.count;
end;
end.
Hello World!
We will now create a simple hello world application with a few other nice features.
More Complex App
123 Load Test ... an application I've been playing with to do automated load testing of web sites.
http://wwwloadtest.sourceforge.net
From the site:
"123 Load Test" is an application written in Borland Kylix to load test web sites. It is similar to products such as Mercury Interactive's Load Runner or Empirex's ELoad software. It allows you to simulate large numbers of users hitting your web site. Two programs currently make up the 123 Load Test suite. The first is the main graphical gui that allows you to create and run small load tests. This utility runs the tests in a single application threaded model, and doesn't scale well. Therefore there is a seperate load generator that can read in the script file from the gui, and run through it. You can run as many of these on one machine as you have processing power (and bandwidth) for. Also, you can run the load generator on as many machines as you like, further increasing the load. The tests can very closely simulate an actuall user, filling in forms, accepting cookies, and downloading content.
References