Archive for February, 2010

Cross-platform desktop development options: Lazarus and other Object Pascal options

February 10th, 2010 No comments

Object Pascal is a wonderful programming language! It is easy to read and understand while giving you a full array of modern object oriented language features. Strings are easy to work with, constructors are virtual, functions can be nested – these are only some of the goodies that come with the language.

I am by no means “religious” when it comes to languages though. It all depends on the project that one works on. The framework that one works with is much more important than the language itself in my opinion.

Object Pascal got popularized by the development environment called Delphi. It was initially created by Borland. If you programmed in the 80’s or early 90’s – chances are – you used Turbo Pascal (procedural Pascal) which was Borland’s best product at the time. They later evolved the idea of IDE into a modern language and framework.

Delphi’s strength was(still is), not only in basing itself on a great language – the VCL (Visual component Library) that came with the development environment was phenomenal. Moreover – it was extremely easy to develop your own components for repeated tasks and extend the IDE.

People who use Delphi will tell you that it is the best thing since sliced bread, but unfortunately – this was not enough to make Delphi or Object Pascal widely accepted. Delphi is still around and it is actively supported and developed by Embarcadero Technologies . New versions work with .NET as well as windows native libraries.

An effort to bring Delphi to other platforms was made by Borland at some point. They called the product Kylix. It was a nice piece of software, but at that time – there was simply no market to sell the product to so the effort died.

Free Pascal is the open source implementation of Object Pascal. It is an actively developed, very modern language that runs on myriad of platforms and CPUs. If you have a device on your desk or your pocket – chances are – you can compile for that target using Free Pascal. It is a very mature project that started when Borland decided not to release Turbo Pascal 8 and focus solely on the windows platform (this later became the first version of Delphi). Since version 2.2 – Free Pascal supports Generics for example which are the equivalent of C++ Templates. Many other modern features are already built into the language.

Lazarus is a free, open source IDE for Free Pascal. It is an effort to port the Delphi VCL to work with FPC and therefore on other platforms.

While the promise and potential of these tools was really appealing to us, the stability and maturity of Lazarus at the time of our evaluation was really not up to our standards. We could create and compile simple GUI applications and target different platforms, but the overall IDE was simply not usable in production environment.

While we would love to use Object Pascal in all our projects – there was simply no usable IDE for Free Pascal at the time and Embarcadero worked only on Windows. Free Pascal however is very mature, stable and full featured and we hope that Lazarus will catch up with it soon.

If you plan to develop a very simple application however – take a look at Lazarus and Free Pascal – it may be just the right toolset for you.

Next: Cross-platform desktop development options: .NET, Mono and Java