We need to start programming Windows software at my work and Lazarus seems most suitable for the tasks. Before Lazarus we tested Visual Studio and other similar tools ...
Hi, I think it’s great that you are starting to use Lazarus, and I believe it’s a very good decision. Especially for desktop apps, I don’t think there is anything better than Lazarus (or Delphi).
This is my first post on the forum, so I would also like to thank all the contributors to the project who made the Lazarus and FPC projects possible. Thanks!
I would like to address the concern some users have that the Pascal language is not widely adopted and is relatively unknown. I don’t think that’s a real issue, even if it were true.
For example, the Windows OS is committed to backward compatibility. My desktop apps that were written in Delphi 7, 25 years ago, still work today on modern Windows 11. I’m quite sure this will remain the case in the future as well, at least on Windows.
I would be more concerned about the future of my apps that depend on shared runtime libraries (like the Java VM). Whether such apps will still be able to run in 10 years without changes is something I doubt.
One realistic problem you could encounter is a situation where you need to use a specific library that isn’t written in Pascal — but such issues can arise with any language. Most of the time you can build then a small Interface app (with socket communication or something) to the other App.
Throughout the years (25 years of professional programming), I have also realized the power of compiled languages (as Pascal is) compared to scripting languages. The compilation step is beneficial because it helps detect typos and various other kinds of mistakes early on—issues that would take much longer to identify in a loosely typed scripting language.
A strongly typed, compiled language is also much better at providing correct context help (identifier completion). I’m also quite surprised that modern Pascal has some unique features that even C# lacks, such as declaring an array’s length based on the size of an enum. Likewise, C++ doesn’t have a direct equivalent to the try...finally concept, among other things.
And then there’s the IDE. Up until a few years ago, I was still working professionally with Visual Studio (and used Lazarus for my side projects), and I was not impressed when comparing it to Lazarus (or even to modern Delphi 11+ to some extent). In particular, the Lazarus IDE feels much more responsive than the other tools I’ve worked with, and it includes many "small" features - such as "numbered bookmarks" - that Visual Studio lacks out of the box.
I wish you good progress with your Lazarus projects!