The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My work

  • My badges

  • Twitter Updates

  • My Flickr Stream

    20140508-Delphi-2007--Project-Options--Cannot-Edit-Application-Title-HelpFile-Icon-Theming

    20140430-Fiddler-Filter-Actions-Button-Run-Filterset-now

    20140424-Windows-7-free-disk-space

    More Photos
  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,776 other followers

Kylix: The Real Lowdown – I wrote this in 2000 too

Posted by jpluimers on 2017/03/23

A while ago – while researching yesterdays post – I came across the below article that I wrote back in august 2000 for The Delphi (by Pinnacle Publishing – long gone by now) and on-line at http://www.delphidevelopernewsletter.com/dd/DDMag.nsf/WebIndexByIssue/B8FC16D8103A3760852568F600559A83

I found a cached copy first at http://www.txsz.net/xs/delphi/2/%E6%8A%80%E5%B7%A7%E5%8F%8A%E7%BB%8F%E9%AA%8C/KYLIX%EF%BC%9A%20%E7%9C%9F%E7%9B%B8.HTM and back-tracked from there.

Since the wayback machine isn’t indexed, I salvaged the copy below.

On the Delphi Tokyo release yesterday [WayBackTokyo is available today! – Martin Sedgewick – Google+: I will only try that after Update 1 is released, but based on the [WayBackWhat’s New – RAD Studio:

Like

  • Reintroduction of Linux support. Finally.
  • 64-bit as target: server side, the 32-bit days have been over for a long time
  • one-based strings (boy, I’m glad they didn’t continue on the zero-based strings they did on mobile)

Dislike

  • No openSUSE support where SuSE was the primary partner during Kylix development and launch, just search SuSE kylix; heck the registration guide is still up at [WayBackSDB:Kylix – openSUSE
  • LLVM compiler as it is way too slow for my development cycles
  • ARC based

Time will tell if it works better for me than the .NET Core for Linux I’ve been using until now.

–jeroen

Kylix: The Real Lowdown

Jeroen Pluimers

Kylix is the Borland/Inprise port of Delphi, C++ Builder, the IDE, and component library to Linux. It’s one of the most exciting things to happen in the Delphi world in a long time. In our continuing effort to keep you abreast of every detail, Jeroen Pluimers walks you through some of the most exciting features of this new environment.

A couple of months ago, I wrote a special article introducing you to Kylix. (“Kylix: Delphi for Linux is on the Way!” is also included in this month’s electronic issue.) This article builds on that one and adds lots of new details just recently discovered!

Kylix was officially announced on September 28, 1999, in a news release from Inprise/Borland describing it as a “a high-performance Linux application-development environment that will support C, C++, and Delphi development.”

This article will tell you more about the innards of the new Delphi for Linux, especially the new cross-platform component library called CLX.

CLX: The component library goes cross-platform

In order to run your existing VCL programs as smoothly as possible on Linux, Inprise/Borland has came up with a new cross-platform version of the component library: CLX (pronounced “clicks”), which stands for Component Library X-platform.

The new CLX component library is a completely remodeled version of the VCL and doesn’t depend on Windows API. If you target your programs to CLX, it will be much easier to develop for both Linux and Windows.

CLX is also a much better name for a component library, as the VCL is much more than “just” visual. Besides visual controls, both component libraries contain components for database access, Internet connectivity, and of course a lot of generic base classes.

This is the reason why the new CLX has been divided into four area subcategories.

vCLX: the visual controls

The first area of CLX encompasses visual controls. Most of the visual controls from the Windows VCL can be found here. Only a few controls from Delphi 5 that use specific Microsoft technology, like ActiveX, COM, OLE and DDE, will be missing, as well as some old Windows 3.1 components.

But there are plenty of visual controls in the vCLX area, which contains the regular controls as well as the data-aware ones: edits, panels, buttons, radio groups, and so on. Some of the areas in vCLX have been renamed from Windows specific names into more generic names.

The foundation of CLX consists of the Qt GUI toolkit from Troll Tech (http://www.trolltech.com), which is now embedded into vCLX. Qt is a set of foundation classes that encapsulate a lot of X Windows widgets. Since Qt is available both for Unix and for Windows systems, it’s truly a cross-platform toolkit. Also, Qt is used as the foundation of KDE—a very popular graphical desktop for Linux. However, Qt applications aren’t tied to KDE—they run on the GNOME desktop too.

Visual CLX uses Qt for widgets and graphic drawing functions, just like the VCL uses the Win32 APIs for GDI, Common Controls, and so on.

It’s likely that the first version of Kylix will support a bit more KDE features than GNOME features, but Inprise/Borland is working closely with both GNOME and KDE people to include as many features as possible.

What about Qt licensing?

Normally, one needs a license to develop Qt applications. However, Inprise/Borland and Troll Tech have worked out an agreement that eliminates the need for this. The CLX development license included with Kylix won’t require a separate Qt development or deployment license. So, if you buy Delphi for Linux, and use CLX for your application development, you won’t need to pay for additional Qt licenses.

Actually, Inprise/Borland has made an investment into Troll Tech as part of this deal. This ensures a long and close relationship between Inprise/Borland and Troll Tech. We can look forward to a number of future collaborations from these two.

interCLX: the link to the Internet

The second area of CLX encompasses components for Internet connectivity. These include the Inprise/Borland Internet socket components, as well as the WebBroker and InternetExpress. Since there’s no Microsoft Internet Information Server available for Linux, the WebBroker technology in Kylix supports building CGI- and Apache-based Web applications.

dbCLX: database connectivity

The database components in the dbCLX area are based on MIDAS technology. For Kylix, Inprise/Borland has moved many data access features currently available only through MIDAS into dbCLX. These include updating, caching, cursors, and other similar features. You can use dbCLX to connect to SQL database servers through a new cross-platform database driver technology called dbDirect.

The combination of dbCLX and dbDirect replaces the BDE (Borland Database Engine), which will not be available for Linux. The BDE is heavy with lots of DLLs and difficult to install, but the new dbDirect will be lightweight.

Since the new dbDirect technology allows for a much simpler and faster path to remote databases, we should expect a very noticeable performance increase when using dbCLX and dbDirect over the BDE.

The new dbDirect is a cross-platform database driver API. It’s the successor to the SQL-Links interface that was used by the BDE to connect to SQL database servers. The old SQL-Link drivers are being rewritten into dbDirect drivers. There will be support for Interbase, MySQL (an important Linux database server), and other major SQL database servers. Since dbDirect is designed to be cross-platform, it will migrate into Delphi 6.

Even though dbCLX now has a lot of MIDAS features, you don’t have to pay MIDAS licenses when you use it for developing applications that access local or client-server databases. The MIDAS features for these kinds of applications will be available, starting with the Professional edition of Kylix. Licensing information for three-tier MIDAS solutions hasn’t been announced yet.

bCLX: the base classes

In the area of base classes, the foundations of the VCL have been moved to CLX. This includes the runtime library (RTL) with the System unit, the SysUtils unit, and the Classes unit.

This is an area that a lot of developers overlook, but that contains very useful classes and routines: for instance, the streaming mechanism (introduced with the TPersistent class), lists of strings (in the TStrings and TStringList classes), and many type-conversion and file-access routines. Even some technology that a lot of people regard as Windows-specific will be part of the runtime library, notably portable variants and interfaces.

The Kylix IDE

The Kylix IDE will be of a level of technology similar to Delphi 5 (including the open tools API or OTA), but some features will be missing, notably features that are very Microsoft-specific, like support for ActiveX, DDE, OLE, Internet Explorer, ADO and CAB-deployment.

However, most of the features standard to Delphi 5 will be included. These include the integrated editor and debugger (with keymappings, code completions, parameter completion, tooltips) as well as the object inspector, component palette, and form designer.

There will be debugging features in Kylix, but the exact features are in various stages of implementation. The features that are really stable will make it into the first version of Kylix. More information about this will follow soon.

Some of the tools that ship with Delphi 5, but aren’t part of the IDE, might not make it in the first version of Kylix. Notably, the SQL monitor (that is dependent on the BDE) won’t make it. But Kylix will include an image editor.

How about source code compatibility?

Borland/Inprise wants to make porting between Windows and Linux (and vice versa) as easy as possible. Because there will be some changes between CLX and the VCL, some applications will port with more effort than others. Globally, there are two kinds of applications: server applications without a GUI, and user applications with a GUI.

For server applications that use WebBroker technology, the goal is to have single-source compatibility. This means that for most WebBroker applications you can take the sources from your Windows version, put them on a Linux machine, compile them, and off you go.

The WebBroker on Linux will support the Apache Web server for both HTTP and HTTPS connections (on Windows, you’ll use Microsoft Internet Information Server). Using the Apache Web server, you can use Apache DSO or CGI-bin protocol (whereas on Windows you had the choice of ISAPI, NSAPI, CGI-bin, and Win-CGI protocols). The standard MIDAS broker connection components (TCorbaConnection and TSocketConnection) will be available on Linux as well.

For user applications (applications with a GUI), the goal is to facilitate applications that use the TClientDataSet component communicating through a TDataSetProvider to a MIDAS server to port. Applications that use TTable and TQuery components with BDE-specific features will need lots of reworking. Applications that use TTable and TQuery components without BDE-specific features will have less need for reworking.

If you use TTable or TQuery, which form the BDE DataSets in the VCL, you probably need some more components. In dbCLX, the functionality of the BDE-like logic has been componentized into separated components. Some functionality was already available in the TClientDataSet, but some new components will be introduced (such as components for alias management). When you adhere to this new structure, you’ll be safe for future Windows versions of Delphi as well, as this new technology will be also part of future versions of Delphi for Windows.

What versions of Linux do I need?

The first version of Kylix will target Intel processors on recent distributions. If you have a Linux distribution for Intel processors with Kernel 2.2 or higher, glibc 2.0 or higher, and XFree86 3.0 or higher, then you should be fine.

Most current Linux distributions will be fine. Kylix is supposed to run on most of the well-known flavors. I’d expect it to run on RedHat Linux (and Mandrake), Corel Linux (and Debian), SuSE Linux, Caldera Linux and maybe a few others. But we will only know for sure when it ships.

Which leads to the all-important question, of course…

When will Kylix be available?

Originally only a global timeframe was given, indicating availability of a product some time during the year 2000. The official Inprise/Borland statement is that Kylix is “…scheduled to be available in mid 2000.” Most people now expect that the Delphi part of Kylix will be available in the fall.

Just like the Windows versions, Delphi and C++ Builder for Linux are Siamese twins; one follows the other. Therefore, C++ Builder for Linux (which is also part of the Kylix project) will likely follow after the release of Delphi for Linux.

It used to be possible to apply for the beta cycle by sending an e-mail, but this has been closed, and the Kylix beta program is currently full. More information on the beta is available at: http://community.borland.com/article/0,1410,20108,00.html.

More information

For more information, don’t miss a single issue of Pinnacle’s upcoming newsletters. We’ll get you the information as quickly as we can—either on the Web or in the paper journals.

In addition, the Kylix Research and Development team will irregularly publish more information about Kylix on the community Web site at http://community.borland.com.

In the meantime, you can obtain more information electronically, either in the newsgroups or on the Web. When visiting the Borland Community Web site, be sure to read the Chat Transcripts and the articles from some of the Kylix R&D folks (Danny Thorpe, Allen Bauer, Robert Kozak, and others). They contain a lot of interesting information!

Interesting newsgroups

  • news://newsgroups.borland.com/borland.public.kylix.non-technical
  • news://newsgroups.borland.com/borland.public.delphi.non-technical
  • news://newsgroups.borland.com/borland.public.cppbuilder.non-technical

 Interesting Web pages

4 Responses to “Kylix: The Real Lowdown – I wrote this in 2000 too”

  1. Hur Akdulger said

    TSoapDataModule support

    There is no TSoapDataModule support in Delphi 10.2 Tokyo version at Linux side. It is and was already exist in latest Delphi versions at Windows side.
    It is also existed in Kylix. So, we think that Delphi 10.2 Tokyo Linux has less functionality than Kylix.

  2. KM said

    BTW: 32 bit days are not over especially for some embedded (IoT…) systems, where 64 bit are often not really not an improvement. Nor that I would use any Embarcadero product in an IoT device, given how much care they give to security (well, it’s like the security of actual IoT devices routinely p0wned around…). AppTethering looks to me still a totally unsafe solution outside simple demos.

    They are also targeting only RHEL 7 and Ubuntu 16 LTS, but many system still runs older but still supported versions. Just like deploying a new compiler for Windows supporting only 10/2016…

  3. Dennis said

    would you (all) please stop reposting old kylix posts? this does not really help anything

  4. KM said

    Oh well, Mr. Ball looks unable to understand the product it should sell and actually believe ARC makes portability easier:

    “The compiler is build on top of the LLVM engine and is ARC enabled with one based strings as default – this makes its quicker and easier to port between Linux and Windows Server […] all from a single code base that is fast and secure as its compiled.” (https://delphiaball.co.uk/2017/03/22/rad-studio-10-2-available-today-linux-delphi/)

    That shows once again Embarcadero always choses the quickest, simplest at cheapest solution at expenses of its customers, blindly ignores any issue, and try to sell you “alternative facts” you don’t understand if they are due to plain incompetence, or lame marketing lies.

    I would be also very careful about code emitted by two very different compilers, even from the same sources.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: