[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 497
  • Last Modified:

Delphi -> Kylix

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
gmayo
Asked:
gmayo
3 Solutions
 
jcondeCommented:
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
 
EdHillmannCommented:
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
 
DeerBearCommented:
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

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now