[fpc-pascal] CrossFPC is finally released

Simon Kissel scamp at untergrund.net
Mon Dec 31 15:51:03 CET 2012


Hi Michael,

 > What puzzles me is: why still do this ?

Depends.

 From my own/commercial perspective:

I still love the Delphi 7 IDE, and my co-workers also are Delphi users 
and have not switched to Lazarus. We also use a hell lot of commercial 
Delphi components.

Our work-flow for our embedded products simply still is based on the
Delphi 7 IDE, and on CrossKylix. Win32 versions of our embedded stuff
are built using the Delphi compiler, the x86 Linux version is built 
using CrossKylix (because the generated executables are still much 
faster than FPC ones), and the ARM targets are compiled using CrossFPC.

So we have all targets using 3 different compiler platforms integrated
into a single IDE, and a HUGE code base that works with all three of
those.

Due to FPC on ARM being a moving target (there really is still a lot
to do, and we are taking part in that) we need to maintain our own
build of FPC anyway, so if we'd go Lazarus we'd also have to maintain
our own Lazarus builds. Plus we are based on Libc on all Unix plattforms
for a number of reasons.

 From a "is this any useful for the public" perspective:

Embarcadero still has a number of customers who haven't switched to
Lazarus for a number of reasons. CrossFPC is providing an infrastructure
to those who want to stay with Delphi but also dive into cross-platform.

Time will tell what comes out of this. CrossFPC as a sort of FPC
distribution could serve as a supported platform for commercial
Delphi component vendors - it makes it very easy to support multiple
target platforms, even for closed-source applications. We've already
fixed a quite big number of commercial components so they compile
with Delphi, Kylix and FPC and therefore can be used by us. This also
could be useful for others.

We've got a lot of requests for releasing CrossFPC, and we don't really
yet know WHY people requested it, IOW what they are going to use it for.
But I know that CrossKylix is still heavily used, so there appears to
be an audience to it.

Today I think the biggest use for CrossFPC is to allow Windows Delphi
developers to easily target embedded and server applications with
a low learning curve.

CrossFPC also has a standalone-mode which does not require the Delphi 
IDE. You could therefore also regard it as a FPC cross-compiler 
distribution, which is also something that others potentially can build
upon.

For example, we internally use Sencha Architect and ExtJS together with
CrossFPC. You can create beautiful web applications using that, with
a Pascal backend that runs on a hell lot of hardware devices.

> So what does Delphi+CrossFPC offer that Lazarus (or MSEGUI+MSEIDE, if
> you prefer)
> does not ?

A different work-flow, a different infrastructure. And a team that
actually does a lot of commercial embedded work using this, which means
that things are tested a lot.

> Given that you obviously spent lots of time on this, I would think this
> time is better spent on implementing the missing things in Lazarus ?
> Which - after initial inspection - would seem to me a matter of
> improving the installer so it includes cross-compilation.

Just as with the ARM improvements for FPC we have been working on,
we'll be very happy if the work we do is re-used in other places. We
also have the intention to financially invest into the FPC platform -
for example we have the idea to host a sponsored FPC development weekend 
where work on the ARM platform would be done. An ARM compiler
that produces better code which in the end would double the speed
of our applications for me would be worth at least 30k Euro, to give
an example. We are curious if Embarcadero will manage to put out
it's LLVM-based ARM compiler in a quality that's an option to us, but
we have learned that it's better not to depend on them. But that's
a different topic.

Therefore: Even if CrossFPC as it is might only serve a very small
niche, the commercial motivation behind it probably will be able
to help FPC and Object Pascal relevance.

And yes, cross-compilation support inside Lazarus would be great.

Cheers,

Simon




More information about the fpc-pascal mailing list