I have been following Lazarus and Free Pascal for years..
I usually use C++ and Qt for desktop application development.
I never cared for C# and .NET.
Probably because I became a Delphi addict in 1997.
(I left that for C and C++ because I wanted to do graphics programming, and because Borland screwed up)..
I have read the excellent article
Quick Modern Object Pascal for ProgrammersIn my mind, compared to other languages, modern Object Pascal does feature of lot of good things: properties, interfaces, classes, even low level stuff like pointers and memory management.
I am tired of C++, and having a break from it, devoting my time to learn proper C (c11), Rust, Python and Racket (Scheme).
But, when I picked up Lazarus - finally, a week ago, because the time was right! I noticed that I was actually writing fully featured desktop applications easily. Using modules, abstract interfaces and other advanced stuff that would have taken a lot of effort in other languages.
I know that a lot of people are using Javascript for user interfaces and they even create desktop applications in it. Kudos to them. I am not going to touch that!
OK.
So, what's the catch?
.. as much as I enjoy coding in Object Pascal, it DOES have a variety of annoying limitations that simply aren't present in other languages.) What does all this mean? In my opinion, it means FPC and Lazarus have far more "on their plate" that most people think: without them, Object Pascal would almost certainly drift completely into the "legacy" category.
I have enough experience with programming languages to know that nothing is perfect.
But I am curious - what are those annoying limitations?
For me, what I really like:
easy deployment
no runtime
painless cross compilation
properties and event handling without a complicated MOC compiler
you don't have to be a language lawyer to use advanced features