[fpc-devel] what fpc is good for?

ik idokan at gmail.com
Sat May 12 22:40:49 CEST 2007


Ok, you dragged me into responding this subject as well :)
While it might sound as such, this is not Windows vs Linux fight, only
a point of view for an ex Delphi developer, and a 5 years of Linux
users (as only OS).

On 5/12/07, Peter Popov <ppopov at tamu.edu> wrote:
> On Sat, 12 May 2007 05:04:33 -0500, Michael Van Canneyt
> <michael at freepascal.org> wrote:
> >
> > As far as I know, Lars is a FPC fan, and he merely wishes to express
> > concern about
> > some of the issues he has with FPC (I'll leave the matter of whether his
> > concerns
> > are justified up to others to comment on).
> It is always useful to listen to others, regardless of the language used.
> The man has some valid points.
> >
> > It only goes to demonstrate that to be truly critical and constructive
> > at the same
> > time is by no means an easy exercise.
> Completely true.
> Since this article seems to have stirred some debate I will take the
> libery to comment some aspects of it as well as express some of my
> personal opinions. Now, before anyone reads further, I want to state two
> things: One, I have deep admiration for the FPC developpers who have
> created a fine compiler from scratch. Two, the next few paragraphs are
> written from the view point of a long-time delphi/win32 developper, so
> don't take them personally.
> Some comments about the article:
> 1. Linux is indeed used mostly for server apps. This is a fact. One can
> speculate until kingdom come why this is the case. My personal opinion is
> that Linux is simply a shitty desktop platform:
>    i. There is lack of a standard graphical api (or "toolkit"). For
> example, the idiots from throlltech constantly change the entire
> framework. (Qt2 is different form Qt3, which is different from Qt4. They
> are not semantically compatible. Attempts to run binary Qt2 libraries on
> newer distributions cause bizarre problems such as memory clashed with
> libstdc++, for example). Regardless of the toolkit, one cannot expect
> simple things, such as an X toolwindow hint to produce consistent results.
> No matter what, a win32 program that ran on 95 and 3.51 will still look OK
> today.

Ammm.. I'm a Linux user, so let me give you my point of view:
Microsoft on any given new version of Windows *changes* API, changes
libraries and technology, making even newer (the previous version was
the first to have it) technology obsolete on a new version of an OS or
a program. As example take a look at GDI+ (if I remember the name

I do not know many people that changes their kernel and libc once
every new version. In fact while Windows release time is one in 5
years, on the Linux world it is every 6 months ! So as long as you
keep yourself with what arrives with specific distribution, you will
end up having problems, but note, that there are development versions
of Windows, that companies can change the OS as well, so you will also
require to change your tools for every such version, and also for
every new version of Windows (because the kernel is changes ...).

If you are looking for a standard way of creating GUI apps with
something that never changes, try to use xlib and xtoolkit. As long as
the X11 protocol is in use, they never changes :) But as you can see,
you are loosing a lot of features that might be added that way. For
the QT from Trolltech, while I do have some issues with them, they do
try and make support also for the GTK library in the area of styling.

How many programs under Windows do you know that the GUI was designed
regardless of the GUI toolkit that comes with Windows ? Even Microsoft
does this with their Office suites... Every version of the Office
suite, gives you a different look and feel. Take a look at Microsoft
Office 2007, it's so different then anything else that most people
just don't understand how to use it. Or you can take the IE7 vs
IE65432 ...

>    ii. Linux prevents people from distributing binary applications: The gcc
> /kernel people constantly change things. So, one cannot develop and
> forget. You are either forced to release the source code so that the app
> you are developping can be recompiled after the newest
> kernal/libc/++ change. The alternative is to constantly mainatin a once
> developped program and provide ten thousand binary variants for ten
> thousand distributions. And update the binary of your app every month. The
> later option is generally available only to large commercial
> organizations. Again, a win32 program that ran on 95 and 3.51 will still
> run and look OK today.

As I said above, the ABI changes from version to version on ANY OS
even Windows... But While Windows create new version every 5 years,
Linux releases more often, but most distributions releases new version
every 6 months ...

There is a quotation that say "the price of freedom is endless
violence". There are two point of view for things. Windows have both
ways (SP can change the ABI/API as well, as SP2 made for Windows XP).
And on Linux, you can have them both, but the easier way is just to
deploy the code for every version, or to point things for specific

> 2. With respect to graphical applications, the man completely wrong by
> stating that:
> "FPC is a C++/C/D killer. Not a Delphi killer or a Visual Basic killer."

I believe that Pascal as a language is better the C, C++,D and Java. I
do not respect VB, and I can not call it a programming language :)

> It is plain clear that neither FPC will, nor Kylix did convert a s single,
> mildcore vi/gc fan to object pascal. There is absolutely no conceivable
> way this will happen. Those who use vi and fpc, please raise your hands
> :-)

