And here is her cousin…

On the previous post, I talked about Turbo Delphi (Explorer), now I’m gonna talk a little bit about her cousin… Lazarus.๐Ÿ™‚ And for the starting, here’s his screenshot of the latest release…

laz_0918_resize.png

By the way… I assume Delphi as a girl and Lazarus as a boy, just like the original owner of the name. Both are nice names, aren’t they?๐Ÿ™‚ Ok, back to topic…

Lazarus is a free open source alternative IDE to (Turbo/Borland) Delphi (Studio). More detail informations about what is Lazarus can be read here, and more screenshots can be seen here. Lazarus had just released version 0.9.18 (beta) on 23rd Sept 2006. This release is built upon the latest stable Free Pascal compiler (a.k.a FPC), version 2.0.4. Congratulation to Lazarus team, and -of course- to FPC team.๐Ÿ™‚

I won’t tell you the story about Lazarus and/or FPC, if you wanna know about it then go to their website(s) and wiki(s). Here I’m gonna tell you what are the differences between this two cousins, since I like the both and work with both as well.

Advantages of Lazarus

  • The first and the biggest advantage point of Lazarus over Delphi is his multiplatform capability. I think FPC is the second (native) compiler after gcc regarding number of platforms supported.
  • Lazarus handles include files (.inc) very well, as if they’re integrated parts of the main source file (.pas). If you’re frequently dealing with big application or extra long source codes, then include files will help you alot. Delphi can’t handle include files at all.
  • Almost every visual component has public Canvas property. This is really fun because we could add extra drawing to any visual components without being bothered to derive it into a new component.๐Ÿ™‚

Disadvantages of Lazarus

  • Since FPC has no intention to support .Net then obviously Lazarus won’t run upon .Net either, not even on Mono.๐Ÿ˜›
  • Lacks of (complete and stable) widgetsets (user interface) library binding. Until this version, only win32 and gtk1 widgetsets that are considerably complete and working on Lazarus. Though some other widgetsets are also available (qt4, gtk2, winCE, carbon, etc) but not as complete and stable as win32 and gtk1 widgetsets. gtk2 is almost complete, but based on my personal experience it still not as stable as gtk1, yet.

Advantages of Delphi

  • If you’re a .Net fan and happy to bound yourself to M$ but don’t want to learn other (new) languages, then Delphi is all you need. She’s still the best object pascal IDE on .Net world, IMO.๐Ÿ™‚
  • Delphi IDE -especially the source editor- is marvelous! This is the thing that keep me using Delphi. I sometimes write codes in Delphi and compile them using Lazarus.๐Ÿ˜€

Disadvantages of Delphi

  • Obviously Delphi is getting more and more tiered to M$ Windows environment (and .Net oriented) which is very regretted by many of her users because Delphi is the biggest supporter of object pascal language. Kylix is simply dead!๐Ÿ˜›

Advantages of working with both

  • The compatibility between the two is “one direction”, I mean while Lazarus always try to be compatible with Delphi but on the other side Delphi (seems to) ignore Lazarus existence. Though not fully 100% compatible (but not far from that), we still could share common codes (and resources) between them.
  • As a result from compatibility point above, the lack of third-party component on Lazarus automatically got covered by Delphi resources (and community). In fact, a Lazarus user usually also a Delphi user, I’m one of the examples.๐Ÿ™‚

Conclusions

Basically, Delphi and FPC/Lazarus is complement to each other. That’s why I consider both as cousins, not as close as brother and sister but still closely related. So, I’m not quite agree if one say both are competing to each other, or even enemy. Saying one is superior than another (in all aspects) is not quite right either. Both Delphi and FPC/Lazarus is object pascal IDE and compiler, by using them both, I got good things from each.๐Ÿ™‚

Note:
I know this article is not comprehensive enough to figure out detail differences between Delphi and Lazarus. So, I welcome your comments to correct or suggest more comparison point(s). Thank you.๐Ÿ™‚

