Running Cheetah

Delphi vs Lazarus, an introduction

April 26, 2011

You can find a lot of comparisons between Delphi and Lazarus on the net, but it strikes me that those comparisons are almost always focused on the compiler. In fact they are more comparisons between Delphi and Free Pascal. The biggest difference - Free Pascal is cross platform and supports 64 bit while Delphi doesn't yet(?) - is always mentioned. But a comparison of IDE features is practically always missing. When you're lucky there's a sentence like 'the Delphi IDE has more advanced features'.

Which is strange, because I like the Lazarus IDE more then the Delphi IDE. On the Lazarus demonstrations I give I always show a few useful features of Lazarus that Delphi does not have or which are implemented badly on Delphi. They never fail to impress the audience.


At first there is the difference in speed. Delphi startup times are really bad while Lazarus starts almost instantly. At my Lazarus presentations I always start Delphi before I begin. When I've finished the introduction I take a look at the screen to see if Delphi is already started. It never is. When it's finally there I start Lazarus which I can use immediately to start the demonstration. The startup-time impresses people without me having to say a word...

And it's not the startup-time alone. The Lazarus IDE outperforms Delphi on all tasks.

Simple features which gives the productivity a boost

In the first paragraph I stated that Delphi has some features that are just not implemented right. Let me explain that with an example. When you use 'Find declaration' in the Delphi IDE, you can always jump back using the 'alt-left' key combination. This could be a commonly used feature, if it was working consistently. But when you use 'alt-up' or 'alt-down' to switch between the implementation- and definition-section from a class, you can't jump back anymore! It's even worse, the cursor will jump to a prior location, which is maybe long forgotten. The same holds when you switch between tabs: 'alt-left' won't help you to switch back. In Lazarus on the other hand, you can use ctrl-(shift)-h to jump back and forth, following all your actions.

Simple things like this jumping back-and-forth functionality make Lazarus a better IDE to work with. You can spend less time on actually typing and investigating code, so there is more time to do the actual development.

The advantage of Open Source

It's not that strange that Lazarus is better in small things like this. When a Lazarus developer is annoyed because jumping back and forth doesn't work, he is free to fix the problem immediately. When he misses a tiny feature which can improve his production a lot, he or she is able to add that functionality. And all other users can take advantage of their work. If you encounter something annoying on Delphi though, all you can do is report it on Code Central, and hope it will be implemented in a newer version. But when the new Delphi release is there, will you buy it only because you can jump back and forth between different tabs using the 'alt-arrow' keys? I guess you won't, and that's why it is less interesting for Embarcadero to implement such features. If a developer working at Embarcadero finds it annoying that 'alt-arrow' doesn't work, he just has to continue his work on some shiny-new-feature he was assigned to. A feature that Embarcadero can put on the advertisements for the new release...

So are there things at which the Delphi IDE is better then Lazarus? Of course, among others Delphi XE comes with a profiler, a subversion client and multi threading debugging out-of-the-box. With Lazarus this is all more difficult. Lazarus also lacks something like Modelbuilder. But serious, when do you use that?

Tips and tricks for Lazarus users

I will write more articles about features of the Lazarus IDE that Delphi lacks. You can see them as a 'tips and tricks' section for users who switched from Delphi to Lazarus and want to get more out of it. You can also regard it as a list of reasons why you should switch from Delphi to Lazarus. And maybe.. maybe someone at Embarcadero will read these posts and decide to implement all these Lazarus features into the next Delphi release. So that in those cases I have to use Delphi, I won't be annoyed anymore about the rudimentary Delphi IDE.


Post comment

Your email adress will not be published. The required fields are marked by *

Name *
Email *
Post comment

Java-bytecode target  added to the Free Pascal compiler.

August 20, 2011

A new target has been added to Free Pascal compiler. It is now possible to compile applications to Java bytecode. This means that these Free Pascal applications can run in a Java Virtual Machine (JVM), so that it can run on any platform that has Java support.

Dutch Pascal conference 2011.

June 12, 2011

After the success from last year, the Dutch Pascal Users Group organizes the second Dutch Pascal Conference on June 18th. Last year it was mainly focused on Lazarus, this year there will also be some topics about Delphi.