6 ms·
Ada is a lot of fun and a great thing which is ruined (and blessed) by the fact there's de facto only one implementation and company behind it out in the open,
by Keyframe 2y ago
Ada is a lot of fun and a great thing which is ruined (and blessed) by the fact there's de facto only one implementation and company behind it out in the open, and that is semi-closed / license PITA. There were improvements over the years by AdaCore, but I think this altogether hurt the adoption of such a great language in general - no other wide open implementation (like Rust has). If you want to see an extreme example of such a hurt, take a look at Allegro CL and Franz; Imagine having that out in the open and what it'd do for CL, but at least CL has great alternatives in the open like SBCL, whereas Ada doesn't.
- CRConrad 2y ago> no other wide open implementation (like Rust has) So (at least according to pjmlp in https://news.ycombinator.com/item?id=42548360 https://news.ycombinator.com/item?id=42548360) Rust also only has a single "wide open" implementation. Which means Rust doesn't have any "other" open implementation either, right? Honestly, it's hard to know what of all the pro-Rust stuff one sees (here and elsewhere on-line) to take seriously, when its advocates constantly -- consciously or not -- exaggerate its virtues like this.
- LiamPowell 2y agoAs far as I'm aware, the compiler AdaCore sells is just GCC. You can install GCC built with Ada support from your distros package manager and it will just work. You can also download builds from here: https://github.com/alire-project/GNAT-FSF-builds https://github.com/alire-project/GNAT-FSF-builds
- debugnik 2y ago> As far as I'm aware, the compiler AdaCore sells is just GCC. The compiler yes, but I'm convinced FOSS gnatprove must be outdated in some way: Last time I tried following AdaCore's SPARK manuals, certain basic aspects and pragmas didn't work correctly on the latest version. Not to mention when SPARK aspects sometimes broke the LSP and formatter.
- Keyframe 2y agoIf something hasn't changed, FSF builds are a year behind libre version (by design), and libre version is GPL3 cancer which is not suitable for commercial development. You're then stuck either with a year old version or buy into AdaCore Pro version of it. Not great, not terrible.. but that's kind of the only game out in the open, which is what makes it different from most of other languages out there.
- CRConrad 2y ago> and libre version is GPL3 cancer which is not suitable for commercial development. YTF would GPL v. 3 be "cancer" for commercial development? (Shades of Ballmer; is Linux also "a cancer" to you?) EULAs have all kinds of stupid shit in them already. Just make yours GPL3-compatible.
- wavemode 2y agoWhy would the license of the compiler matter? It doesn't require you to license the code you compile with it accordingly.
- debugnik 2y agoGNAT CE isn't a thing anymore, only FSF and Pro exist. And AdaCore now sponsors Alire, which installs FSF GNAT, and relicensed some of their tools more permissively.
- pjmlp 2y agoNot at all, there are 7 Ada compiler vendors still in business. https://www.adacore.com/ https://www.adacore.com/ https://www.ghs.com/products/ada_optimizing_compilers.html https://www.ghs.com/products/ada_optimizing_compilers.html https://www.ptc.com/en/products/developer-tools/apexada https://www.ptc.com/en/products/developer-tools/apexada https://www.ddci.com/products_score/ https://www.ddci.com/products_score/ http://www.irvine.com/tech.html http://www.irvine.com/tech.html http://www.ocsystems.com/w/index.php/OCS:PowerAda http://www.ocsystems.com/w/index.php/OCS:PowerAda http://www.rrsoftware.com/html/prodinf/janus95/j-ada95.htm http://www.rrsoftware.com/html/prodinf/janus95/j-ada95.htm And AdaCore sponsors GNAT, with Ada being one of the few official GCC languages for two decades now.
- mirashii 2y ago> out in the open This part was an important part of the sentence you might've missed.
- pjmlp 2y agohttps://www.gnu.org/software/gnat/ https://www.gnu.org/software/gnat/
- quietbritishjim 2y agoThe original point is that there is only one open implementation. This is a link to that one open implementation. You are pushing this conversation around in circles.
- deleted 2y ago[deleted]
- pjmlp 2y agoHow many open implementations are there for plenty of other languages, like the main implementations, driving the whole ecosystem, not partial implementations with if and buts?
- nytpu 2y agoIt's FOSS and is actually included with GCC, but the toolchain is still a PITA to install just because no one (other than Debian and Arch Linux) bothers packaging it. I think Alire is supposed to make it easy to install but I haven't used it much: https://alire.ada.dev/ https://alire.ada.dev/ SPARK 2014 itself is the same too AFAIK, the problem is there's a lot of auxiliary static analysis tools and plugins that are gated behind AdaCore's sales wall (and of course they'd never deign to sell licenses affordable to individuals)
- ajdude 2y agoThe situation was pretty bad a few years ago, and the licensing was confusing but it's pretty straightforward now with Alire. (AdaCore also got rid of their "Community Edition which had the weird license restrictions). I'm doing a presentation at FOSDEM next year called "Get started with Ada in 2 minutes or less!"[1]; because (on MacOS and Linux) I can go from not having no toolchain a all to compiling hello world in under 2 minutes (I've timed it). Here's some steps: 1. open your terminal, run the following command: curl --proto '=https' -sSf https://www.getada.dev/init.sh https://www.getada.dev/init.sh | sh Congratulations, you now have Alire! 2. Run the following command: alr init --bin hello Now you have a fully structured Ada project, gpr files and all! 3. Edit your program in hello/src/hello.adb You can use vscode to open the hello folder with the Ada Language server, or just run "alr edit" to open your editor with all of the files built in. 4. Compile with: alr build Alire will automatically grab the latest native toolchain (gnat, gprbuild, etc) and compile the program. If you want to use another toolchain, such as for cross-compiling, or another version of GNAT, simply run: alr toolchains --select 5. Run the program: hello/bin/helo On windows, you can just download the windows installer; alire is also on Freshports for the BSDs. [1] https://fosdem.org/2025/schedule/event/fosdem-2025-5056-get-started-with-ada-in-2-minutes-or-less-/ https://fosdem.org/2025/schedule/event/fosdem-2025-5056-get-...
- DaiPlusPlus 2y agoYour step 1 violated my very hard rule against piping curl into a shell. …and is ironic advice for a safety-critical system, no? ——- (Yes, I’ve read arp242.net/curl-to-sh.html - but my point being that as I’d be new to Ada then I don’t know who to trust; I’ve never heard of getada.dev therefore I don’t trust it)
- bobajeff 2y agoYeah, to this day Ada, though a beautiful language, is a hard choice to make if you are concerned about certain targets. How would i get my program to compile to Android NDK? Even Swift has a better story with it's tooling. That's before we even talk about important stuff like libraries.
- Lucretia9 2y agoWhat are the options required to build an android gcc these days?
- pjmlp 2y agoNone since Google dropped GCC support, to anyone to do the work to make it work again.
- pjmlp 2y agoUnless you are using the Android NDK with the official provided clang for C and C++, anything else is a pain for masochits that rather endure yak shaving the whole infrastructure than code in either C or C++ alongside either Java or Kotlin.