25 Responses to And here is her cousin…

  1. sahir says:

    sayang untuk yang versi linux belum stabil jadi sering close๐Ÿ˜€

  2. bee says:

    Untuk di Linux, Lazarus emang punya sedikit masalah dgn beberapa distro. Aku sih cuman nyobain di SuSE 10.1 aja, dan lumayan stabil kok. Malah proses compiling dan linking lebih cepat daripada versi Windows-nya.๐Ÿ™‚

  3. You write:
    Delphi IDE -especially the source editor- is marvelous! This is the thing that keep me using Delphi. I sometimes write codes in Delphi and compile them using Lazarus.

    What makes the Delphi’s source editor better than Lazarus’s source editor?

  4. WishKnew says:

    Several stuffs to add:

    Tim Jarvis, on Borland Developer Day (23 Sep 2006) at Cilantro Cafe Jakarta, said that Lazarus is a competitor to Delphi.

    Indeed, Kylix is dead.

    Since Turbo Explorer has arrived, I prefer Delphi than Lazarus for FREE at Windows Platform solution. For multi platform solution, I prefer Java. (That’s my personal opinion. Try NetBeans 5.0 or 5.5 beta, and it’s GUI is almost as easy as Delphi. No, don’t try eclipse 3.1 with VE. Slower and annoying layout.)

    For me, Lazarus is for the future, not now.

  5. bee says:

    @Vincent Snijders:

    The Delphi I meant in this article is Turbo Delphi Explorer. These seem trivial but they make me comfortable during writing codes in Delphi…

    – Delphi editor is prettier, look at the gutter, line numbering, code folding, tab, etc.
    – Code completion window is resizeable and can be sorted.
    – Selected line is highlighted, so I can quickly find the cursor position.
    – Code folding algorithm is better.
    – and more… I can’t remember every good thing on it.

    I still didn’t mention about debugger, plugin/expert, help system, local file history, palette management, window docking, etc. The only feature I miss in Delphi is integrated include files handling. The point is, when talking about IDE and its features, IMO Delphi is still better than Lazarus. But, on Linux world, Lazarus is simply the best!๐Ÿ™‚

  6. guntur_2k2 says:

    Quote:
    =====
    Lazarus handles include files (.inc) very well, as if theyโ€™re integrated parts of the main source file (.pas). If youโ€™re frequently dealing with big application or extra long source codes, then include files will help you alot. Delphi canโ€™t handle include files at all.

    From Delphi Help:
    =============

    The $I parameter directive instructs the compiler to include the named file in the compilation. In effect, the file is inserted in the compiled text right after the {$I filename} directive. The default extension for filename is .pas. If filename does not specify a directory path, then, in addition to searching for the file in the same directory as the current module, Delphi searches in the directories specified in the Search path input box on the Directories/Conditionals page of the Project|Options dialog box (or in the directories specified in a -I option on the DCC32 command line).

    To specify a filename that includes a space, surround the file name with single quotation marks: {$I ‘My file’}.

    Am I thinking unrelated things?

  7. Graeme Geldenhuys says:

    guntur_2k2, you are right. Delphi does have include file support using $I, but that is where it ends. It can only include a file at compile time. Lazarus and FPC have taken the include file idea much further. The Lazarus IDE and CodeTools understand and handle include files as part of the code without problems. In Delphi (at least in version 7 that I used), the IDE didn’t handle include files very great. In lazarus you can guide the IDE so that in knows the parent of a include file, include files with the same name, but meant for specific platforms in specific platform directories, etc…

    Graeme.

  8. jrp says:

    Since TDE is free now, the competition becomes more interesting. Lazarus has small enhancements here & there, while Delphi is a mature product. I hope this good competition will bring more joy and happiness for us users on forthcoming years. Cheers!

    I have fun using Lazarus. But for work, I use Delphi all the time.

    Speaking of Delphi, if you could …ahem… “persuade” her a bit, she’ll give you Intraweb. That is a HUGE advantage over Lazarus.

    BTW, let us have a look from another side: sometimes we don’t pick a particular software product just because features, performance, price or another “earthly matters”. We sometimes do pick a product because it has an image we want, a community we can plug ourselves in, or a lifestyle we can proudly live.

    jrp

  9. bee says:

    @guntur:
    Delphi does insert include files, but that’s it and that’s all. And what I meant is include files handling and integration with the main/owner source file, not just insertion. Even TDE (BDS 2006) still has no support for include files handling and integration.๐Ÿ˜›

    @jrp:
    I agree with your latest point, a very good point indeed.๐Ÿ™‚

  10. Blitzer_fugga says:

    ** Sorry for my English, I’m from German **

    I have to say that Lazarus is quite tempting for Delphi programmers, especially for programmers from UNIX environment with adequate C knowledge. But I personally think Lazarus not yet a competition to Delphi, sure it’s open source and all the free stuff hypes, but from my experience with Lazarus for a month now, I sincerely advice to avoid Lazarus.

    Not only it’s not widely supported by many VCL libraries (sad, but true, there are some components I can’t live without), but I think at this point Lazarus not even close to Delphi’s RAD abilities. I’m a professional programmer, who code to earn money, pay my bills and stuff. I love where Lazarus is heading to, but for now I’m not going to write my projects with Lazarus. Not only it lacks many features (compared to Delphi), but the fact that it support many exotic platforms really slow down it’s development. Its slow development and compatibility problem with Delphi, not to mention the size of compiled application, and **cough**wizards**cough**. Because I’m a programmer with deadlines, I’ll just stick with Borland Delphi because it’s faster and let’s face it, all my colleagues are using it.

    The best way to avoid this is to avoid all known third party VCLs unless stated Lazarus compatible, write your program with minimum usage of Delphi’s SysUtils, Classes, and standard units. Try to compile it with Delphi, and then import that project in Lazarus and re-compile it.

    When I’m off and need to code for fun, writing programs for my own need, or feeling like writing a GPLed programs I’ll use Delphi Personal Edition. I’m sorry but I prefer Delphi Personal than Lazarus, but that’s just me I don’t know about you guys.
    (Or when I feel suicidal I’ll write ’em all in assembly)

    I can tell that Lazarus (at this point) is a potential player in the object pascal community, but maybe I’ll stay away from it for about a year so Lazarus matures, and we’ll see.

    NOTE: I’m not affiliated with Borland, but that’s just my opinion on Lazarus

  11. Ewald Horn says:

    Taken from Lazarus list, a respond about a similar topic…

    I don’t agree with Delphi being better for Win32. That’s like arguing VB is
    better for Win32. The real argument should be whether the tool is scalable,
    reliable and accessible.

    I work with people using D7 and D2005. They all were amazed at the things
    you can do with Lazarus and FPC on Win32. Hence the decision to start
    learning Win32 development using FPC/Lazarus and not Delphi.

    For many projects (even commercial ones) I think Lazarus and FPC is an
    excellent choice, especially considering how much lower the startup costs is
    for a new business. Most of my income is still derived from Java-based
    solutions and some older C/C++ solutions. I’m busy learning Object Pascal so
    that I can port some applications – and the reality is that so far I’ve
    found nothing that I can not do with FPC/Lazarus that I really need. Sure,
    some of the add-on modules do not exist yet – for instance : Right now I use
    external processes to do image processing and I have to rewrite an entire
    DrawGrid class to make it do what I want, but it’s no big deal. The one
    thing I had against D6 when I worked on it for a while was that when
    something went wrong, I had no idea how to fix it because the RAD wizards
    were all I knew. Lazarus and FPC forces me to LEARN the language as I go
    along, which for me means that I (although it might seem slower than the
    Borland RAD solution) can actually delve into the code and fix something
    that I need to be different.

    The Lazarus/FPC solution is a very reliable (we have the source code to
    change – no vendor lock-in’s) and scalable solution for me. Small business
    owners are looking for ways to cut costs AND ensure that they don’t get
    caught with their pants down if a vendor decides to go a different route
    suddenly. Who remembers the enormous price hikes in Borland software after
    they became Inprise ? At one stage it was cheaper to buy Visual C++ than to
    buy Delphi or BCB!

    I’ still using Lazarus 0.9.16 Beta and FPC 2.0.2 – and from a commercial
    point of view, it’s a brilliant solution. I’m sure there are some people using
    the product commercially and finding it a very productive tool ?

    Kind regards,

    Ewald Horn

  12. Blitzer_fugga says:

    ** Sorry for my English, Iโ€™m from German **

    Hmm.. if you read my previous post you’ll see that I never stated that Delphi is better for Win32. Sure, it’s RAD but at some points I prefer others, say Visual Studio from Microsoft, or when I need to write portable app, I’ll use Lazarus/FPC. I only stated that I’ll avoid Lazarus for now.

    Sure, Lazarus is scalable and a great alternative, and not to mention very reliable. But since we’re talking about Win32, Lazarus not yet a competition to Delphi. Some open-source projects made it to this level (like MySQL, Apache, Linux, etc..) but I personally think that there’s a lot of things need to be done in order to make Lazarus a reasonable alternative than Delphi. The only reason that I can think of why anybody using Lazarus is it’s portability (and cost?), given access to both tool, Delphi and Lazarus.

    It’s normal, because Delphi is a mature RAD tool with many years of development. I’m not saying that Lazarus is bad, sucks, rubbish, or whatever, but let’s face it, it’s relatively new, and when you have to create a Win32 program (forget about deadlines) using both (Delphi and Lazarus) you’ll find that Delphi much faster because all the nifty details are hidden (With lot’s of third party components/wizards/tools; but you can also find a lot of open source components) so you can start working on YOUR OWN CODE right away. Later on you tell me which one you’ll use if your career depends on how fast you can deliver your product to the market.

    I’m sorry if all you know were RAD wizards, but I think that’s not a good reason to shun Delphi. Unlike Microsoft, Borland includes source codes for most of its components, units, controls and stuff. (architect & professional version only) Not only it gives you the possibility to learn how Delphi works, but you can also write a better one if you find that Delphi’s component lack the features you need. I know, since VCL hides most Win32 details most non-Delphi programmer would easily assume that Delphi programmers can’t live without their VCL, and they only know how to do everything through VCL. Some of this are true, but not totally accurate. For example, I moved to Delphi from VB, I used to write my VB programs using lots of Win32 API calls, since in VB you have to declare everything so it’s obvious that most advanced VB programmers are used to ‘call’ Win32 APIs. Another example, a friend of mine –a total Delphi convert– coming from ASM background, and another friend of mine, coming from C++ background, all with their own knowledge of Win32 API made it to Delphi, and use it side by side with VCL.

    As for startup costs, I know it might be an overkill but you can always buy older versions of Delphi (like Delphi 7 or 5), and you can actually use it for years. A lot of Delphi progammers still use their Delphi 4, and since multiple Delphi version can ‘co-exists’ on a system, you can always switch back and forth using different versions of Delphi. Sure, you might have to modify your code a bit, DEFINEs and stuff, but in general it’s relatively easier than having to port it to Lazarus. I’m not going to tell you exactly how much you’ll save from buying older version of Delphi, but if you’re a serious Object Pascal programmer, and you write Win32 only programs, a big startup costs for a long term profit might be the only reasonable way to go. (It’s not like Lazarus is not a ‘serious stuff’, but I’m talking about how Delphi profits you on the long run. Assuming nobody wanted to be out of business after 1 or 2 years๐Ÿ˜€ )
    But if you’re writing non-commercial programs you can always use the Personal Edition, it’s free and downloadable (although not from Borland’s own server) a quick Google will take you to a download link.

    Then again, if I want to write a program FAST I’ll use Delphi, nothing else. Not because that Object Pascal is the only programming language that I’m good at (not to mention VB, ASP, PHP, C++, ASM), but it’s the right tool for the job. If I feel like writing a tiny program, I’ll use ASM… If I want to write portable application I’ll use C++ (or JAVA, but I’m not good at it), I’ll comeback to Lazarus later when it matured and comparable to Delphi.

  13. kiyat says:

    wah.. di milis delphindo aku bilang lazarus pacar keduaku… lha masa om bee bilang lazarus cowok.. lha aku jeruk makan jeruk dong..
    ๐Ÿ˜€ Lazarus memang Seepp..

    benernya mo baca lg ttng Turbo Delphi, tp ketemu ma ponakan nya dulu, ya comment di ponakan nya dulu ajah.. lagian masih satu keluarga ini๐Ÿ˜€

  14. Agus Suhada says:

    I’ve just installed both net beans 5.5 (JAVA IDE) and lazarus 0.9.22 Beta
    cause I’m trying to convert From M$ to Linux….. of course with all my office application….
    They both have an amazing IDE…

    I think it is easier to use lazarus rather then net beans to create application for linux

  15. rabiul says:

    netbeans is not good. avoid it sooner or later

  16. Ewald Horn says:

    It’s been a while, and I’ve moved on to other languages, but would you believe it : I still use Lazarus for some small applications. Even though my main development language is Java (using NetBeans) I often run into situation where I need a small command-line application (EXE / DLL) that I can call from Java to do system specific things. In this regard I then revert to Lazarus to create the tool I need and then simply call it from Java.

    This is primarily used to call native drivers like connect to GPRS modems etc. via the com port, making it a lot easier on MS platforms than having to code things in Java.

    What is interesting is how perspectives change as one gets involved in larger and larger projects. I can safely say that no project I work on these days is possible to do in just one language. We often blend Java/PHP/JavaScript (AJAX)/Object Pascal/C# to generate the solutions required by clients.

    My main concern is that so many people are learning all these high-level languages, but C/C++ is being neglected, although it is critical for the survival of a whole list of interpreted languages! If you are reading this and have no clue how to write a stable background process on Linux or Windows, know that your skills aren’t quite are unique as you might hope.

    • bee says:

      > I often run into situation where I need a small command-line application (EXE / DLL) that I can call from Java to do system specific things. In this regard I then revert to Lazarus to create the tool I need and then simply call it from Java.

      If you can make the whole application in a single language, why bother with other languages? What Java can do that Pascal can’t do?๐Ÿ˜‰

      > I can safely say that no project I work on these days is possible to do in just one language. We often blend Java/PHP/JavaScript (AJAX)/Object Pascal/C# to generate the solutions required by clients.

      Basically I agree with that. But on my experience, it’s more becaused non-technical reasons e.g. existing ready-to-use frameworks/ modules, developer management, client demand, etc. But I believe I can build an application -no matter how big it is- using a single language: pascal. Except maybe Javascript, since browsers only understand this language. But since now there’s pascal-to-js compiler, I also able to write browser applications using pascal.๐Ÿ˜€

  17. […] And here is her cousin… « Bee.ographybee says: … Untuk di Linux, Lazarus emang punya sedikit masalah dgn beberapa distro. Aku sih cuman nyobain di SuSE 10.1 aja, dan lumayan stabil kok. Malah proses compiling dan linking lebih cepat daripada versi Windows-nya. […]

  18. Such did not hear

    P.S. Please review icons

  19. GEC says:

    A fellow blogger here, found your site via Typo3,
    and I have a piece of advice: write more. Honestly, you seem like you’re tailoring the full article around the video. It’s clear you know a lot, so why not use
    your knowledge to write something more considerable and put the video as something supplementary (if there at all)?

  20. Kim says:

    My brother suggested I would possibly like this website.
    He used to be entirely right. This post truly made my day.
    You can not imagine just how much time I had spent for this info!
    Thank you!

  21. Lenora says:

    I am in fact delighted to read this blog posts which contains tons
    of valuable information, thanks for providing these statistics.

  22. Foot orthoses are also used for knee pain, such as chondromalacia patellae, iliotibial band syndrome, and โ€œrunnerโ€™s knee syndrome.
    Regular Footbeds are purely designed to provide a cushioning effect and shock absorption.
    Be fit, lose the wobbly walk and get a new pair of insoles each time they begin to wear off.

  23. Kara says:

    What’s up to all, since I am really keen of reading this weblog’s
    post to be updated regularly. It carries fastidious stuff.

  24. I have read several just right stuff here. Certainly value bookmarking for revisiting.
    I surprise how much attempt you set to create this sort
    of magnificent informative website.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: