Linked by Joost van der Sluis on Mon 10th Sep 2007 16:03 UTC
General Development Recently, Free Pascal (FPC) version 2.2.0 was released. This open source Pascal compiler has - since its initial release in 1993 - grown to be one of the most sophisticated open source compilers available today. Daily, more programmers discover FPC and develop their applications in Object Pascal. Specifically, the development of Lazarus has contributed to this phenomenon: Lazarus is a graphical open source IDE for FPC, with an extensive tool kit to design graphical (GUI) applications.
Thread beginning with comment 270327
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[4]: Lazarus
by FooBarWidget on Tue 11th Sep 2007 18:36 UTC in reply to "RE[3]: Lazarus"
FooBarWidget
Member since:
2005-11-11

I didn't say all. I said most. And which distribution today doesn't support automatic dependency resolution? If I type 'apt-get install gtk2' then APT will automatically install whatever extra dependencies it has. Even FreeBSD's ports supports auto-installing dependencies.

I dare to say that if people refuse to install GTK in order to use your app, then your app is not worth installing anyway. Likewise, if a good app is written in QT, and I need that app, then I will make sure I have QT. I don't care about the GNOME/KDE "war". Even commercial apps like VMWare and BitRock Installer depend on GTK2 and they don't seem to be losing customers because of that.

Sure, there are hardcore geeks out there that absolutely to refuse GTK/QT (note that I didn't say GNOME/KDE) or other "bloat" because they're running a Pentium 300 with 64 MB RAM (or just because of irrational elitism), but those people consist of, like, 1% of the market. I'd gladly trade that market share with the amount of development time I save by using a good GUI toolkit.
It's a good thing to care about users and to minimize dependencies, but at some point there will be a point of diminishing returns. And I believe anything below GTK2/QT lies past that point.


"Distro's are normally behind compared to the latest GTK2 version available, so your applications will have a hell of a time trying to run if it was designed with the latest GTK2."

But what does that have to do with you, the developer? Just don't use the most recent GTK APIs and stick to the subset of APIs that were introduced in GTK 2.4 or something. The GTK API docs specifically mention the version where an API is introduced.

Edited 2007-09-11 18:42

Reply Parent Score: 4

RE[5]: Lazarus
by Almindor on Wed 12th Sep 2007 08:12 in reply to "RE[4]: Lazarus"
Almindor Member since:
2006-01-16

Well yes you're right, but also wrong.

As was pointed out to me also, there's versioning problems. For example Gtk has breakage between 2.0 and 2.8 regarding some functionality. Some functionality has been added. So if you compile for some Gtk2 version (eg: using SOME newer gtk2 functionality) you won't work on distroes with older gtk2.

The thing is, Lazarus/LCL tries to be low with new gtk2 stuff but I think even they need 2.4+.

It's much worse with Qt4. Since Qt is done in C++ anyone using non-C++ has to use a "C-Wrapper" lib. This lib is directly dependant on specific version of Qt4 (4.0, 4.1 etc.) so redistribution is next to impossible without recompilation (typical linux world), or carrying your own qt/gtk libs. But then you might fail on glibc (which breaks between eg: gcc4 and gcc2)

Reply Parent Score: 1

RE[6]: Lazarus
by anda_skoa on Wed 12th Sep 2007 11:22 in reply to "RE[5]: Lazarus"
anda_skoa Member since:
2005-07-07

The thing is, Lazarus/LCL tries to be low with new gtk2 stuff but I think even they need 2.4+.


Shouldn't be a problem, LSB 3.1 spezifies GTK in version 2.6
http://tinyurl.com/2seaeq

This lib is directly dependant on specific version of Qt4 (4.0, 4.1 etc.)


Since 4.1 includes the ABI of 4.0, anything linking against 4.0 should be able to resolve all symbols when linking against 4.1

Reply Parent Score: 2

RE[6]: Lazarus
by ashigabou on Fri 14th Sep 2007 04:35 in reply to "RE[5]: Lazarus"
ashigabou Member since:
2005-11-11

"It's much worse with Qt4. Since Qt is done in C++ anyone using non-C++ has to use a "C-Wrapper" lib. This lib is directly dependant on specific version of Qt4 (4.0, 4.1 etc.) so redistribution is next to impossible without recompilation (typical linux world), or carrying your own qt/gtk libs."

C++ ABI is a PITA on linux, no question about it (I would say C++ is broken from a ABI point of view anyway). But otherwise, I don't get your problems: breaking glibc between gcc2 and 4 is really not a problem, they are like what, ten years different ? Also, binary incompatibility also arise on windows (I got a problem recently with file descriptor not being compatible between slightly different MS C runtime).

I tended to think that binary compatibility was the major problem on linux, but maybe the problem really is shared library: http://www.sagecertification.org/publications/library/proceedings/u...

Reply Parent Score: 1