4 ms·
> The last point was also in retrospect not sot good for the language ecosystem: buyers wanted a 100% on this test suite before considering your Ada compiler, w
by mike_hock 5y ago
> The last point was also in retrospect not sot good for the language ecosystem: buyers wanted a 100% on this test suite before considering your Ada compiler, which means dev had hundreds of compiler bugs to fix and no paying customers.
You mean, they couldn't sell a half-finished product while claiming "100% conformity"? Awesome.
- noir_lord 5y agoEspecially given the markets Ada was used in.
- guerby 5y agoCompiler validation is done by a third party so you cannot claim validation without really passing the testsuite. All compilers have bugs and releases happen (at least for GCC which I know a bit more than others) with plenty of known open bugs. Having a testsuite is of course a good thing, however if you take the top 20 programming languages in use, how many of them do have an accepted wide coverage publically available language test suite? You said "half-finished product" but what about compiler for every other language than Ada of which most of them don't have a testsuite? How do buyer decide to use Intel C Compiler for example? Remember all of this was in early 1980. Having this testsuite was well ahead of its time as many things with Ada, what I'm trying to say is that it didn't play well at the time to help the language ecosystem grow.
- orhmeh09 5y agoThe purpose of Ada was not to sell compilers, nor to serve as a means for an acquihire, nor IPO, nor VC money. Passing the test suite is just about the most important thing an Ada compiler must do. The requirements of the language originate here: http://iment.com/maida/computer/requirements/strawman.htm#si.f.4 http://iment.com/maida/computer/requirements/strawman.htm#si... > Every user level aspect of the language will be formally specified. None will be left to the translator implementer, operating system or object machine. > There will be a traceable operational and/or technological requirement for each primitive data, operation and control structure in the language. > The language will not reveal minor differrences in computer architecture. > Machine dependent code cannot appear interspersed in-line in source language programs. > The semantics of the language will be determinable from the description. > Constructs of the language will have only one reasonable interpretation (i.e., physcologically unambiguous). > There will be an axiomatic definition of the language. It will be mathematically complete in the Turing sense. > The language will not sacrifice clarity for efficiency. > The language will not contain special features for rare cases. > All defaults in a program will be specifically provided in the language specification or in the program. > There will be a minimal number of defaults. … > Any translator for the language must implement the entire language (NO subsets). > Any translator for the language must implement only the language as specified (translator implementer may not expand the language specification). > Translator does not have to run on all object machines. Self-hosting is not required. These are the requirements Ada was designed to fulfill. If not passing the test suite is OK with you, you probably have no use for Ada and would be better served by another language. This is the best you can hope for in sensitive applications like aviation. I would feel better knowing the software flying me was extensively validated.
- mcguire 5y agoAnd it never caught on outside limited contexts because dev environments were thousands of dollars per seat.
- orhmeh09 5y agoThe purpose of the language was to serve those limited contexts for which no suitable alternative existed. It’s not meant to be Python.
- Jtsummers 5y agoAda was not meant to fill a gap where suitable alternatives didn't exist. It was meant to unify, under one language, DOD projects. DOD leadership was concerned about the variety of languages in use in software systems, Ada was designed to become a single language to replace others.
- orhmeh09 5y agoI may be at fault for citing Wikipedia, but I think this supports the idea that it was developed to fill a gap: > In the 1970s the US Department of Defense (DoD) became concerned by the number of different programming languages being used for its embedded computer system projects, many of which were obsolete or hardware-dependent, and none of which supported safe modular programming. In 1975, a working group, the High Order Language Working Group (HOLWG), was formed with the intent to reduce this number by finding or creating a programming language generally suitable for the department's and the UK Ministry of Defence's requirements. After many iterations beginning with an original Straw man proposal the eventual programming language was named Ada. The total number of high-level programming languages in use for such projects fell from over 450 in 1983 to 37 by 1996. > The HOLWG working group crafted the Steelman language requirements, a series of documents stating the requirements they felt a programming language should satisfy. Many existing languages were formally reviewed, but the team concluded in 1977 that no existing language met the specifications. https://en.m.wikipedia.org/wiki/Ada_(programming_language) https://en.m.wikipedia.org/wiki/Ada_(programming_language) (I admit being a little tired to examine a primary source this Sunday. )