Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I have written several GUI apps and a virtual machine interpreter using FPC/Lazarus. It is great for cross platform GUIs and it compiles to standalone native code unlike C# (for a long time, before native AOT, which is still in development for Winforms). In my experience library dependencies are also more manageable, likely out of necessity since there's less temptation to just depend on off-the-shelf popular libraries which happens more often with C/C++. The Lazarus IDE has a builtin package manager for additional libraries and if you find what you need there, it will work smoothly. Unlike C/C++ it is also nice to have "interface" and "implementation" on the same file, making the project less cluttered. There are differences to learn, but that it is to be expected from a non C-family language.

On the other hand, I have pet peeves with the language that prevent me from using it for more ambitious projects:

FPC has no "inline" var declarations, and the community is even against it. My code is math heavy with many "transient" variables so the dedicated var section at the top of the function gets crowded quickly. Recent Delphi now has this, but costs have to be taken into account if you want to commercialize or deploy cross-platform. It seems that the real reason for this is to help the compiler be fast instead of helping the programmer.

Case insensitivity might be a minor thing, but it is there and you have to deal with it.

Then optionally dropping the parentheses for functions with no arguments hides the fact that you're calling a function which possibly does something else besides just reading a value.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: