Solved

Delphi -> Kylix

Posted on 2003-11-11
3
482 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
ID: 9726949
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
ID: 9726971
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
ID: 9731343
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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

This article explains how to create forms/units independent of other forms/units object names in a delphi project. Have you ever created a form for user input in a Delphi project and then had the need to have that same form in a other Delphi proj…
Introduction Raise your hands if you were as upset with FireMonkey as I was when I discovered that there was no TListview.  I use TListView in almost all of my applications I've written, and I was not going to compromise by resorting to TStringGrid…
Windows 10 is mostly good. However the one thing that annoys me is how many clicks you have to do to dial a VPN connection. You have to go to settings from the start menu, (2 clicks), Network and Internet (1 click), Click VPN (another click) then fi…
This is used to tweak the memory usage for your computer, it is used for servers more so than workstations but just be careful editing registry settings as it may cause irreversible results. I hold no responsibility for anything you do to the regist…

911 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

15 Experts available now in Live!

Get 1:1 Help Now