Solved

Delphi -> Kylix

Posted on 2003-11-11
3
479 Views
Last Modified: 2010-04-05
We're starting a project which will probably have to use Linux. This is because it is a safety-related system and XP is not allowed to be used for such systems. Linux is because it can be formally proved to be safe.

Now, that handily means that we can use Kylix to do the development. Having had something like 8 years of experience with Delphi, I have had none with Kylix beyond getting it out of the box, running it, and doing a "hello world" program.

Can anybody with *experience* please list the pitfalls and differences between Delphi and Kylix? Possible issues I can think of right now that we will need: multithreading, multiple serial ports (ie more than COM1 and COM2, an expansion serial card or two), a parallel IO card (eg ICP/DAS or MOXA), TCP/IP networking (TServerSocket and TClientSocket would be VERY useful...), and event logging (equivalent to NT event log).

Superfluous rubbish like COM, SOAP, etc are most definitely NOT required. Simple, fast, proven, raw socket comms are all that is needed, something which I have a large amount of experience in anyway.

Thanks

Geoff M.
0
Comment
Question by:gmayo
3 Comments
 
LVL 7

Assisted Solution

by:jconde
jconde earned 75 total points
Comment Utility
This is just my personal opinion so please listen to other expert opinions.

First of all ... I have heard the rumor Borland won't be supporting the CLX framework anymore so if its true, you probably might want to stay away from kylix.

Second ... Kylix, unlike delphi is very slow to develope with !! ... I have found tons of bugs in V3 and I personally don't like it.  What I have done in the past is develope my app in Delphi using the CLX framework and then "make" it compile using kylix.

Third ... I think Qt is light-years ahead of kylix in terms of stability, it has excellent support and its a very easy GUI framework to learn.  If I had to make the desision between Kylix or Qt, I would definitely choose Qt assuming my app was to be developed for Linux only.

Also, Kylix is based on very old versions of Qt ... I beleive its 2.X and the current version is 3.2 !!

I have a theory that most open-source developers in the Win32 platform use Delphi .... Unfortunatley that does not apply in Linux where 98% of everything is either C or C++.

Did I mention Kylix apps can't be compiled statically and they require tons of shared libraries to be installed ??

I know my post doesn't remotely answer your question, but for what its worth, I suggest you start off with the right foot in place and consider Qt or GTK instead of Kylix.

Regarding Qt, it has excellent TCP/IP networking, thread support and many other nice features.  Regarding the parallel IO card or multiple serial ports ... that's quite simple under Linux because unlike Window, Linux treats everything as files.
0
 
LVL 2

Assisted Solution

by:EdHillmann
EdHillmann earned 75 total points
Comment Utility
I haven't done it myself, but this was my understanding when it came to Delphi/Kylix applications.

If your applications do not contain low-level API calls, then you could take the source from Delphi and compile it in Kylix.  Although, you need to be sure that the Delphi application uses CLX components and not VCL components.  I'm guessing that your application is not visual (?), so this may not be a problem.  Essentially, Delphi contains VCL (which will most likely remain tailored to Win32 libraries) and CLX components.  Kylix only contains CLX components.  And Borland has always stressed that any application that is to be cross platform should be written to the CLX components.  At least at the onset, there was no intention by Borland in making native VCL applications cross-platform.

If you're application does contain native API calls, then the recommended approach is as follows:

Define your own classes which wrap these native calls.  Your application should uses these classes when accessing the data managed by the native APIS.  Then, you would need to have two implementation of these classes: one for Win32, one for Linux.  When the application compiles, you can use ifdef statements to ensure that the appropriate class is compiled/used (I believe).

As far as your specific examples, I think that as long as you're using TThread and not making any API calls, you should be OK (I'm not 100% confident on this).  And I'm not knowledgeable enough about the serial ports or TCP/IP classes to provide any guidance. Sorry!
0
 
LVL 5

Accepted Solution

by:
DeerBear earned 100 total points
Comment Utility
Hi Geoff,

Beware of Indy <g>.

It's been having some problems to what I remember with Kylix, thus pay attention.

I strongly doubt you'll find TServerSocket on Kylix.

As to COM ports, they assume the form TTYS0/1/N and you access them as files, in the
/dev mount point.

If you need more input, just whistle here :-)

HTH,

Andrew
0

Featured Post

What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

Join & Write a Comment

The uses clause is one of those things that just tends to grow and grow. Most of the time this is in the main form, as it's from this form that all others are called. If you have a big application (including many forms), the uses clause in the in…
Have you ever had your Delphi form/application just hanging while waiting for data to load? This is the article to read if you want to learn some things about adding threads for data loading in the background. First, I'll setup a general applica…
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

8 Experts available now in Live!

Get 1:1 Help Now