From: www.itworld.com

Kylix does Linux, Delphi style

by Tom Yager

March 6, 2001 —

 

Dedicated in-house developers have always found ways to build business applications for multiple platforms, but it's rarely easy to do. Java managed to capture the minds of corporate programmers by providing a nearly effortless bridge between supported platforms.

Kylix, Field Test 4 preview

BUSINESS CASE

Kylix is a self-contained development environment that's much easier to learn than Java and creates blindingly fast native code. For performance-sensitive applications that need to run on Windows and Linux, Kylix is the way to go.

TECHNOLOGY CASE

Borland brilliantly marries open-source technology with its mature Object Pascal native code compiler and debugger. Delphi applications need to be stripped of their direct access to Windows and PC hardware, but Windows-to-Linux porting should be straightforward for applications that play by the rules.

PROS

+ Fast native code compiler


+ Easy-to-learn Object Pascal


+ Strong user interface, TCP/IP, and database component


+ Excellent IDE


+ Innovative use of open-source technology


CONS


- Weak ties to C++ and Java


-  A new language and proprietary API


COST


$999 for Desktop Developer Edition; $1,999 for Server Developer Edition


PLATFORMS


Red Hat 6.2 and later, Mandrake 7.2 and later, SuSE 7.0 and later running on Intel and compatible 32-bit CPU


SHIP DATE


Scheduled to ship March 12, 2001


Borland Software Corp., Scotts Valley, Calif.; (831) 431-1000, www.borland.com

Kylix, the Linux edition of Borland's popular Delphi language and programming environment, will soon offer companies an alternative to Java that is far easier to learn and produces faster applications.

Like Java, Kylix provides Linux developers with well-stocked libraries of user interface, database, Web, and network functions that exactly match those implemented in Windows. Kylix also shares Java's large pool of experienced programmers, appealing to coders familiar with Delphi, C/C++, and Visual Basic.

Borland has infused Kylix with advantageous features that standard Java lacks, namely an optimizing native code compiler and a RAD (rapid application development) environment. After working with the Field Test 4 preview of Kylix Server Developer Edition, we see enormous technical potential that will endear Kylix to Delphi developers and Linux pundits

Commercially, Kylix faces challenges on both platforms. Delphi developers must make substantial changes to render their Delphi code portable. Linux users, most of whom are already writing code in C++, Java, and Perl, will need coaxing to learn a new language and libraries used only by Kylix. Still, resisting the nimble and powerful Kylix development environment, the first of its kind in Linux, will be difficult for either group.

Back to basics

Kylix and Delphi grew out of Borland's Turbo Pascal, a lightning-fast compiler and comprehensive IDE (integrated development environment) that turns any Windows user into an entry-level Windows programmer overnight.

For those working on projects in C++ or Java, Pascal might seem comically antiquated. But Pascal deserves respect because it combines the expressiveness and structure of C with the ease and safety of Basic and because Borland has worked such magic with this well-traveled language.

Delphi programmers deftly interweave Object Pascal, Intel assembly language, Microsoft's Win32 API, and Borland's Delphi Visual Component Library (VCL) to create their applications.

The debut release of Kylix carries much of Delphi's flexibility and freedom to Linux. Direct access to the Win32 API is obviously not permitted. The VCL is replaced by CLX, Borland's new component library for cross-platform development.

CLX components are mostly user interface elements. Other CLX features include direct database support for IBM's DB2, Oracle, the open-source MySQL, and Borland's own InterBase. Borland also bundles MyBase, an in-memory XML database.

Users of the $1,999 Server Developer Edition also get NetCLX, a set of components for building Apache Web applications. The $999 Desktop Developer Edition lacks NetCLX but does include open-source TCP/IP sockets server and client components. Both editions use the same Object Pascal compiler to generate optimized, native 32-bit Linux executables, and shared libraries.

Not a Delphi look-alike