I'm raising my hand (I'm using VIM rather then VI), but please excuse
me for the smell, it's the beginning of summer here ;)
Oh, and I know few others that uses vi/m with FPC as well...

>This is actually the main reason Kylix failed: they targeted linux gui
> developpers. I encourage everyone to read this enlightning analysis:
> http://delphiroadmap.untergrund.net/A_cross-platform_vision_for_Delphi/index.html
> 3. As a delphi developper I have the following issues when considering FPC
> (I hope the following is not taken badly, I am just stating facts, as I
> see them):
>    i. Too many bugs in any official release. This is unavoidable,
> considering the many platforms and targets supported. But it is a fact.

You can correct me if I wrong, but doesn't Delphi comes with bugs as
well ?! If I remember correctly, Borland releases SP on their own. In
fact, even Vista did not arrives fully beaked, and as soon as you
installed it, you needed to installed "few" fixes...
Now sure we all wish to have bug free product, but unless you are
going to help the bug solving process, please accept that nothing is
100% bug free :(

>    ii. In any stable release, there are always some incompatibilities with
> Delphi. Which means that Delphi developpers will have to put an extra
> effort (in the form of $IFDEFs) to make their code compatible. In that
> respect the lack of an "Object Pascal standard" in the form of some ISO
> specifications is partially to blame. Given the fact that Linux IS NOT a
> Desktop platform, this simply means that object pascal people will keep on
> developping for Delphi/win32. It is a catch 22: Until borland delivers a
> quality multiplatform tool, no delphi developpers will do linux
> (exceptions do not change the rule). And until there is no serious demand
> for linux GUI apps there will be no motivation for borland to develop a
> stable, reliable, bugfree, multiplatform compiler+VCL. When I say demand
> for GUIs, I mean a secretary wishing to play her favourite solitaire game
> (one of the many hundreds of office style games, which were released for
> win95 and whose developpers are certainly doing something else today), or
> a college student using his/her favourite graphical plotter app for win32,
> or a more traditional type, who prefers ICQ2003b istead of the newer
> versions, etc. For example, my favourite browser is Opera. On win32 it
> looks and runs fine. On slackware 10.1 it looks and runs fine. On debian
> it hardly runs and looks like a crossover between a frog and a polar bear.
> My office computer runs debian and I am not the admin, so I cannot do
> anything.

I'm using Opera as well, on my Ubuntu, and it looks very cool,
specially with the skin I chosen :)

Linux is a desktop and server and live cd and OS ! you can do what you
wish with Linux, unlike Windows, that arrives with what Microsoft
believe you should have, and then you need to start finding other
issues, on Linux you have distributions that gives you different
things according to what the distribution is set to give.

The running of Windows as administrator is a security risk, and you
keep on paying on that by having spyware that effect the entire
computer, viruses that effect everything, and of curse your computer
becomes a zombie to an army of more zombies that are controlled by
spammers. If you have used it without any administration and system
privileges, it would effect only your user ! But then you can not do
much with Windows as well ...

Now you can say "I want Microsoft office", or you can say "I want a
program to create presentation, a word processor, spreadsheet, or
Instant message using the ICQ protocol", you can choose what you want,
a specific product, or a list of programs that does this things...

I can create GUI apps with Linux, and there is a demand for it ! While
people as myself that likes to use the keyboard more then the mouse,
and find out that it does the job faster then the mouse, uses the
commandline, we still using a GUI environment, and GUI programs, and
always try to make things better !

Just that you'll know, Hollywood, is using Linux for it's GUI features
to create movies, animations etc... And there are more and more games
and game engines etc.. It's just that people needs to open their mind
to something they still do not know, or it's different then what the
used to.

> To summarize, if there is any chance for a large number of developpers
> adopting FPC, they will have to come from the delphi crowd in the form of
> people willing to do a little extra work of compiling their existing code
> with FPC. This is the essence of Simon Kissel's proposal to Borland for
> cross-kylix compiler. I sincerely hope that one day this will become a
> reality with FPC.
> A final remark: the vast majority of pascal users use Delphi. So if fpc is
> to attract a lot of them, compatibility with delphi must be 100%. If there
> is only one incompatibility with a known workaround, a delphi developpers
> will live with it. If there is a single major thing, one can try to fix it
> himself. But if there are 10 or 20 small things then most delphi users
> will give up supporting multplaform/fpc targets. Unless your boss pays you
> to port delphi apps to FPC. Now, I can understand that the FPC team has
> put a lot of effort in making a compiler from scratch and it is natutal to
> do things differently. But it will be a big boost for FPC if delphi
> compatibility stops being and issue.

I agree, but are you willing to help the team and add features that
are missing in your opinion ? If you are asking "why me ?", well
that's how open source works, everyone develop an answer to their own
problem, and hops it will help others as well :)

> Best regards
> Peter Popov


More information about the fpc-devel mailing list