4 ms·
I'd be very interested in someone with substantial experience in Ada/Spark providing some insight: * Why did Ada not manage to get a significant foothold outsi
by the_duke 6y ago
I'd be very interested in someone with substantial experience in Ada/Spark providing some insight:
* Why did Ada not manage to get a significant foothold outside of some small domains?
* What's great, what's not so great about it?
* How "modern" does the language feel, including the tooling, documentation, etc? Specifically Spark 2014. ( I see a LSP server and VSCode plugin, for example)
* Spark2014 seems to be open source, with a GPLv3 license. Is this what most companies use, or are there significant closed source parts that must be bought?
Are most companies still on older versions?
* What other languages are most similar?
- Lucretia9 6y agoI don't know SPARK and haven't touched it, but...I had to learn Ada9X at uni in 1995, I've been using it for the last 15 years and have been on #Ada on Freenode for longer. 1) The creator of #Ada, caracal, once said that when he was in the army, there were two groups of people: i) those who were interested to learn about Ada and ii) those who were totally against it without having seen any of the language at all. The second group were the ones who, when they came around with the green manuals, just refused to even read them. 2) I went back to Ada after burning out in a shitty games company, essentially sitting in a debugger for 19 hours straight isn't good. The only time I have to use a debugger is when using pointers, Ada allows you to avoid pointers for the most part. Ada's type system, data modelling, it's unparalleled anywhere else ever. There's not enough people working with Ada in OSS. It's easy to burn yourself out on a big project sometimes. 3) Very modern, the docs are good, but the tooling is lacking. But then I come from a time of command lines and no package managers.
- thesuperbigfrog 6y agoAlire is an Ada package manager built around the GNAT toolchain: https://github.com/alire-project/alire https://github.com/alire-project/alire I have not used it, but it looks promising.
- Lucretia9 6y agoCurrently it's built around gnat, not looked at the source, but I hope they've built in portability across compilers.
- jonathanstrange 6y agoI don't have extensive experience but learned it a few years ago and believe I can answer some your questions. This is subjective, others might disagree or perhaps add their own experiences. > Why did Ada not manage to get a significant foothold outside of some small domains? Probably mostly due to licensing issues. Ada has a runtime that you basically have to use and the most complete AdaCore version forces you to release executables under GPL. The FSF version is less complete (many libraries are missing) and allows you to use the much more permissive mGPL version. However, it always lags behind the version from AdaCore and many developers in the past were scared away by the licensing issues. Other reasons often mentioned: - Ada has a certain (perceived) background in the US military and aviation industry, which some people don't like. - Ada is a very complete language and not easy to learn. The syntax is special, in that it specifies each construct on its own and re-uses keywords. - Overuse of pragmas and "glued on" Unicode string handling > What's great, what's not so great about it? Great: It's an extremely fast and safe general systems language suitable for all kinds of programs. It allows high level and extremely low level programming and is suitable for embedded programming. Not so great: The type constraints for generics are not as expressive as they could be. Aliasing rules ("pointers") are stricter than they would need to be. There are a few oddities with anonymous vs. named types to watch out for. > How "modern" does the language feel, including the tooling, documentation, etc? Specifically Spark 2014. Tooling and documentation is excellent, thanks to AdaCore and several good books, as well as the official Ada reference. The language does not "feel" modern, because many libraries are old and appear to be outdated. In reality, old Ada code will just compile and run so there is no need to constantly update and maintain libraries. > Spark2014 Can't answer that question. > Are there any close alternatives that are production ready? The GNAT Ada ecosystem mostly maintained by AdaCore is as production ready as a language could be. AdaCore expect you to buy a commercial license if you're doing safety critical work. As for other compilers, that depends on the vendor and most of them do not support the latest Ada standard.
- Lucretia9 6y ago>Probably mostly due to licensing issues. Yup. See https://www.reddit.com/r/ada/comments/ijwqfl/last_call_on_the_gnat_community_survey/ https://www.reddit.com/r/ada/comments/ijwqfl/last_call_on_th... > Ada has a runtime that you basically have to use and the most complete AdaCore version forces you to release executables under GPL. See above. > The FSF version is less complete (many libraries are missing) Incorrect, AdaCore just packages their libs with their version of the compiler, with FSF, you have to build them yourself, which is a pain. But they are working on that. > and allows you to use the much more permissive mGPL version. MGPL hasn't been a thing for at least 10 years now. The FSF version if GPLv3 with linking exception. > However, it always lags behind the version from AdaCore and many developers in the past were scared away by the licensing issues. And the cost of licencing from AdaCore. Not small company / startup friendly, but apparently that has changed, but you still have to email them for prices! > - Ada is a very complete language and not easy to learn. The syntax is special, in that it specifies each construct on its own and re-uses keywords. This makes no sense, all languages are "complete" to some degree. The syntax is not special, it's like any other, it's defined by a grammar, as are all languages. A lot of languages re-use keywords.
- neverartful 6y agoRegarding 'why did Ada not manage to get a significant foothold outside of some small domains?' here are some factors that were relevant at that time (late 80s to early 90s): * The internet was either practically non-existent, or in its infancy. At that time, getting compilers, documentation, and sample code was much more difficult and time consuming. * I recall there being a fair bit of criticism about Ada being 'designed by committee' and having a reputation as such. * C was still shining brightly and overall well-liked. C++ being an improved C, was seen as a very desirable new language for the software development community.
- pjmlp 6y agoTurbo C++ 1.0 for MS-DOS could be had for about 100 euros on 1990's money, and it was just a couple of floppies. No way you could get your hands on an Ada compiler for MS-DOS in a similar way.
- froh 6y agoI wonder if ADA and the gnat company have created barriers to entry that prevent a community to form that gets ADA beyond the tipping point. The gnat and base library license confusion has been discussed in the thread. In addition to that I'm missing a succinct and to the point introduction to ADA. The signal to noise ratio of the standard "programming in ADA 2012" book was freaking me out. I stopped looking into the language not because the language was hard but because it was explained so poorly.