Hi Lazarus devel team and users,
Back in december 2007 I've announced (Ciprian Mustiata) a Lazarus fork named
Lightsarus. Because the effort to make it a new Lazarus or to sustain a big
Lazarus legacy was big I was reconsidered the idea. So I've consider to see the
Lazarus/FreePascal issues and I will try with that project to attack that
issues. Most of issues were discussed wit Mathias and with Florian in my attemp
to give a new fresh look to Lazarus.
FreePascal issues:
- FreePascal is a very powerful compiler, yet some features of it like RTTI
support cannot pass the FPC RTL bound. Another issue is to create components,
for the same reason in another languages.
.NET languages write all code in a language independent mannger as much as they
write a descrption of the code. RTTI and Reflection (the biggest importante of
RTTI) is a part of .NET/Mono. So someone may create one Button class in C#, and
may be reused in VB and to be checked with IS and AS operator with no issue,
because the C# compiled code is enough high level to have that informations to
it
- FreePascal is hard to get componetized, for the previous issue. This means
that is for now impossible (from my knowledge) to create a component in a DLL
and to import in Lazarus. That has multiple reasons, one of it is that
FreePascal internal unit structure may change from revision to revision. The
format that .NET uses can be used as a component from any other language and is
standardized (in ECMA). So if you have some C# code (like SharpZLib that offers
code for archiving/extracting from different archives), you may use it freely
from any other .NET languages
- FreePascal applications are huge! Even with smartlink, strip, the Lazarus IDE
have 8 MB, without stripping and with default settings, Lazarus executable have
80 M. For instance the Pasic IDE (yet not so big), after it embeds 100k, and
the entire binary have 200k. A hello world application in .NET/mono is around
3-4k.
- improvements over FreePascal in performance, can be achieved in the new
applications after recompiling. Improvements over mono runtime are for free
over all code.
Lazarus IDE issues:
- LCL: LCL wants to be (and is) a multiplatform way to mimic Delphi VCL over a
lot of runtimes. Win32, Cocoa, Qt, Gtk1, Gtk2, etc. All of them seem credible,
yet they have issues and different behavior. You may take in account making an
enterprise ready code that you should test twice the LCL code before you submit
over one platform (for instance Linux and GTK2). Right now most of blockers are
solved, yet some other like dragdrop did not work
- Lazarus IDE interface mimics Delphi 7. Yes, Delphi 7 is a nice release, I am
fully agree with it, yet Lazarus stride to achieve to be a smaller cousin of an
older product. Linux for instance did not try to mimic AIX (even IBM is a great
contribuitor to it), is less foundamental close to Unix than is OS X Leopard.
Thinking that Lazarus may be used for education purposes, because Pascal is an
easy language to learn, Lazarus became a headache. Code completion did not work
(well), a lot of code and UI looks outdated, you have to make a combination
between FreePascal/Lazarus wiki, Delphi VCL help and Google to solve your
problems, which most of persons are not ready (without some experience)
Anyway, Lazarus is de-facto IDE of FreePascal language, is pretty capable, that
is for sure, FreePascal the same.
Pasic IDE wants to build an Object Pascal on top of Mono (.NET). For that it
was took for now the best of the breed .NET compiler of Pascal (RemObjects
Oxygene, known as Chrome) and stride to build a new UI fo development. Today
the team (made from two persons) achieve the pre-alpha milestone where
something starts, something imports, someting open, blah blah.
We considered more than once what is the best approach to add value for free
software development and that approach say:
- we will not recreate a new runtime (LCL) as Mono offers enough
- we will not create a RTL as right now exist a very good one (partially
correct for some persons)
- the platform is from scratch well documented (even is on MSDN Microsoft site)
- it will work on any Mono platform. For instance may work on iPhone because
there is a build of Mono on it
- we will not focus on optimizations, componentization, is made by design
- the IDE will use Tango principlies (and they will have one distinct look and
feel on all platforms)
- it will be user oriented. The UI applies automatically as in Gnome, most
dialogs have no Apply button. there is a study in Tango project that the title
bar for new users should be bigger and better to contain a title and a
subtitle, and is implemented, etc.
- if there is a company that wants extra-testing, etc. it may pay and the money
will go back to development (most development will focus in compiler side,
which we want to make a complete Oxygene implementation of it)
So, there is a site: http