Kylix: The Linux Perspective
Abstract
With a long, proud heritage of tremendous success, the Unix world has produced
a tremendous compliment of tools for the programmer. One of the criticisms
of Linux is its lack of end user applications. Tremendous advances have
been made in widget sets, but no RAD tool has yet to take the forefront.
Kylix may be the key to taking the user application space to the next level.
Introduction
As a long-time Unix head forced to tolerate the Windows world regularly,
it's readily apparent that there's an unfilled hole in the compliment of
programming tools.
Unix tool sets are superbly honed for Unix programming. One cannot reasonably
argue contrariwise in the face of the Internet's ubiquity and the central
role that Unix has played in its creation and continued development.
Microsoft's Windows development tools have been split between the raw
C/C++ world and the Visual Basic toys. While VB makes it easy to
throw together simple applications, it wimps out quickly when "serious"
programs need to be produced. With Visual C++ one may create nice GUIs,
certainly, but not without a quantity of pain. Microsoft allows no middle
ground.
Borland has a long track record of producing quality tools for the PC
clone developer since the 1980s. With the advent of Delphi, Windows programming
was raised to a new level. Delphi provided a top-to-bottom application
solution that joined the ease of VB with the power built of a full-blown
object-oriented language. It provided a tool kit that tamed the wild APIs,
removed the limitations of a non-OO widget set, and allowed the developer
to concentrate on producing high quality applications. I would be so bold
as to assert that Delphi is the premier choice for application development
on Windows.
With the roaring Linux tidal wave engulfing us, one constant theme has nipped at
its heels: the dearth of end user applications. Uneducated detractors point
to this as a fatal flaw; evidence that Microsoft will eventually crush
the Penguin. While I would argue that application space is not the
critical arena for long-term success, but the continued development of
the Internet as a programming and commerce platform, one cannot easily
shrug off application space.
Tremendous advances are being made in application development tools
for Linux. None, however, has yet proven to be the environment of choice
for attacking application space.
Enter Kylix
Borland saw that the time was right to make a move into the Linux arena.
-
They have the premier rapid application development (RAD) tool for Windows.
-
They saw that Linux matured to the point where application space was ready
to be tackled.
-
They recognized that Microsoft would sooner move Redmond to the moon than
port their development tools to Linux.
-
Corporate America was no longer oblivious to Linux's importance and was
willing to throw money in that direction.
After much anticipation, Kylix arrived at my office last Monday. It's not
vaporware.
What is Kylix?
Kylix is a port of the Delphi Windows programming environment to IA32-based
Linux machines. It enables developers to produce high-quality applications
quickly. It includes strong support for database access. The Kylix Server
edition marries these strengths with Apache in the form of Apache modules
(DSOs).
I'll not attempt to cover the details. Many summaries have been written
on Kylix by much more knowledgeable people. The official home page is http://www.borland.com/kylix,
and the developer community is based at http://community.borland.com/
(free registration may be required). The community site is quite active
and very helpful. A running log of points that I think relevant to the
Delphi developer community can be found here.
Notable Points
-
The tool delivers what was promised: high performance RAD in a robust
package. Personally I'm very impressed. The gripes to date have
been minor.
-
The widget set (Visual CLX) is built on Qt. Visual CLX is designed to be
portable between Linux and Windows. It is a thin wrapper that sits on top
of Qt. It provides a consistent interface regardless of the operating system.
-
Database support is excellent, with support for the free MySQL and Interbase
databases, as well as Oracle and DB2. Database CLX is designed to allow
additional drivers to be readily written.
-
Kylix produces both native ELF executables and shared libraries.
-
Integration with glibc and native Unix constructs appears very good. While
Kylix looks like its Windows-derived cousin, under the hood it
speaks Unix quite well. I've ported core library code from Delphi to Kylix,
and replaced Windows-specific code with the Linux equivalents without missing
a beat. This is a tribute to the the quality of Unix people Borland hired
to help with the Kylix project.
-
The initial release of Kylix uses Object Pascal. Before you freak out,
a couple of points need to be made.
-
Object Pascal is an object-oriented language comparable to C++ in its strengths.
It's not what you learned in high school by any stretch of the imagination.
While it may not have features found in C++, it both has features that
C++ lacks and lacks features that C++ shouldn't have either. <vbg>
-
The C++ version of Kylix is coming.
-
The CLX libraries appear to be made available under a dual license to allow
both proprietary use as well as GPL-ed projects.
-
Borland announced plans to make a free version of Kylix available later
this year for use in GPL-ed projects.
Weaknesses
-
Kylix produces only Intel IA32 (80x86) machine code. No commitments for
other platforms have been announced to date. Borland has stated that they'll
move to another platform when they feel that the market will bear the cost
of porting to a new processor. Speculating out loud, if Kylix were to take
off in the Apache module arena, a port to Sun hardware might materialize.
Regardless of the path, I believe that Kylix can raise Linux's competitiveness
with Microsoft in the e-commerce niche.
-
Mediocre FPU code. For heavy number crunching, a RAD tool probably isn't
what you're going to use in the first place. However, one of our clients
produces scientific applications for non-computer adept people, so the
RAD needs outweigh the loss in performance. Those that need hard-core
performance and a pretty face might consider using a more appropriate
numeric tool and creating a shared library that Kylix can link against.
Licenses and Open Source Software
The issue of licensing is dear to many hearts and a source of much contention
among Linux aficionados. While CLX is available under dual license for
both proprietary and GPL-ed projects, don't expect the Free Software Foundation
to pick up on Kylix any time soon. The RAD tool itself remains closed.
The FSF requires an open tool as a prerequisite for a project to gain their
blessing.
It will be interesting to see the extent to which Kylix is adopted for
open source projects. The tool is tremendously powerful, no question there.
Those who adopt Kylix as the tool for their project will have to weigh
this power against relying on a proprietary tool that is bound to the IA32
Linux platform. Also note that any projects that do not wish to be bound
by the GPL (e.g. the MPL or a BSD license) must rely on developers purchasing
their own copy of Kylix. This will likely impact Kylix's adoption adversely
until the entry price comes down. If the tool were relatively common, this
might not be an issue.
For in-house and commercial applications designed to run on IA32 Linux,
Kylix deserves very serious consideration. It clears away the minutia
and allows developers to get the job done right and on time.
Version History:
2001-03-17
Created document
Corrected grammar error