Page 1 of 3 123 LastLast
Results 1 to 10 of 27

Thread: Objective comparison between FreePascal/Lazarus and Delphi

  1. #1

    Objective comparison between FreePascal/Lazarus and Delphi

    I apologize in advance if there is already one or more threads on this subject; feel free to point them out and close this one if so.

    After the discussion on the Delphi Starter Edition news post and previous postings from Will and others expressing misgivings about FP/L and its stability compared to Delphi, it has caused me to think about potential "gotchas" in using FP/L for serious large-project development, both in general, and for game development specifically. I'm currently tooling up to start some major projects and am strongly considering going FP/L for them. I have done a bit of research into the features and shortcomings of FP/L, including using several versions and building several projects with them to see for myself firsthand.

    That said, there seems to be a significant amount of antipathy towards the FP/L projects in terms of maturity and stability, but a dearth of documented "boots on the ground" substance to those misgivings. I'd like to know what other people's knowledge and experiences are with both products from a comparative viewpoint.

    I want to state up-front that I DO NOT WANT to instigate a tool "holy war". Everyone believes the tools they chose are the best for their needs, and I don't want to argue over that or anything else. What I want is simply a side-by-side comparison of features and deficiencies that you think are important and why. What are they missing? What sorts of stability issues have you encountered? What features are missing from either one?

    In other words, what important issues should someone who is mulling over the choice to build serious production projects in one or the other consider in his decision?

    I think this type of discussion could yield some valuable information, not only for old codgers like me, but for new people looking to get started with development in Object Pascal. I also would LOVE to have a "gotchas" list to keep in mind when using either tool, so I don't beat my head against a brick wall as much trying to find out whether I've fallen down some rabbit hole, or if I just need to keep looking for my own PICNIC errors.

  2. #2
    side-by-side comparison of features and deficiencies that you think are important and why
    Delphi doesn't support yet: 64-bit and ARM architectures, Linux, MacOS X, "native" iOS support(only via MonoTouch) and Android. This list can be continued, but other platforms not so important.
    Stable version of FreePascal has some problems with 64-bit ABI(one problem which I got was fixed in FreePascal 2.5.1).
    Sometimes Delphi generates faster code than FreePascal does, but this is not critical.
    FreePascal can be used with object files from GCC compiler and this feature is useful for me(static compilation with native libjpeg(in future I want to use libjpeg-turbo with MMX/SSE optimizations) and zlib for faster decoding jpeg and png, also I can use static compilation with Chipmunk and libogg). Delphi can be used only with object files from Borland C++, but I didn't get success to build and use something else than zlib...

  3. #3
    Co-Founder / PGD Elder WILL's Avatar
    Join Date
    Apr 2003
    Location
    Canada
    Posts
    6,107
    Blog Entries
    25
    Well I won't get into the obvious different between commercial (dedicated team who's careers it is to work on it) and open source (various people who work on it in their spare time) the effects of that speak for themselves so that's off the table from a technical stand-point.

    My main issue with Lazarus is the Mac OS X port. I love it on Windows, it does a decent job, but on the Mac it fails miserably in the stability department. Windows it's better, but there are still issues. I'll try to list them as I know them.

    Mac OS X Issues:

    GDB debugger seems to crash all the time on my system (less than a year old iMac with the latest version of Snow Leopard) and other than blindly compiling/building I cannot debug my source with it. I've tried fixing it, but nothing seems to do the trick. This is a problem for the last stable release and even some of the more recent SVN versions too.

    There is a thread about another develop having the same issue, but when he stores his source on an NTFS drive. You'd have to go to the Lazarus forums to get more details on that. It did however seem similar to the issues I was having. Forum Thread

    Beyond that, obviously because Lazarus uses GDB for debugging, instead of a much clearer debugger error message you sometimes get SIGSEV errors that merely tell you that you screwed up with memory management. This is common among all platforms. I remember Delphi's own in-suite debugger was a bit more helpful in this matter.

    There is a project for a Lazarus/FPC specifically designed debugger, but it's still a long way away from being as nice as Delphi's or even GBD in a way.

    Cross-platform Advantage:

    Delphi doesn't yet have it, but sometime this year we'll be receiving a 64-bit Windows and a Mac OS X edition. Still this doesn't give us support for iOS yet. You can use Delphi Prism with Mono and such libraries as MonoTouch and XNATouch, it has been done, but there will never be as nice as a more closer to 'native' solution.

    FPC on the other hand is iOS capable and will allow you to make iOS Apps through Xcode. I don't think this can be done with Lazarus just yet.
    Jason McMillen
    Pascal Game Development
    Co-Founder





  4. #4
    Quote Originally Posted by WILL
    Mac OS X Issues:
    Seems I need real Mac, because as always debugging under MacOS X 10.6.6(previously I have had 10.6.3 when you made your first topic about lazarus and MacOS X) in VirtualBox just works for me...

  5. #5
    Good stuff. Keep it coming.

  6. #6
    Co-Founder / PGD Elder WILL's Avatar
    Join Date
    Apr 2003
    Location
    Canada
    Posts
    6,107
    Blog Entries
    25
    Quote Originally Posted by Andru View Post
    Seems I need real Mac, because as always debugging under MacOS X 10.6.6(previously I have had 10.6.3 when you made your first topic about lazarus and MacOS X) in VirtualBox just works for me...
    When I run Lazarus in my virtual Windows XP using Parallels, it seems to work ok. With the exception that all my projects will crash just as they are being closed. Happens to them all and it had never done it before when I was running Lazarus on a PC with Windows XP. I don't confess to completely understand it. I only know that there are some major issues with GBD under Lazarus on Mac OS X.
    Jason McMillen
    Pascal Game Development
    Co-Founder





  7. #7
    FreePascal is made by developers. Not designers who care about end user experiences, like Delphi most likely is. Lazarus especially is rapidly changing in both form and configuration. Now, I haven't used Delphi since Turbo Delphi, which was okay, but limited, so I don't know how objective this post is (I always rebuild fpc/lazarus every 3 days or so)

    You'll always have trouble setting FPC/Lazarus up on a unix system, if you haven't used the lower level configuration interfaces for at least a decade(Mac...). I still haven't figured out how even Linux folks can tolerate all the access restrictions and the amount of different directories.

    Delphi is straight forward. You get what you think you get, which is a Win32 compiler with a graphical IDE. It works

    Lazarus is straight forward when you have it running. You get what you've configured it, and all the other tools for, whether it's Win32, win64, linux, amiga, etc. If you accidentally have other tools in the path, or hidden in user folders somewhere it might act different from what you thought it would do. But at least you'll be able to change this You'll have to rebuild it to install components which might seem scary, but it's (almost) perfectly safe, and even beneficial in many cases

    I mostly work in embedded systems those days(ARM, AVR32, etc), so I have no need for Delphi at all, so I'm of course biased
    Peregrinus, expectavi pedes meos in cymbalis
    Nullus norvegicorum sole urinat

  8. #8
    Not sure about the objectiveness, but anyway...

    - Documentation is even worse than in current Delphi version (Delphi 7 had the best documentation by far)
    - No cnWizards or any other IDE plugins (I can't live without cnWizards!)
    - Very limited number of components, many 3rd party components are for Delphi only
    + Cross-compiling that actually works (Using CodeTyphon)

  9. #9
    At this point, I still use Delphi alot for my projects because it just feels comfortable. Allthough FPC/Laz have a great featureset, delphi is very stable and does it's job well. I would love to start using FPC/Laz for all my code, but there are a couple of things getting in my way.

    > I've found that the delphi debugger works great in 95% of the cases, but GDB let me down way more often. It often gives me errors like: Symbol not found in context or similar. I just tried to debug an application, but it didn't work AT ALL. It just seemed to hang in debug mode after I hit F9... Ctrl+F2 doesn't help, and after some time the application will be shut down automatically (Do note that I am using an automatic build of a few days back). Also, each time I start my application (with certain linker options) i get a SIGSEGV error from the debugger, which is really annoying when you want to test your software quickly. I want to feel comfortable with these things, but I always end up getting annoyed by these issues.
    > In delphi, I love to CTRL-click somewhere to jump to the definition. I really miss that in Lazarus.
    > On ubuntu, it is not possible to restore the entire IDE with one action. I have to maximize every single IDE window separately, which slows me down quite a lot.
    > And a nitpick: The delphi compiler seems quite a bit quicker than FPC. Not a big issue for me though, but it belongs in the list.

    I want to start using FPC for the following reasons:

    > Cross platform and 64bit support. ofcourse!
    > I like how lightweight it is compared to Delphi, yet offering a lot of tools and components.
    > I like the FPC pascal dialect (for example the +=, -= operators) and the fact that it's a bit more strict than the delphi syntax here and there.
    > And it's opensource!! Would like to contribute someday, when I have a good idea for an extra feature.

    I'd love to use FPC/Laz more often, when they are more stable and have a good debugger. That's their main problem now, so I believe. Now, I still use delphi mostly, but I try to keep my code FPC compatible.

    Just my $0.02.
    Coders rule nr 1: Face ur bugz.. dont cage them with code, kill'em with ur cursor.

  10. #10
    Quote Originally Posted by chronozphere View Post
    > I've found that the delphi debugger works great in 95% of the cases, but GDB let me down way more often. It often gives me errors like: Symbol not found in context or similar. I just tried to debug an application, but it didn't work AT ALL. It just seemed to hang in debug mode after I hit F9... Ctrl+F2 doesn't help, and after some time the application will be shut down automatically (Do note that I am using an automatic build of a few days back). Also, each time I start my application (with certain linker options) i get a SIGSEGV error from the debugger, which is really annoying when you want to test your software quickly. I want to feel comfortable with these things, but I always end up getting annoyed by these issues.
    Sometimes this hints for lack of debug information in the project settings. There are alot of options for compiler options, and you also need to take out all code optimizations for smoother debugging. Also if the SIGSEGV is caused by a DLL like OpenGL or DirectX even Delphi can't trace what the problem is.

    Quote Originally Posted by chronozphere View Post
    > In delphi, I love to CTRL-click somewhere to jump to the definition. I really miss that in Lazarus.
    > On ubuntu, it is not possible to restore the entire IDE with one action. I have to maximize every single IDE window separately, which slows me down quite a lot.
    > And a nitpick: The delphi compiler seems quite a bit quicker than FPC. Not a big issue for me though, but it belongs in the list.
    In Lazarus you can Ctrl-click to jump to definition. And also Ctrl+Shift+Down to jump to implementation. All keys and controls are configurable.
    I have not noticed any speed issues so far. Apps start really fast, on Windows 7 at least. I read some compiler options increased the speed greatly for Linux aswell, smart linking be 1 of them?

    I don't even consider using Delphi anymore, though i have old Delphi 7 still installed. FPC/Lazarus is free which is the main thing. And as far as actual coding with the IDE go, i'm starting to like Lazarus alot. Have also managed to get 1 or 2 past issues fixed with the bug ticket system

Page 1 of 3 123 LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •