I ask for help to get a list of advantages, and disadvantages of using Lazarus/FPC instead NetBeans/Java.
I had to do the same excersize 4 years ago. I got a list of our project requirements, what existing code we have that we would like to reuse if possible, and what languages our developers know. Our project were going to start off for the Linux and Windows platform and then later branch into Mac and FreeBSD support as well.
Your project requirements are very important. Things to take into account.
- Available GUI toolkits for the language
- What reporting sollutions are available
- What backend database do you want to talk to
- Do you need to use 3rd party component to talk to databases
- How reliable is the language vendor. Will they still exist in 5 or 10 years.
- How easy is application deployment
- etc...
This narrowed down our search. Nobody liked C/C++, plus the Qt toolkit was too expensive. Kylix was unsupported, Delphi's future was uncertain, Microsoft's .NET was not cross platform, Mono was still in early development stages plus it has some licensing doubts hanging over it.
Luckily I stumbled across Free Pascal and Lazarus. We had existing projects in Visual Basic 6 and Delphi 5. Most of our developers were trained in both, but due to VB6 language being a total rewrite for .NET, that was also not an option for us. So that left Java and Object Pascal.
We liked the idea that we could reused some of our Delphi code for new projects. We would get up to speed much quicker because our developers are already familiar with the Object Pascal language.
Free Pascal and Lazarus was our ideal candidate that fit all our requirements. Also because it's open source, we know the development tools will continue improving, and we can maintain parts of it or submit fixes. True native applications are also much easier to deploy with no runtime requirements. So to make a long story short, we ended up using Free Pascal and Lazarus IDE. We have not regretted our decision to this day. We did end up writing our own custom drawn GUI Toolkit (called fpGUI) to fullfil some of our more specific requirements which the Lazarus LCL was not going too.
You did raise a valid point though that there are a lot more Java developers out there, but Object Pascal is such a easy and clean language. Any experienced developer, no matter what language they used, will find it easy to learn.
In the end, we are perfectly happy with the choice we made. We use the following tools for all our development work.
- Free Pascal compiler
- Lazarus IDE (not the LCL)
- tiOPF as our persistence framework to talk to any backend database
- tiOPF also includes Model-GUI-Mediator implementation, so we can use
standard non-db GUI components to bind to our business objects.
- SqlDB database components that come included with FPC and tiOPF supports.
- We used to use FPCUnit for unit testing, but recently ported and switched to DUnit2
- fpGUI Toolkit as our GUI toolkit
- tiRTFReport (included with tiOPF) which generates RTF files for reporting. We then
use OpenOffice to create the report templates and for viewing reports.
Sorry for the loooong reply, but I hope this gives your some pointers and things to look out for. You might have noticed that all our development tools are open source. This cut our development costs a lot, no matter how many developers we employ - plus we can always stay current with the latest and greatest versions of all the tools.