Here is another one, Ada Core is the only Ada vendor.<p>There are still 7 companies around selling Ada compilers, granted not all of them support the very latest standard.<p><a href="https://www.adacore.com/" rel="nofollow">https://www.adacore.com/</a><p><a href="https://www.ghs.com/products/ada_optimizing_compilers.html" rel="nofollow">https://www.ghs.com/products/ada_optimizing_compilers.html</a><p><a href="https://www.ptc.com/en/products/developer-tools/apexada" rel="nofollow">https://www.ptc.com/en/products/developer-tools/apexada</a><p><a href="https://www.ddci.com/products_score/" rel="nofollow">https://www.ddci.com/products_score/</a><p><a href="http://www.irvine.com/tech.html" rel="nofollow">http://www.irvine.com/tech.html</a><p><a href="http://www.ocsystems.com/w/index.php/OCS:PowerAda" rel="nofollow">http://www.ocsystems.com/w/index.php/OCS:PowerAda</a><p><a href="http://www.rrsoftware.com/html/prodinf/janus95/j-ada95.htm" rel="nofollow">http://www.rrsoftware.com/html/prodinf/janus95/j-ada95.htm</a>
Two other beliefs about Ada:<p>1. <i>It was designed by committee.</i><p>According to Wikipedia, it was designed by a small <i>team</i> at Honeywell Bull in France. A different connotation from the label 'committee'. What is the more accurate description? It may seem unimportant, but most programming languages are designed by one or two individuals and the word 'committee' is perceived negatively by many developers. (Aside: Julia was designed by multiple authors, but no-one says the language was designed by committee.)<p>2. <i>Ada is a very large language. Not suitable for small projects. </i><p>This belief about the size of the language is true, but the question is: does it matter? I prefer small languages over larger ones, but I would be interested in the opinions of Ada developers. Is the language size irrelevant? And is Ada suitable for projects of any size?
Two more:<p>Ada is a name, not an abbreviation. It should be written "Ada" and not "ADA".<p>---<p>Keywords in Ada should be written in lower case letters:<p>It is a common misconceptions that Ada enforces or encourages upper case, but here is the official Ada 83 Language Reference Manual on the subject: <a href="http://archive.adaic.com/standards/83lrm/html/lrm-02-09.html" rel="nofollow">http://archive.adaic.com/standards/83lrm/html/lrm-02-09.html</a>...
> Reserved words differing only in the use of corresponding upper and lower case letters are considered as the same (see 2.3).<p>The manual itself doesn't even use upper case:<p>> For readability of this manual, the reserved words appear in lower case boldface.<p>So even the Ada standard recognizes the upper case is less readable and undesired.
I have seen a claim that Ada now has or is getting something akin to C++'s destructors or Rust's Drop trait. What would Ada's version be called, and what would it look like?<p>To me, the destructor is the single most distinctive and powerful feature of C++, adopting it is what made Rust viable, and lacking it makes Zig overwhelmingly less interesting than it might have been. If Ada got destructors, that would promote the language, in my view, from dead to potentially viable.
I work with Ada professionally and there's a lot to love about it. However, I have one big gripe that <i>constantly</i> gives me problems. It has nothing to do with the myths in the articles, but it's rare that I get to talk about this language so I'm taking my opportunity.<p>Ada's syntax makes differentiating variables/arrays from functions unnecessarily difficult. This is because parentheses are used for both function calls and array accesses. <i>And</i> function calls without parameters do not require parentheses at all.<p>Lets play a game. See if you can figure out which is a variable, array, or function.<p><pre><code> A := B;
C := D;
E := F(G);
H := I(J);
</code></pre>
A, B, C, E, H, and J are variables. F is an array. D, G, and I are functions.<p>The only way to really tell what's what in many cases is to look up definitions. That would be fine... except there is very little competition for Ada IDEs. I use AdaCore's GNAT Pro Studio (GPS), but the interface is clunky and often very slow compared to modern JetBrains IDEs.<p>This syntax issue is a constant frustration and it's something which could have very easily been avoided.
"However, there’s a version of GNAT released by AdaCore called “GNAT Community Edition” which is similar to FSF GNAT but does not provide the runtime exception."<p>Ok, so if I download the GNAT Community Edition from Adacore, how I do switch GPS to use the FSF GNAT tool chain? How about the static analysis tools? Windows and Linux?<p>Everytime I look at Ada, I want to start doing a project with it. What a wonderful tool.
For anyone wondering about how to use the FSF version of the GNAT compiler: There are packages available in Ubuntu package repositories, very likely others too. GNAT's GPRTools are also available in a separate package. When I first tried Ada I was up and running in no time.
I’ve wanted to try Ada and Spark for a while mainly to try formal verification and because a professor I listened to for a while keep banging on that most bugs don’t need to be written if you use Ada properly. (Shrug.) Who knows, I’d like to try it sometime.
Ada was one of the first language I learned academically then I've never had the chance to use it again. It's not one of these fancy languages everyone want to use for their toy projects. However, I remember it was a pretty cool language. Better static checks than C, including a robust module system, clear semantic.<p>I'd like to give it a try again as an experienced programmer and see how the language has evolved over time.
Here's one question not on the list: what's the Ada job market look like?<p>As a web dev looking to deep dive on some non-web topic with the pragmatic constraint that it must be a hireable one, Ada seems promising but I wouldn't know where to start looking for jobs.
Is anyone aware of any small/medium size companies in a regulated industry that are actually using FSF GNAT in production?<p>I come across a lot medical device startups/contracts who could be a really great fit for an embedded application in Ada but who will not have the budget for Adacore's GNAT. The production examples on Adacore's website are typically very large companies in regulated industries.