19 ms·
Giving Ada a Chance
- Bostonian 6y agoHis discussion of Ada (not all upper case -- can the HN title be changed?) is interesting, but his criticism of Fortran, although colorful ("eldritch"?) , is vague and likely uninformed. I program in Fortran 95 a lot and can easily understand my code years later. "Admittedly, I had pictured Ada’s syntax resembling the uncompromising verbosity and rigid construction of COBOL, or perhaps the Lovecraftian hieroglyphics of Fortran’s various eldritch incarnations."
- linuxlizard 6y agoI enjoyed Fortran/FORTRAN. Is a nice succinct language. "Lovecraftian hieroglyphics of Fortran" <-- the author never programmed in Perl, I presume.
- protomyth 6y ago"Lovecraftian hieroglyphics of Fortran" <-- the author never programmed in Perl, I presume. The author might want to stay away from MUMPS for sanity's sake.
- cmrdporcupine 6y agoMy wife used to work as a webdev at a shop that made its bread and butter contracting out some devs to do M/MUMPS development for a bank. Truly horrifying. The language/DB, but also that this thing was involved in handling people's money.
- p_l 6y agoThere are new projects done in MUMPS in finance all the time :|
- linuxlizard 6y agoI very briefly encountered MUMPS in grad school and its eldritch horror has remained seared in my brain.
- protomyth 6y agoIn true Cthulhu fashion, after encountering it at a medical facility where the lead programmer bragged about how amazing it was, I bought a book on the language. I like collecting language books (Icon was fun), but that was rather painful to read through and I have done IBM JCL and found it not unpleasant.
- cafard 6y agoThe NY Times a few summers ago wrote up some firm in Wisconsin that handles data-processing for quite a few insurance companies, using MUMPS. A co-worker's son a summer or so before had weighed competing internships from that firm and from a financial company in New York. I said I thought that the latter would offer more portable experience.
- ska 6y agos/Perl/APL/
- basementcat 6y agoAPL puts the love in Lovecraftian.
- ch_123 6y ago> "Lovecraftian hieroglyphics of Fortran" <-- the author never programmed in Perl, I presume. Or in Fortran, it's a relatively verbose language from what I remember of it (that said, I learned Fortran 90/95, so maybe the older variants were worse)
- madhadron 6y agoMore likely the author was faced with numerical code in FORTRAN and confused large formulas with the language syntax being heavy in symbols.
- TheRealKing 6y agoModern Fortran (2008/2018) syntax is a bliss. You would almost not notice if your are coding in MATLAB or Fortran with the advantage of your code being orders of magnitude faster in Fortran. Those who criticize the syntax of Fortran have probably not learned anything beyond F77, or at best F90.
- ajdude 6y agoThis was a good read. I instantly recognized the title of the textbook that is mentioned in the blogpost? I own it! Having a background in C, I went back and forth with Ada for years, without really jumping all in. In the last couple years in particular, with the growing popularity of Rust, I started to renew my interest. I'm reminded of a popular reddit thread on r/Ada-- someone called Rust a "toy language", which prompted the valid response that Rust is being used in a lot of commercial products lately. The response[0] kind of brings home the caliber that Ada is capable of, starting with: > Rust being used in commercial products isn’t really the same ballpark as what I’m talking about. It’s not even the same game. It seems like the easiest way to trend on HN is to make a post such as "<old software> rewritten in Rust", but each time I see more and more people advertising Rust, I just wonder why Ada didn't get the credit it deserved as being absolutely bulletproof. Eventually, I came across an "Ada Manifesto" of sorts [1] that finally pushed me to "put my money where my mouth is" and start going all in with the language. (the same author of that "Manifesto" maintained a "Should have Used Ada"[2] series for a while that points out just how using Ada could have stopped certain security vulnerabilities from ever being a problem in the first place) Ada is anything but dead and there's a lot of interesting things coming out for the 202x specification. I hope to see community enthusiasm grow as people begin to shift their interest more and more to safe languages. [0]: https://old.reddit.com/r/ada/comments/js6edd/regarding_this_language/gbzqe6s/?context=3 https://old.reddit.com/r/ada/comments/js6edd/regarding_this_... [1]: https://old.reddit.com/r/ada/comments/7p12n3/going_allin_with_ada_a_manifesto/ https://old.reddit.com/r/ada/comments/7p12n3/going_allin_wit... [2]: https://annexi-strayline.com/blog/ https://annexi-strayline.com/blog/
- trott 6y ago> I just wonder why Ada didn't get the credit it deserved as being absolutely bulletproof It's not. All languages make trade-offs in the performance-convenience-safety-etc space, and Ada's choice is not "100% safety". It lacks memory safety and has holes in its type system: https://www.enyo.de/fw/notes/ada-type-safety.html https://www.enyo.de/fw/notes/ada-type-safety.html
- foerbert 6y ago
- thesuperbigfrog 6y agoI like the "clean feel" of Ada's syntax: it combines the elegance of Python with a bit more structure and does not suffer from Python's significant whitespace issues. The so-called "Ada comb" structure that is used for packages, subprograms, and even declare blocks makes it easy to find what you are looking for because it makes the source code more regular. The "Ada comb" is formed by the shape of the source code with the subprogram header / declare, begin, exception, and end forming the "teeth" of the comb and the rest of the source code indented between the "teeth": function Square_Root (Arg : Float) return Float is -- local variables declared here begin -- program work here exception -- exception handling here end Square_Root;
- linuxlizard 6y agoI did Ada back in university. I wrote a toy Ada compiler for my master's thesis. I was so enamored with Ada's exception handling at the time! When I discovered Python and its similar exception handling, I jumped onto Python in a heartbeat.
- OneWingedShark 6y agoAwesome, you wouldn't still have a copy of your Ada compiler's source do you?
- cafard 6y agoI use PL/SQL a fair bit, which was inspired by Ada. Unfortunately, the designers did not bring over ShortName is New ReallyLongAndAwkardName; Ah, well.
- OneWingedShark 6y ago> I use PL/SQL a fair bit, which was inspired by Ada. I have a bit of a project-idea here: PL/SQL+Ada+VHDL all together in an IDE. > Unfortunately, the designers did not bring over > ShortName is New ReallyLongAndAwkardName; Do you mean renames? Package Text renames Ada.Strings.Fixed; IIRC, RENAME is in the keywords list for PL/SQL.
- butterisgood 6y agoAda shouldn't be all caps I don't think. (I always expand that to the American Dental Association)
- stsmwg 6y agoOr the Americans with Disabilities Act.
- Lucretia9 6y agoOr Australian...
- OneWingedShark 6y agoAmericans with Disabled Australians?
- Lucretia9 6y agoAustralians with Dental Austrians.
- jkw 6y agoOr Cardano
- Tomte 6y agoI suppose the HN software changed it and the submitter didn't notice (or didn't care). It happens silently after submitting, unlike the "13 too long" message that blocks submission. Many of those rewrites are benign, even good, many others are stupid and infuriating. Unfortunately there is no way to have yourself declared to be a "well-known submitter with a history of not editorializing or outrage-optimizing submission titles" and get this thing switched off. In this case there have been so many discussions and submissions about the American with Disabilities Act that it sounds plausible to be such an automatic rewrite.
- Kototama 6y ago
- the_only_law 6y agoI love Ada, unfortunately it’s real world use seems to be relegated to old legacy code. I’d like to use it a little more on the side, but I also need to keep my priorities focused on realism, which sadly means ignoring Ada and learning something like C++ which seems unapproachable from any angle. Ada also seems to have a weirdly negative rep in many circles it seems. I recall looking around for an Ada compiler for a moderately popular platform and came across and old thread where people didn’t give any options but instead just joking about how the OP was interested in such a terrible language. Maybe it’s the Pascal/Algol type syntax?
- Jtsummers 6y ago> people didn’t give any options but instead just joking about how the OP was interested in such a terrible language. I think the attitude is mostly a historical artifact and momentum. The language was soundly rejected in the 80s and 90s by many people in favor of C, for numerous reasons. Some valid, others invalid. It's carried a reputation since then (much like the author's take on Fortran, many quick takes here on PHP and Perl) that reduces the potential for adoption today even though the language is actually rather pleasant (IMHO, and also now, may not have been 20 years ago) to work with. But other languages are better advocated for, and have (mostly) better tooling these days. Alire is helping on the package manager front, but it's still pretty new. When people think "safety" in software they tend to jump straight to Rust and Haskell, mentally, even though Ada also fits within that conceptual space.
- buescher 6y agoBingo. I never heard anything good about Ada until about the time that both C++ and Java were firmly entrenched. Jack Ganssle has advocated for Ada for a long time. http://www.ganssle.com/rants/ada.htm http://www.ganssle.com/rants/ada.htm
- Tostino 6y agoI've never programmed Ada, but I've read pl/(pg)sql are based off it, and those have pretty wide use in their niche. So its principals may live on for quite some time in those other languages.
- snug 6y agoThought this was talking about blockchain tech, Cardano (Token $ADA) which I'm having a hard time giving a chance. Was hoping something could change my mind
- Tenoke 6y agoWhy are you having a hard time giving it a chance? Maybe wait until it (Gougen) launches and make up your mind then?
- haskellandchill 6y agoWow, Gougen is one of my heroes, cool to see his name getting recognition.
- threwawasy1228 6y agoThey still don't have a smart contract platform launched on the mainnet afaik. The only reason to use it in my mind is as an alternative to Ethereum, NEO, EOS, etc in the smart contract space. Every year that goes by where it does not have it's core competitive feature in a production-ready state is a nail in the coffin from my perspective.
- Tenoke 6y ago>They still don't have a smart contract platform launched on the mainnet afaik. Yes, and that's why I am suggesting to wait ~a month until it is deployed as per the road map before taking a hard stance.
- threwawasy1228 6y agoI've been watching for awhile. The road map said it was going to be out in ~a month, a year or two ago. Excuse my skepticism, but I feel like I've been following the eternally shifting roadmap long enough to warrant it. I like Haskell, I flipped through their Plutus example code, I want to use the product! They should just ship what they have.
- pdq 6y agoAda, not ADA.
- protomyth 6y agoI tend to like Ada, but it is a tiring language to read with the all caps. Also, it 'feels' like it has a gatekeeper group and really doesn't come up in any mobile conversation. I still believe someone will do something akin to a syntax substitution and come up with a well liked language. Also, modern Fortran is not that bad of a language much like the modern parts of C++.
- Jtsummers 6y agoThe community is definitely not helping, or has not helped. It seems to be improving but I've seen a lot of negative responses to novices that read like some of the things I saw in the 00s when trying to get into Common Lisp. Some individuals are willing to push past this, for others it's a deal breaker. The community is becoming more open (AdaCore has been very helpful here), I think, but you still have a fair amount of vocal gatekeepers that are going to continue to keep people out (deliberately or not).
- nerdponx 6y agoIf it's any consolation, the Common Lisp community nowadays is very welcoming!
- Jtsummers 6y agoIt is, and I should have said that. I pushed past the issues in the larger community when I started because I had a good local community (grad school, prof was pushing it). About the same time the general community behavior was improving, and now it's a very welcoming language community. You still occasionally get curmudgeons but they aren't the loudest voices.
- henrikeh 6y ago> [...] tiring with the all caps. I guess there is more to like then, since the keywords are case insensitive. The OP doesn’t even use all caps.
- 6y ago
- eplanit 6y agoA nitpick, but why is Ada in all caps in the title? It isn't in the article, nor is the name an acronym.
- aleksandrm 6y agoThought this was about accessibility stuff.
- civildude 6y agolike c$ADA
- ivan888 6y agoThere's no real reason for it to annoy me so much, but I was just thinking about how I can't stand when people seemingly randomly capitalize words relating to technology without the intention of drawing emphasis to them: GIT, NODE, JIRA, JAVA... why??
- nerdponx 6y agoI think people sometimes like to imagine that these things are acronyms even though they aren't.
- forgotmypw17 6y agoI think people sometimes JUST do it for NO good reason other than to DRAW emphasis
- joshuaissac 6y agoIn the case of Jira, it was in the past officially stylised by Atlassian as JIRA.
- carabiner 6y ago@dang Yeah, I don't think this should be in caps. Ada was the woman's name.
- zdragnar 6y ago
- superbcarrot 6y agoI have so many languages on the "give it a chance" list that I don't know where to start.
- foerbert 6y agoIf it helps make up your mind at all, I was much the same the way until I ended up trying Ada. After a night bashing my head against the compiler... well now every time I see a new language pop up I quickly check a few of the features I've become too attached to from Ada and usually* leave in disappointment. You can decide for yourself if this is an endorsement or a warning. Or both. *Exceptions obviously exist for very different niches or paradigms.
- Lucretia9 6y agoYeah, ranges and modular types for me, without them data modelling is hindered severely.
- foerbert 6y agoRanges are a pretty big part of it for me, but what really gets me is the ease of creating useful new types. Having to destructure a new type to use it, or create a bunch of pass-through functions kinda ruins the point. I haven't seen any language really have a strong cultural focus on types like Ada does, and I think the ease of creating and using new types is the cause. I think the best I've actually seen in this regard is actually Haxe, with some decent macros for automatically getting pass-through functions. It doesn't even make you list them all out explicitly (as I've seen others do), IIRC.
- Lucretia9 6y agoMost languages just go with machine size "types" and no strict typing on those. I've not seen any other languages do what Ada does. I've got my project to do so though.
- kibwen 6y agoIn answer to what appears to be a misunderstanding about Rust: > Its foreign function interface seems particularly poorly implemented. The official Rust documentation suggests the use of the external third-party libc library (called a 'crate' in Rust parlance) to provide the type definitions necessary to interface with C programs. As of the time of writing, this crate has had 95 releases. Contrast this with Ada’s Interfaces.C package, which was added the language in Ada 95 and hasn’t needed to change in any fundamental way since. Rust's libc crate isn't third-party, it's first-party, developed by the Rust project itself: https://github.com/rust-lang/libc/ https://github.com/rust-lang/libc/ . It's also not just for type definitions necessary to interface with C programs; here's the first heading and first paragraph of its README: "libc - Raw FFI bindings to platforms' system libraries" "libc provides all of the definitions necessary to easily interoperate with C code (or "C-like" code) on each of the platforms that Rust supports. This includes type definitions (e.g. c_int), constants (e.g. EINVAL) as well as function headers (e.g. malloc)." The fact that this library contains low-level type definitions for every platform that Rust supports explains why it's had more than one release: new platforms get added, platforms add new interfaces, and platforms change the definitions of existing interfaces (possibly incompatibly, which explains why this isn't in the standard library). > It lacks basic features necessary for the task, like bitfields, and data structure packing. The latter is achieved via the built-in `repr(packed)` attribute (https://doc.rust-lang.org/nomicon/other-reprs.html#reprpacked https://doc.rust-lang.org/nomicon/other-reprs.html#reprpacke...) and the former is provided by the bitflags crate: https://crates.io/crates/bitflags https://crates.io/crates/bitflags (while unlike libc this does not live under the rust-lang org on Github, it does live under its own org which appears to be populated exclusively by Rust project team members).
- deleted 6y ago[deleted]
- aw1621107 6y ago> the former is provided by the bitflags crate: https://crates.io/crates/bitflags https://crates.io/crates/bitflags The linked crate appears to implement an unrelated feature. c2rust-bitfields [0] or rust-bitfield [1] might be better examples. Rust's working on adding native support for bitfields, but it seems that that might be a while out at this time [2, 3] [0]: https://crates.io/crates/c2rust-bitfields https://crates.io/crates/c2rust-bitfields [1]: https://github.com/dzamlo/rust-bitfield https://github.com/dzamlo/rust-bitfield [2]: https://github.com/rust-lang/rfcs/issues/314 https://github.com/rust-lang/rfcs/issues/314 [3]: https://github.com/rust-lang/rfcs/pull/3064 https://github.com/rust-lang/rfcs/pull/3064
- iamevn 6y ago> I can’t help but think that complicated programming paradigms would seem more intuitive to beginners if taught through Ada instead of C and its derivative languages, as is common in computer science and engineering faculties worldwide. At my university, the first courses you took in CS used Ada. I think it was a really good choice but I was in the minority I guess because after my year they switched to either using Java or Python depending on who taught which of the courses in that first series. People found it frustrating how much work it'd take to get their programs to even compile but that's a good thing in my view. If it wasn't compiling, that was normally because the compiler found an error that would still be there at runtime in another language.
- MaxBarraclough 6y ago> People found it frustrating how much work it'd take to get their programs to even compile Makes sense if they're students working on small projects. Ada is explicitly designed to make large programs readable, and willingly trades off on writeability when the two come into conflict. It isn't going to shine if you're writing small 'single shot' applications, that isn't what Ada is for. (Ada also commits to using many English language words where languages like C use symbols. SQL does this too. I'm not sold on the idea that this improves readability. Of course, there's far more to Ada than the skin-deep matter of its wordy syntax.) This is similar to the readability/writeability tradeoff of moving from JavaScript (more writeable) to TypeScript (more readable and more refactorable). See the current discussion thread at [0]. Interesting reading (for some of us at least): the original Ada design rationale document, from 1986 [1]. [0] https://news.ycombinator.com/item?id=26314756 https://news.ycombinator.com/item?id=26314756 [1] https://apps.dtic.mil/dtic/tr/fulltext/u2/a187106.pdf https://apps.dtic.mil/dtic/tr/fulltext/u2/a187106.pdf
- Blikkentrekker 6y ago> (Ada also commits to using many English language words where languages like C use symbols. SQL does this too. I'm not sold on the idea that this improves readability. Of course, there's far more to Ada than the skin-deep matter of its wordy syntax.) Wasn't the hypothesis behind COBOL that this would allow managers to gain a certain level of understanding of the code? I find that it made COBOL code notoriously unreadable.
- deleted 6y ago[deleted]
- Sniffnoy 6y ago> The writing is on the wall: Ada is here to stay. OK, this has no relation to the actual content of the article, but I have to point out that that is not what the phrase "the writing is on the wall" means.
- UncleOxidant 6y agoIn the original biblical usage a Babylonian king held a feast and suddenly a disembodied hand wrote: MENE, MENE, TECKEL, PARSIN on the wall, which translated to: "Mene: God has numbered the days of your reign and brought it to an end." "Tekel: You have been weighed on the scales and found wanting." "Peres: Your kingdom is divided and given to the Medes and Persians.” So you're right, it doesn't connote that something will endure, but that something will end.
- ajxs 6y agoAuthor here. Thank you for pointing this out! I actually did not know that this phrase had such a specific meaning. I had incorrectly inferred from other usage that the phrase meant that the fact in question was supported by evidence to a degree that warranted no further debate. I feel a little embarrassed for the misuse. However I'm all the better off for having been educated on its proper use! Thank you.
- roland35 6y agoI went to a summer program at the US Air Force Academy and took a short class using Ada with Lego mindstorm robots. Having never done any programming at the time beyond BASIC (thanks to QBASIC and my TI-83+ calculator), I really enjoyed learning Ada. The instructor talked about the safety aspect of Ada which went over my head at the time :) I have done a lot of embedded programming in C over the years and while the reality is most embedded programmers know C best, I am starting to think we would be better served to try a new language with better features such as Ada or Rust. C++ is nice as well, but has it's own set of problems when used for embedded programming.
- kevin_thibedeau 6y agoNim has some influence from Ada in its type system and has much of the same feeling that the language is a power tool at your disposal. They have been making changes to make it useful without GC for embedded targets.
- nofunsir 6y agoNo mention of FAA's DO-178C or Green Hills Integrity-178 RTOS? Green Hills's IDE is named after Ada[1]. [1] https://ghs.com/products/AdaMULTI_IDE.html https://ghs.com/products/AdaMULTI_IDE.html
- okl 6y agoRTCA DO-178 is language agnostic.
- coliveira 6y agoAda syntax is closely related to Pascal and Algol. If you like these languages, then you will enjoy Ada. Unfortunately many people prefer the tenseness of C++.
- UncleOxidant 6y agoI really like Ada's ranged types (VHDL has them also - it inherited them from Ada). You can say: type OperatingTemp is range 33 .. 90; And then declare variables of that type and they will be range checked - an exception will be thrown if the variable goes out of that range. Wish more languages had this feature.
- hasperdi 6y agoIn JavaScript it is possible to define getter and setter method of an object. So this behaviour can be emulated by adding a validation in the setter method. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/set https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe... In Java too, don’t know about other languages though...
- n30phyte 6y agoBasically any language with objects and methods can do this
- nradov 6y agoSure, although in languages like Java that lack operator overloading the syntax gets messy.
- Jtsummers 6y agoRight, it's emulated but not universal or built-in. Nothing in JavaScript will enforce using getters/setters, it's 100% up to programmer discipline or adding a linter (if any linter has this as an option) to ensure both the creation of the accessors and their use. The benefit of this in Ada is that it is universal, and it requires the programmer to do nothing special later on except to not turn off the runtime checks. Using that above example, this would be a runtime error: Reading : Integer := Get_A_Reading(...); -- In some run Reading gets 0 for some reason Temperature : OperatingTemp; ... Temperature := OperatingTemp'Value(Reading); -- runtime error in Ada if Reading is invalid And because OperatingTemp is a distinct type, you never even have the option to do: Temperature := Reading; -- doesn't compile Also, in most OO languages where you'd make temperature an internal, private variable you can prevent external users of the class from interacting with it incorrectly, but you can't control internal users. Consider this Java-ish example: class Thermostat { private int temperature; // should only be in [33,90] public void SetTemperature(int value) { // check range and set } public void AnotherMethod(int value) { // good discipline would be: SetTemperature(f(value)); // but it's not strictly required so this is also allowed temperature = f(value); } }
- walshemj 6y ago" Lovecraftian hieroglyphics of Fortran’s various eldritch incarnations." I take it the Author hasn't seen any APL code.
- TomMasz 6y agoI took an Ada programming course when I worked at a defense contractor in the late 80s. Coming from C and Pascal it seemed familiar enough to learn quickly but was overkill for what we were doing at the time. I left soon after and I have no idea if they ever actually adopted it.
- nevster 6y agoWe did Ada at UNSW in the early 90's but for only one subject - parallel programming. I think many dining philosophers starved during the assignments...
- JulianMorrison 6y agoI think the thing that's been under-sold in Ada is the way you can get so much at compile time as properties of things, like, you can say "this type counts between 1 and 30" and then later refer to "the largest value of this type" as a loop bound, say, in a way that won't break if you later set the maximum to 40. And hides the fact it's implemented as an unboxed primitive integer.
- drannex 6y ago> the Lovecraftian hieroglyphics of Fortran’s various eldritch incarnations. This is one of the best lines I've read in awhile, gave me a good chuckle. Thanks for that.
- dmh2000 6y agoI took my first university course in Ada in 1981. I also worked for a company that provided an Ada runtime in the mid 80's. Ada was sabotaged early on because it was 'mandated' by the DOD for new programs. That meant that all the usual suspects, like Lockheed, GD , TI (I don't remember exactly which ones) came up with Ada compilers and runtimes that cost on the order of $10K per seat. The typical military contractor ripoff. So it was impossible for individuals or small companies to use Ada on their own dime. It was only feasible if the cost was rolled into a larger (bloated) defense contract. So it couldn't get a following. Of course much later on free versions became available but it was too late. That said, Ada was absolutely no fun to program with. It was awkward and verbose. I hated it from the get go, compared to the alternatives. If it is so super why is rarely used.
- phkahler 6y ago>> That meant that all the usual suspects, like Lockheed, GD , TI (I don't remember exactly which ones) came up with Ada compilers and runtimes that cost on the order of $10K per seat. I always wondered why I've never seen it used outside government work. Your explanation seems incredibly obvious after reading it.
- peter303 6y agoAmazing, since the first ADA compiler wasnt released until 1983. You'll make those HR people happy who want candidates with 10 years of experience in 2 year old languages.
- shannongreen 6y ago> It is possible to define a struct type in C with bit-fields for the individual elements, however the C standard does not guarantee the layout and order of the individual fields. As a professional embedded developer who uses bitfields to access registers every day, this doesn't really make a practical difference. On any bare-metal or embedded project you will rely on the behaviour of your compiler, and portability is largely irrelevant if you're accessing memory-mapped registers. Probably, the manufacturer has already provided register maps using bitfields anyway.
- hashmash 6y agoHaving direct control over this type of thing is important when updating the fields of a persistent data structure. I've had to deal with mistake before, where the original developer thought the layout matched what they specified, but the actual layout that got persisted didn't match. For compatibility, the broken layout stuck around forever, and special rules were required to detect this.
- tenken 6y agoI <3 Ada
- whoisjohnkid 6y agoYou know you’re deep into crypto when you read title and think this is talking about cardano
- cartoonfoxes 6y agoNo discussion of Ada is complete without referencing the cost of commercial development licenses. They're expensive. Very expensive. Any enthusiasm for this language is inevitably quashed upon encountering the $$,$$$ per-seat price of the compilers for the absolute bare-bones x86 version. It's more if you want to target non x86. I pester AdaCore for info every few years and while they've dropped a little bit, they're still out of reach for companies not in the Fortune 500. I'd love to use SPARK, but I don't see that happening any time soon.
- henrikeh 6y agoExcept that it the GNAT compiler is part of GCC and GPL with the linking exception. Why not use that? And I don’t get what you mean with “pestering for info”. I’ve once discussed buying their compiler and I was by no means in a F500 (decided against buying btw).
- cartoonfoxes 6y agoI've poked at it once, but it's a toy without the tooling and documentation the commercial vendors provide. GPLv3 is also a non-starter.