I am currently in the market for a base programming language. The goal is by next year to create a company that will mostly focus on a web based product ( but with desktop / mobile access ), large cluster environment etc.
(web/server and desktop programming are potentially conflicting requirements)
In the last half year, i have been comparing a whole series of languages to be considered as a potential base language. With criteria like programming speed, memory safe, concurrency, platform support, memory usage, developers availability, ease of learning, ... and the list goes on.
FPC doesn't do memory safe (as in GC or as in managed, though it has some more language protections than e.g. C ) and concurrency (on a language level), while programming speed is relative (though that is more a compiler than a language thing in this class of languages).
Also it is one of the few open source projects with first level Windows support that is not based on some POSIX emulation.
The project will mostly be developed on Windows systems, deployed on Linux servers. Potential targets are also Windows Desktop/And/Or Background process, Mac, Android, iOS.
I'd say FPC's primary goal is all-round development system with a relatively low number of dependencies. It would be fine for webdevelopment, but the libraries are still sub-par. (though maybe not compared to some other ones in this list)
This makes it very suitable for small and midsized development because that provides a certain ability to solve your own problems within one development system.
* Rust: Interesting and safe concept, but difficult learning curve. Few developers. Editor support is growing but still in infancy.
Who is really pushing this except Mozilla?
* Swift: Easy to learn but platform depended a bit too much on Apple.
Agree on the apple front. Wouldn't even show up on my radar.
* C#: Large developers market, multi platform support ( .Net Core ) but large memory footprint and wasteful performance. Great Editor support.
If your gravitas is on windows, this is a no-brainer
* D: Potential, fast, fits more of the criteria but community seems small. Editor support again issue.
Yes, though I would call it more loud/vocal than having potential IMHO.
More by accident, as i programmed in Pascal / Delphi 20 years ago ( Gave up after Delphi 7 with the whole Borland situation), i remember there being a open source alternative to Pascal. And here i am. I need to admit having a bit of a C bias thanks to years of using C style languages.
C the language, or superficial C-like syntax? Examine your own feeling young padawan, these are different things.
And as i have a series of questions, sorry if they sound silly. I am trying to base my information on 20 years out of date information.
* How stable is FreePascal?
Good for the core targets, less in the fringes. Relatively to other languages though, FPC's fringes are good though.
* How memory safe is FreePascal? Is unsafe still supported?
Define safe (managed or GCed ?) FPC isn't either though. It is more C/C++ with a safer but not absolutely safe model. It just makes the unsafe bits rarer.
* How is the Editor/IDE support? I assume everybody uses Lazarus?
A very high percentage. Plugins exist for Idea, VSCode and Eclipse. I don't know the those that well, I use Lazarus and Delphi. (though I use some netbeans based embedded IDE for non FPC projects, ugh)
* Is programming a Linux Webserver a issue? This sounds silly but i remember in the past ( my work was mostly desktop based ) that Delphi has some issues for web applications and cross platform etc.
A webserver, or a serverside web application? A webserver can be dragged on a form of a GUI app and will work. But that would be a far cry from something like what Apache provides.
Sufficient to say that both exist, but
* How is the performance ( CPU en Memory ) these days compared to C / or the new LLVM backed languages.
Bad in extremely high optimizable code like benchmarks (localized problems that give the compiler room for optimization), fair in most other aspects.
* How is the multithread overhead?
Since Pascal is generally on the C/C++ level, roughly the same. It is not a language thing though, Delphi e.g., while having the same language is better after D2009 because all synchronization primitive are guarded by a spinlock keeping overhead down. FPC mostly just interfaces to OS primitives without adding much.
* How big is the Pascal community? Potential employees in North-Spain, Bilbao area ( What will be our target for
starting the company ).
Locally the chance on Delphiers and ex-delphiers is probably easier than dedicated "FPC/Lazarus" ones.
If you can harness their arrogance, one can also employ C++ers. They usually have the skill, though the attitude is often a problem.
Technically Pascal is a bit late entry in my selection because the other languages all have there advantages and disadvantages. Making a final assessment more product. I do not plan on rewriting the production code by picking the wrong language, so long term stable platform, active development, community etc are also all on my list
There are plenty more questions in my head but better start with some basic ones.
If you are targeting web development to a high degree, I'd take a different language as core web language, but restrict it to the more high volume business code. Then I would implement the small tooling, some of the more core services (-daemons) in FPC.