(LinuxWorld) -- The big news about Kylix 3 is that this excellent RAD for Linux now supports C++ as well as Delphi. Delphi, if you don't already know, is Borland's extended Pascal. Borland, if you don't know, is one of the premier makers of software development tools in the world. Borland has tons of experience bringing Pascal/Delphi, database managers, C, and C++ development tools to market.
Just as with the first two versions of Kylix, the new release comes in three sizes: the Open Edition, Professional Edition, and Enterprise Edition. You also might want to categorize them by price: free-as-in-beer, expensive, and more expensive. Kylix 3 Professional is going for roughly $240 from online retailers. I haven't seen pricing yet on Kylix 3 Enterprise Edition, but it should be about the same as it was for Kylix 2, which is around $2,000.
Kylix 3 Open Edition (K3OE) was released only recently. As noted, it is free in price. However, the 5,000-word license places restrictions on its use. Some will find it annoying that any software you create with K3OE and then distribute must be licensed under the GPL. Others, like Ray Lischner (author of "Delphi In A Nutshell" and other books), are more annoyed by a gag rule contained in the license. It prohibits publication of benchmarks without the prior approval by Borland.
After Lischner was reassured in one of the Kylix-related newsgroups that Borland would quickly and favorably respond to requests to publish benchmarks, Lischner replied, "I refuse to ask permission because to do so would be an acknowledgment that Borland has the right to require permission."
I don't like the gag rule either. However, I was more annoyed that Kylix 3 is not supported on my current desktop box running Red Hat 7.3. Not only that, it doesn't work very well with it either. Not without some effort, at least. I have K3OE working on RH 7.3 now, but it is still not supported, and I don't know what other problems might await me. I'll describe what I did to get this far, but let me caution you at the beginning that this is not a recommended path if you are going to use Kylix for real development work. I am using K3OE to learn and to evaluate, so if it breaks there is no real harm done.
Before I get into the how, let's explore the why. Development environments are complicated affairs, much more so than common desktop applications. Put in psychology terms, development tools interact deeply in the conscious and subconscious of the Linux kernel and libraries. Porting, say vi from one flavor of Linux to another is easy in comparison to Kylix.
In the case of Red Hat 7.3, it was released a few months before Borland released Kylix 3. The earlier versions of Red Hat work and play just fine with Kylix 3, but Borland wasn't able to test Kylix 3 with Red Hat 7.3. When will Kylix 3 support Red Hat 7.3? A Borland spokesperson was unable to say.
Which brings me to UnitedLinux. Whether this standardization effort will go far enough to make it an effortless task for software developers to support all distros following UnitedLinux is an open issue, but at least it's a start.
After completing the registration/survey required by Borland, I downloaded the tar ball for Kylix 3 OE. It is huge. At least the version I downloaded was more than 300 megabytes. That's more than ten times the size of Kylix 2 OE.
You can install Kylix either as root or as a normal user. I chose to install as root. It's straightforward. After tar decompresses and reassembles everything, you find you have a new subdirectory named kylix3_open.
Contained in that directory are a README, an INSTALL and a PREINSTALL text, a full copy of the license, a directory of pre-installation compatibility checking tools, a directory containing distribution/version specific patches, and of course the install script itself. On my system (a 1-GHz Athlon with 512 megabytes of RAM), it took very little time to do the actual installation once tar was finished. I started the install by entering
sh setup.sh in a terminal window and about a minute later it was soup.
Unfortunately for me, the soup was too hot. I had several problems immediately. As I searched USENET for solutions, the first thing I became aware of was that Red Hat 7.3 is not yet supported. Bummer. It also became clear that other Red Hat 7.3 users were having the same problems.
I asked Borland for tips and workarounds, but they responded they would much prefer to help me work on a supported platform. Of course, I wanted them to help me with my problem, but I do understand where they are coming from. In fact, I agree with them.
Let me say this again. I would recommend that if you have a need to use Kylix 3 for real development that you do so only on supported distributions. Software development is not the sort of thing where you need to go out of your way to find challenges. It has perils enough of its own.
Just call me a stubborn, hardheaded geek, but I plowed ahead with RH 7.3. I picked up tips here and there on the borland.public.kylix.* newsgroups, and when something didn't work one way I tried it another. The problems I ran into were:
I got around the first problem by grabbing a stock version of the kernel (2.4.19) from www.kernel.org and installing it. It's been awhile since I've had to -- or simply wanted to -- build a kernel. It's much easier now than the first couple of times I did it.
After unpacking the tarball, I went into the newly created
/linux directory and entered
make clean at the command line. Then came
make xconfig. That gave me the opportunity to configure the kernel for my needs. In my case, it was simply a matter of making sure I added module support for USB and for my NIC. If you're doing this for the first time, you'll want to have a good handle on your hardware makeup before beginning.
After configuring the kernel build, I ran the following in order:
In the past, it would be time to reconfigure
lilo by editing the configuration file and rerunning lilo itself. However, since I had accepted the default
grub (grub stands for GRand Unified Bootloader) when I installed Red Hat 7.3, it wasn't necessary. I peeked at the grub configuration file to see how difficult it was going to be to add the new kernel. Guess what? It was already there. I didn't need to run anything to select it. Good on grub.
After rebooting with the new kernel (grub still offers me a choice of when one to load), I started Kylix from a terminal window with the command
startbcb. I was able to pick a file or project to open without a freeze. That's the good news. The bad news is I was unable to compile any of the example projects.
On a hunch, I decided to run Kylix as root. It worked, all the example projects compiled! Now I was getting somewhere. I decided to check the GNOME menus while still root. There were the missing Kylix menu items.
Running as root unnecessarily is always a bad idea, so I decided to reinstall K3OE as a normal user. I ran the
uninstall program that had been placed in the kylix3 directory, then removed everything I could find in my home and root directory that started with .kylix or .borland.
When I tried to reinstall Kylix, it complained that it was already on my system, in the directory that had just been removed. I used Google to search the newsgroups for the exact error I was getting and found that by appending "-m" to the setup script command line, I could suppress the error and reinstall. I did just that.
Finally, I could compile the examples as a normal user. I also compiled a quick test of my own, just to be sure. I could also launch Kylix from my Ximian GNOME desktop. I was happy at last. Remember, I did this for fun, for the sake of my geek ego. Who knows what additional problems I may run into a little further down the path?
The moral is this. Do not try this at home. Do not run Kylix 3 on an unsupported distribution unless it makes no difference to you if the product works or not. If you're like me and just want to learn and play with it, fine. As a matter of fact, now that I have it installed and (apparently) working, that's exactly what I'm going to do. In the weeks ahead, I'll report on what I've learned about Kylix 3 OE and its C++ capabilities.