Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 1999-06

About toolkits.

3 messages · 3 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Michael Van Canneyt

Hello,

I've been reading the thread that followed my remark about writing the interface in pascal; I was amazed at the proposals.

It seems to me that you should stick to the original plan:

Develop a RAD and a Component library, built on top of GTK. This will allow you to develop something workable in a reasonable time.

Keeping your design modular, you should be able, at a later time, to extend the class library to support other toolkits, including the low-level Xlib.

Any other road will slow you down significantly, increase the number of possible bugs and leave you without a tool.

Do not yet spend too much time on dreaming about what is possible. Get something workable first, then you can start dreaming.

And, if you allow me a slight critique:
Then you'll have the grounds: You'll have something workable which _you_ made. Now you have nothing workable yet. Do not blame it this on the compiler; there is another project which has an IDE, completely OOP, built on top of GTK, so it IS possible.
(although, it must be said, they are stuck on a (different) compiler bug alo; We're working to solve it.)

I hope this doesn't sound too harsh, it certainly isn't my intention. My interest is mainly to keep you from straying off the road to our common target: A RAD for Linux, and possible other platforms.

Michael.

Reply by email

Sebastian Günther
to Michael Van Canneyt
Michael Van Canneyt wrote
there is another project which has an IDE, completely OOP, built on top of GTK, so it IS possible. (although, it must be said, they are stuck on a (different) compiler bug alo; We're working to solve it.)

yes, this bug is quite nasty as I can't finish the new keyboard handling code in the editor widget... ;-)

The 'official' announcement for this project (KCL) is planned to happen very soon; but while watching this discussion here I couldn't resist to make some comments _now_:
We don't know which widget library (GTK, Qt) will be the best in the long term; in Win32 and other operating systems it's still the best (most efficient way; keeps the look and feel of this OS...) to use the native widgets of this OS / GUI.
Almost all of the existing GUI APIs are quite unsuited for most applications, if you want to use all those benefits of object pascal compilers like FreePascal or Delphi: Win32 is too low-level, in most cases; GTK, although is _is_ OOP in a way, is too procedural (writing GTK applications in FPC is possible, of course, but the source will look quite ugly); Qt uses many C++ specific features, and it doesn't support FPC specific stuff like properties, of course.
IMHO, the only solution is to create a component library similar to Delphi's VCL, which wraps this APIs but which doesn't rely on platform or toolkit specific features.
KCL tries to do exactly this: Currently, there are about 25 classes for stuff like widgets, forms, dialogs, layouts, fonts, canvas and so on. The only implementation available at this time is build on top of GTK, the native Win32 implementation will be in a usable state soon, and an implementation based on Qt will be added later this year. KCL does *not* try to be a VCL clone, although most classes are quite similar to VCL's classes. The most apparent difference is the way KCL does its layouting: As KCL is platform-independent, you are encouraged to use special layout widgets where possible.

Expect the public snapshot (LGPL license) of KCL soon. I'm very interested in your comments and reactions... ;-)

Another important thing to mention: The IDE build on top of KCL. It isn't really an IDE yet, it looks quite similar to the current CVS version of Lazarus: Menu bar, output window and a notebook widget which holds the editor widgets. The most important difference to Lazarus is this editor widget: It does _not_ use the GTK memo widget, it only consists of a canvas and a ScrollBox. It already does syntax highlighting (the SH is done on demand, so it is *extremely* fast), and there are no known bugs in this SH implementation. The most important editing keys are working, and a setup dialog for the keyboard shortcuts will be added very soon.
As you can see, this IDE is in a quite early stage, but the speed of development is quite high, I think. Together with KCL, it has everything that Lazarus lacks of... (and vice versa, our IDE isn't capable of calling the compiler yet)
I think we all know that there are not enough resources for two FreePascal RAD IDEs in the long term. Probably it would be the best to merge both IDEs in the near future; at least we should try to find identical solutions for some common problems like project management, or (more low-level) i18n and documentation.

- Sebastian

Reply by email

Brad Campbell
to Michael Van Canneyt: I've been reading the thread that followed my remark about writing the interface in…

G'day all, I now have Lazarus compiling, but I'm having errors in the linking stage.
Will it link to GTK+ 1.2.1 ? or does it need 1.2.3 ? Lots of undefined references to 'gtk_label_set_text' and other gtk functions...

Anybody ?

Cheers

Brad....

"Where do YOU want Microsoft to go today"
"Why pay for a broken OS, when you can get one that works for free ?"

/"\
\ /
X ASCII RIBBON CAMPAIGN - AGAINST HTML MAIL
/ \

Reply by email