gour:
For quite some time I was looking at Ada as potential language
to write multi-platform desktop application, but, being the big
language which requires lot of time and energy to invest into
learning/mastering it, I, somehow, feel reluctant seeing that
there is practically no open-source community around Ada, no
truly open-source compile -- what would happen if AdaCore would
simply pull the plug since I do not believe there are enough
people capable to maintain/develop FSF GNAT, so I'd appreciate
if you can write few words about Ada vs D hoping that the
latter it one you are recommending for new (gui) projects?
I simply hope that D can provide me with most/all the features
I'd expect from the language like Ada, but but even more modern
features, more choices when it comes to developing GUI desktop
app, more compiler choices, better tooling and, of course, much
bigger community of open-source enthusiasts.
Ada language has several nice features worth stealing (I'd like
both D and Rust to add constrained values, static preconditions,
ranged subtypes, and annotations to control access to global
variables), and if you're writing a train control system, a space
probe/satellite, a military machine control, a
hardware-constrained device that needs to be very reliable (like
a medical machine working inside the body) then using Ada/SPARK
could be reasonable.
But for an average multi-platform desktop application Ada is not
a good idea. The main problem is not the language itself (that is
very verbose, but that's not a show-stopper), but the tooling
(very scarce, and very pricey, very few compilers, very few IDEs,
etc), the community (small), and the libraries (not many). A
sufficiently rich and sufficiently determined group of
programmers could probably write a regular desktop application in
Ada, but you're walking uphill for not enough reason. Sometimes
worse is better because it's actually overall better.
There is a recent thread about Ada on Reddit, but unfortunately
the best comment in that page has being deleted... :-)
https://www.reddit.com/r/programming/comments/49y7sc/11_myths_about_ada/
Bye,
bearophile