At first blush, Kylix looks like a remarkable Linux knockoff of the Windows Delphi IDE. Every detail is reproduced, from the context-sensitive help, superb code editor, and pop-up syntax guides to the drag-and-drop form builder. Cross-platform developers will attest that creating such a true replication is no easy feat. Borland wisely tapped the expertise of the open-source community to turn Delphi into Kylix.

To speed Kylix to market, Borland has sought help from CodeWeavers, a company focused on the commercial potential of Wine. Wine is sometimes referred to as a Windows emulator; it is not. Wine applications are native Linux programs that make calls to Win32-compatible Wine libraries. Partly because of Wine, Kylix has a very small footprint. Borland's minimum recommendation of 64MB of RAM is realistic for desktop development.

The Wine Project provides Linux developers with a surprisingly complete set of open-source Win32 APIs. Wine lends Kylix a Windows look and feel, and it makes the Kylix IDE responsive, especially compared to pure Java IDEs.

We tested Kylix first on a 750MHz Pentium III system and found it only marginally slower than Delphi's Windows IDE. When we moved Kylix to a 1.2GHz Athlon machine with an NVidia GeForce2 accelerated graphics card, it smoked.

Borland has also tapped two other open-source sponsors: TrollTech, for its Qt cross-platform user interface library, and Nevrona, for its Indy TCP/IP component library. Qt is implemented in Linux and Windows so it's an apt target for Kylix's CLX interface components. The Indy components were developed by Borland's large and loyal open-source community.

Kylix developers can draw from some of Delphi's vast open-source archives, but not all. Delphi always has been a single-platform language, so some publicly available code makes Windows calls or interacts directly with PC hardware. Most Delphi applications and libraries will need some changes, sometimes a great many changes, to work with Kylix. Members of Borland's open-source community (those who can afford it) unquestionably will embrace Kylix and see to the cross-platform conversion of popular Delphi open-source projects.

Borland took no shortcuts with either its compiler or the Kylix debugger. The code that Kylix's Object Pascal compiler produces is small and quick, another feature carried over from Delphi. The compiler is built-in and completely self-contained. Kylix compiles so rapidly that we had to check to see if our compile requests actually did anything.

The Kylix optimizer pumps out vanilla code that runs on any Intel Linux system, but at your command it will spin instructions that exploit the latest Intel and AMD microprocessors.

The Kylix debugger is tightly integrated with the Kylix IDE, and like the compiler, it's pure Linux. Its hooks into the x86 CPU and the Linux process model are equally strong. It will attach to running processes and debug shared libraries. For all this power, Kylix applications can still be distributed royalty-free.


One of a kind

Borland's Kylix is unique in many ways. It is the only cross-platform RAD environment that produces native Linux code. As a Windows application ported to Linux with open-source tools, the Kylix IDE is exemplary of the kind of applications its users can create.

Comparisons with Java are unavoidable, but Java is in a different class. Java's only similarities to Kylix are its cross-platform nature and its strength as a foundation for Web-based services. Kylix's Server Developer Edition will include components for creating Web applications fronted by the Apache Web server. However, Kylix's reach isn't yet as broad as Java's: Commercial Unix platforms aren't supported yet, and there is no packaged enterprise middleware bundle for Kylix that compares with Java 2 Enterprise Edition.

Java has a decisive edge over Kylix in portability and top-end enterprise credentials. Kylix's trump cards are performance and an ease of use uncommon even in commercial Linux development tools. Kylix applications come together in a very short time, launch quickly, take up very little memory, and run fast.

Borland does have some work left, including forging stronger ties to existing Linux C/C++ and Java code. We can imagine future Java applications handing performance-critical tasks off to Kylix and Linux GNU C++ programs that use Kylix for their user interfaces. Borland's Java and C++ experience suggests all kinds of future possibilities.

For now, Kylix seems the perfect match for performance-sensitive applications that must run identically on Windows and Linux. If your company develops software for Linux, or you'd like to get your Windows Delphi applications running on Linux, we think Kylix is well worth the investment.