Turing's Man Blog
- Last Updated on Monday, 10 September 2012 21:39
- Published on Wednesday, 05 September 2012 22:31
- Written by Pawel Wawrzyniak
- Hits: 41457
This is really a big thing for me. Between many interesting open source projects I'm trying to follow, both - Free Pascal Compiler and Lazarus IDE - are on the top of the list. Why the availability of 1.0 version of Lazarus IDE for Free Pascal Compiler (FPC) is so important?
Well, more than 10 years we've been waiting for this moment and – moreover – Lazarus/FPC duo allows us to create multiplatform applications very easily, with the usage of advanced IDE (Lazarus), efficient compiler (FPC), huge set of additional components and quite strong community support. In my opinion anyone who agrees that advanced object oriented languages like Java or C# are not universal solutions and in some applications cannot be the best choice will appreciate. As well as all the guys, who realized over the years that advanced compiler features like garbage collectors, JIT compilation and virtual machine dependency for both Java and .NET in some occasions can be more like pain than real advantage. Not to mention huge bunches of developers who were (or are) developing applications in Delphi – they should find all the best things which Delphi brought to MS Windows world, together with easy portability of applications between many platforms and architectures. Lazarus/FPC is even more successful in my opinion than previous Borland/Inprise challenges providing "multiplatform" IDE/compilers like famous Kylix incarnations – which were aimed to be Delphi for Linux, but failed to gain appropriate attention and disappeared after version 3.0. Moreover, you can create and compile 32/64-bit applications in Lazarus/FPC (this feature was introduced in commercial Embarcadero Delphi XE2 on 31 August 2011).
Definitely not too late debut
Yes! This is an important moment for Lazarus/FPC project and I don't agree that it is 10 years too late – such opinion I've read somewhere on the Internet forum (OSNews?). I believe that there are no better or worse software development tools – it always depends on the scope of the project and the target we want to achieve. This is the main foundation of software engineering – to do the things with the right tools.
Is Lazarus/FPC any better than Java or .NET?
Looking from this perspective, we cannot give an easy answer to the question which technology is better: .NET, Java or Lazarus/FPC? All of them have their strong and weak sides. However, we should point out that Lazarus/FPC gives us the opportunity to generate native code, not byte-code for any kind of virtual machine with all the bloat, which can be a side effect of this approach – therefore, when it comes to speed and low level operating system resources control, Lazarus/FPC can be considered a very good choice.
Write once, compile anywhere
On the other strong sides of Lazarus/FPC is the usage of easy to learn and understand Object Pascal language, as well as previously mentioned huge amount of useful components (well-known from Delphi approach of application development), covering all the possible domains, from GUI, through reporting, charting, 2D/3D graphics up to advanced databases connectivity and DB GUI components. In my opinion Lazrus/FPC is a great tool for all applications which are frontends to databases, have to work quickly with visualization of processes, are used in monitoring or control systems. Additionally, a huge advantage of Lazarus/FPC is the platform independency – with FPC targeting many hardware architectures and operating systems' platforms it's really a viable option for concurrent MS Windows, GNU/Linux and MacOS development. However, there is quite a different approach when it comes to multiplatform development in FPC/Lazarus – not "write once run anywhere" (like in Java), but "write once compile anywhere". Which method is better? Come on, no easy answers! There is no better or worse approach – it depends on the result we want to achieve.
Lazarus IDE running in 64-bit MS Windows 7. We can see similar IDE organization like in older versions of Delphi - many people will love it, many won't :-) In one of the windows we can see Lazarus motto: "Write Once, Compile Anywhere" - this is simple graphics demo with the sprite moving all around this window. Well, who said one can only write database frontends in Lazarus/FPC? There are also OpenGL examples available
Object Pascal is not obsolete, it's well-established in its niche
So, thanks to the fact we now have Lazarus IDE in version 1.0, we can add another important option in our toolset when we consider application development. We shouldn't get blind by the stereotypes, like: "Object Pascal is obsolete", "Lazarus is unstable", "Lazarus/FPC proposes the old way of application development", "Only C++, C# or Java" – all of these are huge simplifications. What we can wish to the project is to gain more devoted hobby programmers and – which is even more important – at least some enterprise support. When it comes to the choice between "managed vs unmanaged code", "virtual machine vs native execution" etc. – this will be the good option to be considered. We should also remember, that Object Pascal dialect provided by FPC offers its own extensions, therefore it's not one to one replacement for Delphi, when we consider Lazarus. However, both dialects are very similar.
Lazarus IDE running on Mac OS X - as presented in Wikipedia. It's really multiplatform IDE
Strong, multiplatform player between MS Access and Visual Studio?
Finally, as I'm no longer a professional software developer or software engineer, I'm still a devoted hobbyist programmer. Thanks to this fact, I don't care too much if there are more market opportunities for Java or C# experts (or anything else). I know there are almost no job offers for Delphi (Object Pascal) programmers today, but still I can recommend Lazarus/FPC to all of you – both amateurs and professionals. For many projects this can be a good choice. When someone would ask me where to place Lazarus/FPC among other software development tools on the market, I would propose: between MS Access and Visual Studio (VB.NET and C#, Windows Forms flavours), including the fact it is free (as in "freedom" – GNU GPL/LGPL mixed) and multiplatform. I hope you get the idea.
Summary and where to go next?
Enough from my side for this moment – please visit project's website, download and install Lazarus/FPC, take a quick tour and gain your own opinion. You may need some support from the community, their forum, Wiki or "Lazarus. The Complete Guide" book, here. If you worked with Delphi (the last version I was using was Delphi 5.0 somewhere in 2000/2001 – for my thesis at school and at work, too), you'll feel like at home. However, Lazarus/FPC IDE is much more advanced than Delphi 5, of course. All the features of the IDE are very modern, but still, simple to use and not overdone. I believe we needed such alternative to other available software development tools, especially because Delphi has one very strong position in rapid database application development (GUI frontends), as well as control and monitoring systems.
If you need in-depth introduction, Michael van Canneyt (one of the Free Pascal Compiler developers) wrote some books on Free Pascal and Lazarus – check here.
To summarize in two sentences – Lazarus/FPC is great, multiplatform, extends Delphi tradition, doesn't rely on any virtual machine, is very good for rapid application development, yet can be considered "obsolete" by some professionals due to the stereotypes which evolved in the software engineering field. I hope with Lazarus/FPC these stereotypes will be devastated quite soon.