Borland's Kylix: turbocharging Linux development
Not Your Father's TurboPascal

Scott Courtney
Monday, April 9, 2001 08:30:07 AM
"Yep," said Grandpa, "I remember back when floppies were over five inches wide!
You could get the whole operating system on just one, but it was a squeeze,
yessiree. There was this little company called Borland, and they put a whole
compiler on one of those floppies. Called it, um, TurboPascal. It was a
screamer, too. You could get twenty-thousand lines a minute compiled, and that
was on an XT. Not like them whippersnapper gigahertz Athlon things like you
youngsters are running these days. Nosiree. Back then, when rocks were soft, we
had to run our programs one at a time. But that TurboPascal, yessir, that was
something else."
Okay, I'll admit it. I'm old enough to remember (fondly, I might add) the
original TurboPascal that came on a floppy disk for $39.95. It was a little
sobering to realize, as I did when starting this review, that there are
thousands of coders today who were in grade school when TurboPascal 1.0 shipped
in November of 1983. Heck, there are programmers who weren't born yet. So, for
those too young to recall, TurboPascal made a big splash because it fit on a
single floppy (when its major competitor needed half a dozen), ran lightning
fast even on an XT (I clocked it at over 20,000 lines per minute compiling on a
4.77 MHz 8088), and was the closest thing to free (beer) around (selling for
$39.95, if I recall). TurboPascal was from this really hip company called
Borland International, run by a sax-playing barbarian named Kahn. The code
itself was written by Anders Hejlsberg in Denmark, but Philippe Kahn's audacious
personality caught the imagination of young programmers, myself included.
Was TurboPascal any good? Let me put it this way: Using version 3.0, I once
wrote a real-time monitoring system for the HVAC (environmental control) system
of a machine shop. The thing talked at 9600 baud over a serial port to an Allen-
Bradley programmable logic controller (PLC), using the weirdest serial protocol
you ever heard of. It showed (on a Hercules monochrome graphics card -- remember
those?) a drawing of the shop with temperature and humidity readings from
numerous data points. It communicated with the PLC and updated the screen in
realtime, using a multithreading mini-scheduler that I hacked together myself
from scratch, because the underlying operating system was DOS. There were even
interrupt handlers for the serial port and keyboard. Everything -- and I mean
everything -- was written in TurboPascal, with inline assembly language used
only for the CLI and STI instructions to manage the 8088's interrupt enable flag
and a little stack management. All of this ran on a 4.77 megahertz 8088 with
640K of RAM. So, Bill Gates was right, and 640K was enough. And TurboPascal was
as good as it gets.
I stayed with TurboPascal until about verion 5.5, then abandoned it in favor of
Watcom C and later REXX, Java, PHP, and others. TurboPascal didn't go away,
though -- it just changed its name to Delphi and went after the Windows crowd
with a serious rapid application development (RAD) environment. I've heard about
Delphi for years, and even received mailings from time to time from Borland --
excuse me, Inprise -- about how great it was. Every one of these went into the
trash, usually followed by a snarky comment like, "I don't want your Windows
crap -- come back when you port this thing to a real operating system!"
Apparently, an anomoly in the space-time continuum caused my snarling to be
piped directly to the brains of Inprise management, because they did exactly
that. Maybe they even read my thoughts, because in January they announced that
they were dumping the Inprise name, which I never liked, to go back to their
Borland roots. Well, maybe they thought of it on their own. Anyway, it came to
pass that LinuxWorld Expo in NYC saw the announcement of Kylix, which will
eventually have both a C++ and a Pascal version but which today is basically
Delphi for Linux.
A lot of the reviews and commentary on Kylix seemed to be written from the viewpoint
of an experienced Delphi user: "Hey, look, now we Delphi gurus can move our code to
Linux." I wanted to take a look at Kylix as a new user, someone who has never even seen
Delphi before, and who is used to coding without a RAD. Hence this review, which I hope
you will find informative and interesting.
First, You Have To Install It
Kylix comes in a thick box which, unlike a lot of software these days, isn't
just full of air to consume retail shelf space and make life hard on
shoplifters. Inside the box are the two CDs (one for Kylix itself, one for
"companion tools" which are not part of this review), along with three softbound
manuals. There is a little "Quick Start Guide" which is really a programming
tutorial and which, surprisingly, contains no installation instructions
whatsoever. The "Object Pascal Language Guide" does for the Borland's Pascal
dialect what the original K&R book does for C. I found it to be well-organized
and very readable. The third book, a rather thick tome, is the "Kylix
Developer's Guide." This manual is extremely comprehensive and covers the
philosophical and practical aspects of Kylix programming, focusing on specific
tasks in many cases but also explaining the concepts behind the examples. The
examples are real, meaningful code that illustrate some rather tricky concepts,
such as rubberbanding graphic selection and multithreading. To say that I was
impressed with this book would be an understatement, though I should mention
that it does not contain a "dictionary" style reference to the Kylix standard
object classes. Rounding out the package is a poster-sized class tree for all
the built-in objects, of which there are many.
The installation instructions are on the main CD, and the README file is quite
insistent about the need to have very recent versions of system libraries. Kylix
is extremely fussy about its environment, and I spent half a day updating my
system (which I had previously thought was pretty close to current) as each
library upgrade led to a dependency of something else. I ended up with glibc
2.2.1 and libjpeg 6.2.0. To their credit, the folks at Borland provide a pre-
test script that examines your machine to see what you need to update before
Kylix will install. The script is on the distribution media or can be freely
downloaded from the company's web site (see References at the end of this
review). My advice is to get your system accepted by the pre-tester before you
buy Kylix. I didn't mind bringing my system up to date, but I must admit a
little puzzlement at why so many other applications were running just fine on
the libraries that I had previously while Kylix wouldn't even install. Kylix is
more finicky than either Apache or MySQL, neither of which are exactly trivial
programs.
Next: Getting Started, Learning to Fly (And to Fall Down) »