3 ms·
The main magical part is largely Lazarus and LCL for desktop application development. The slightly less magical part is that the language has many features that
by badsectoracula 6y ago
The main magical part is largely Lazarus and LCL for desktop application development. The slightly less magical part is that the language has many features that you often find in languages targeting a VM but instead it generates native executables (pure Free Pascal executables can be less than 50KB) with no mandatory external dependencies outside what comes with the OS. It also target a ton of platforms.
But TBH outside of GUI development there isn't anything particularly special about Free Pascal that you wont find in any other language, especially if you do not care about requiring a VM (in which case something like C# will probably be the closest equivalent).
One thing that it has though and personally i find it very important when it comes to maintenance is that the developers care a lot about backwards compatibility - existing code you wrote even 20 years ago will keep working either as-is or with very minor changes. Personally two issues i remember having were in one case when character encoding aware strings were introduced, i was treating a string as a byte buffer (prior to that change they were basically byte buffers) so i had to change a declaration from using "String" to use "RawByteString" (which behaves as a byte buffer) - that was a single line change. The other change was when at some point some years ago (i think it was when Delphi-compatible generics were introduced) the ClassName of a specialized generic class changed format.
One issue Free Pascal and Lazarus have is that sometimes they feel a bit "messy" and unorganized or unpolished. But they are projects that are 100% community driven by many people, going back decades (especially FPC) so i guess that is to be expected, especially when they do not want to break people's code in pursuit of some ideal purity.