Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
Programming

Ada 2012 Language Approved As Standard By ISO 165

hypnosec writes "The Ada Resource Association (ARA) announced that the Ada 2012 programming language has been approved and published as a standard by the International Organization for Standardization (ISO). Announcing the development, ARA and Ada-Europe said that the new version brings with it the concept of contract-based programming, Concurrency and Multicore Support, Increased Expressiveness and Container Enhancements.'"
This discussion has been archived. No new comments can be posted.

Ada 2012 Language Approved As Standard By ISO

Comments Filter:
  • Anybody here using Ada, or has used Ada? Not implying anything, but genuinely interested. Isn't Ada one of the most crazy complex algorithm languages ever invented? Just my impression.

    • by Anonymous Coward on Saturday December 22, 2012 @04:21AM (#42367745)

      Seen it used for some logic in a gateway that converted one network medium to another (and did a bunch of other not-so-trivial things while it was at it..).

      I wouldn't really have classified it as an "algorithm" language. If anything it's a logic language with a major focus on reliability (lots of strong typing and compile time error detection) and fault handling (really good run time error handling).

      • by Greyfox ( 87712 )
        I looked at it briefly in college. Everyone I've seen in the "real world" that needs that level of reliability uses C++. You catch a lot of stuff at compile time in C++ that would make run time errors in other languages. This was one of Ada's big selling points too. Strong typing might be a pain in the ass for your average programmer, but it's still around for a reason.
    • by Anrego ( 830717 ) * on Saturday December 22, 2012 @04:30AM (#42367783)

      I've seen it. Nothing crazy or particularly unusual about it.

      Big thing with ADA is the focus on reducing errors. Very strongly typed with a lot of compile time checking and strong run time checks (and the ability to handle them gracefully). It seems to be used in environments where reliability and error free execution are critical: defense, aviation (the planes and air traffic control), etc. I've never heard of it used in the medical field but it would make sense.

      Like anything else though there is of course trade offs to support this. Plus because ADA is expensive (yes yes, I know, GNAT..) and people who know it are rare and expensive. This seems to have turned it into a niche language.

      Also the ADA community in general are an unusual bunch. There is almost an apple level fanboyism going on.. it's weird.

      • Re: (Score:3, Informative)

        by Anonymous Coward

        I've used it in years past. The languages that I've used that help me produce code that just works, no matter how inclined I am to screw things up, are F#, Scala, Ada -- basically your strongly-typed languages keep me out of trouble. If you can handle the pricing and/or license issues, I would still recommend Ada as the best fit for procedural/OO programmers who want to work with tools that sustain quality. I'd expect that a very highly skilled team that wrote F#, Scala, Lisp, or Haskell could beat

        • by Black Parrot ( 19622 ) on Saturday December 22, 2012 @06:40AM (#42368079)

          I've used it in years past. The languages that I've used that help me produce code that just works, no matter how inclined I am to screw things up, are F#, Scala, Ada -- basically your strongly-typed languages keep me out of trouble. If you can handle the pricing and/or license issues, I would still recommend Ada as the best fit for procedural/OO programmers who want to work with tools that sustain quality. I'd expect that a very highly skilled team that wrote F#, Scala, Lisp, or Haskell could beat the dog out of most Ada teams for productivity over a few months or even a few years, but that over a period of many years, a good Ada team would be hard to bear for reliability and maintainability.

          In my experience Ada catches things at compile time that other languages leave you to catch at run time, and catches things at run time that other languages leave you to discover when you find out you've been getting erroneous results for bog-knows how long.

      • FYI: It hasn't been called "ADA" for some time, simply "Ada."
        • Re: (Score:3, Informative)

          by Black Parrot ( 19622 )

          FYI: It hasn't been called "ADA" for some time, simply "Ada."

          Never was "ADA". It was named after Ada, Lady Lovelace, whose birthday we discussed here a few weeks ago.

      • by mvdwege ( 243851 ) <mvdwege@mail.com> on Saturday December 22, 2012 @07:54AM (#42368311) Homepage Journal

        Let me add a note for the community: yes, they are almost as bad as Apple fanbois when it comes to advocating Ada, but aside from that it's the friendliest community I've ever met on the Internet.

        When I as a hobbyist, who dabbles a bit in Ada, can ask questions and get answers from professional industrial programmers with multiple large mission-critical systems to their name, and get these answers in a friendly supportive tone, I think I am justified to say that this is a nice community.

      • I've seen it. Nothing crazy or particularly unusual about it.

        Big thing with ADA is the focus on reducing errors.

        When $(Famed_Programmer) heard that $(they) intended to produce 10 million lines of error free code, he left the project.

        If lives depend on code working, it had better run reliably. If a part of the code has a problem, then deal with it without simply quitting.

      • Also the ADA community in general are an unusual bunch.

        Yea those people forcing wheelchair access in public spaces are a rowdy bunch.

        There is almost an apple level fanboyism going on.. it's weird.

        Could be worse... It could have a python level of fanboyism.

    • by Anonymous Coward

      for a slightly dated status of the Ada market:
      http://www.crosstalkonline.org/storage/issue-archives/2001/200103/200103-Brosgol.pdf

      and current Ada customers of the GNAT compiler (from GCC family):
      http://www.adacore.com/customers

    • by AmiMoJo ( 196126 ) * on Saturday December 22, 2012 @04:32AM (#42367789) Homepage Journal

      I did it at university because they thought it would teach people good programming habits. In fact it just made us hate Ada and look for ways to subvert it, like redefining "-" to add values together.

      Ada is extremely pedantic. The idea is that it enforces good coding practices and prevents the kinds of subtle errors that can creep into more flexible languages like C. Supposedly some people in the aviation and space industries use it for mission critical stuff.

      • Re: (Score:3, Insightful)

        by jmhobrien ( 2750125 )

        I did it at university because they thought it would teach people good programming habits. In fact it just made us hate Ada and look for ways to subvert it

        That's a shame. I was also introduced to Ada at university and, while I accept that the syntax is pedantic, it was demonstrably extremely useful. Now I just see it as another tool which I could competently apply to problems where high reliability is mandatory and distributed/concurrent algorithms are involved.

    • I've used it, its not any crazier or complex than anything else.

    • by gl4ss ( 559668 ) on Saturday December 22, 2012 @04:33AM (#42367793) Homepage Journal

      I used it once, for a course on parallel programming.

      the choice of ADA for that language by the faculty was stupid as hell - it's practically the only course in that university that uses ADA so the course becomes an ADA course rather than parallel programming course, the practice work is really trivial except for the fact that it's ada and it's a bitch to find ada information that isn't loaded with "IT'S MILITARY GRADE, YO!!!" bullshit for the first 10 pages of the text, making it a bitch to find out the simplest things about string manipulation and output.

      on the other hand, ADA had such sweet parallel programming mechanisms(rendezvous etc) that you didn't have to learn much anything about parallel programming, last I heard they even dropped semaphores from the course work.

      it's supposed to be really reliable though, but if every fucking book about it has to justify it's existence with that for half the book.. it just starts feeling fishy.

    • I believe I had to complete one project in Ada as part of my Computing Engineering degree, in a CompSci course that basically went through the different kinds of languages available back then. C, Prolog, Lisp, Pascal, Ada, probably a couple others.

      Prolog and Lisp were the main brain rewiring languages.

    • There was much rejoicing amount the two Ada programmers left in the planet for the approval of this standard. Ooops.

      You know you are doing poorly when the major user of your product, in this case the military, has been turning away from Ada to C/C++ for the last decade. The F-35 is one example. Even parts of the F-16 software have been rewritten to C/C++ by now. There are still some use cases but all newly written software seems to be C++. Another example is SpaceX who used C/C++ to write their flight con

      • And you know... those projects that moved from Ada to C/C++ are strangely overtime (many years by now) ONLY because of software BUGS. Seems like they got a lot of problems from that switch.

        And IMHO if your programmer can't learn enough Ada to be productive in 2 weeks then they are quite bad programmers.

        • by jbolden ( 176878 )

          Absolutely. Ada was designed to be like mainstream languages it has a small and gradual learning curve. I don't understand why the sorts of companies that want to use a mainstream language and want exceptional reliability don't use it.

      • by Anonymous Coward

        turning away from Ada to C/C++ for the last decade. The F-35 is one example.

        I'm not overly sure that is a good example. To my understanding, the F35 is plagued by software issues, delaying it's development and raising costs by the year.

    • First language I learned at Uni back in '00.
      Haven't used it since, but I recall it being far more pleasant than the java I had to learn next.
      Just no opportunities for me to use it since, unless I wanted to work for the ADF (Australian Defence Force)

    • by Anonymous Coward

      I had to take it in college. To this day, when I see a := operator in source code, I want to close my editor and forget I ever saw it. That I saw the := operator in Visual Basic confirmed this notion.

      • I had to take it in college. To this day, when I see a := operator in source code, I want to close my editor and forget I ever saw it. That I saw the := operator in Visual Basic confirmed this notion.

        IIRC that notation was introduced in Algol, as a compromise between the Europeans who wanted "=" and the Americans who wanted "=".

        • IIRC that notation was introduced in Algol, as a compromise between the Europeans who wanted "=" and the Americans who wanted "=".

          Sorry; that first one was supposed to look like what we commonly interpret as "less-than-or-equal-to", but it didn't HTMLify very well.

        • by jbolden ( 176878 )

          Well no the issue is = (assignment) vs. == logical test. == corresponds to what we use = for in math. So it makes more sense to have = be a logical operator and use something else for assignment.

    • by Kergan ( 780543 )

      Anybody here using Ada, or has used Ada? Not implying anything, but genuinely interested. Isn't Ada one of the most crazy complex algorithm languages ever invented? Just my impression.

      It has a fan base, and specialized uses, if this mother of all Internet trolls from 1997 is any indicator:

      https://groups.google.com/forum/m/?fromgroups#!topic/comp.lang.ada/SHMwUTG_TZQ [google.com]

      It's like... Wow, just wow, look at the size of that thread!

      • On a side note: is it just me or has google decided to get rid of nested comments? If so, wow. That's another great misfeature from google. Makes their "products" seem so trustworthy.

    • by kensan ( 682362 )
      I have been using Ada for the last 5 years professionally and for my personal project. Most of them can be found here http://www.codelabs.ch/ [codelabs.ch] or here http://git.codelabs.ch/ [codelabs.ch].
    • by kensan ( 682362 )
      John Carmack mentioned Ada in the 2011 QuakeCon Q&A session: http://www.youtube.com/watch?v=00Q9-ftiPVQ#t=822s [youtube.com]
    • I've used it. I liked it. For a long time my email sig was "The more I use C++, the more I like Ada".

    • by oneblokeinoz ( 2520668 ) on Saturday December 22, 2012 @06:14AM (#42368011)
      Ada is used in lots of places where the application is safety critical or there is a need for high reliability.

      It got a lot of bad press, mostly because it originated from a request from the US DoD for a single language to do "all things". It's original MIL-STD designation was 1815 (Ada Lovelace's birth year).

      Many aircraft have their flight control systems built in Ada, eg: Boeing 777, Apache Helicopter.

      From memory the GPS Block II Satelites, not sure about the Block III.

      The original Ada 83 compilers were pretty awful - slow and produced horrible code. But they got way better. Because the language required a "program library" to store information about the compiled units (yes, GNAT showed that it wasn't really necessary), the optimizers in the middle pass and back-end had access to more information than normal, giving scope to some very effective optimizations. I've seen generated code that was as good as the best hand coded assembly - multiple levels of inlining, removal of sub-routine pre and post amble code, delayed branch slot filling, value propogation used to remove implicit and explicit tests etc.

      My biggest challenge was always the lack of support for the latest and greatest libraries, eg: X11, MOTIF and their Windows equivalents.
    • by Black Parrot ( 19622 ) on Saturday December 22, 2012 @06:35AM (#42368069)

      Anybody here using Ada, or has used Ada? Not implying anything, but genuinely interested. Isn't Ada one of the most crazy complex algorithm languages ever invented? Just my impression.

      I've used it a lot, but not lately. Its syntax is Pascal-like rather than C-like. However, I think Ada 2005 introduced the C++-style syntax for methods.

      It does have a lot of complex features, e.g. rendezvous for distributed programming, but you can get started by ignoring most of the unusual stuff and using a subset that is very much like Pascal, then learning the advanced features as needed.

      Supposedly when it first came out they had to invent new compiler technology to implement it, but things don't look so exotic now. Lots of integral support for real-time and distributed systems, and as others have said, verbose and an emphasis on reliability. Those last two are related: it makes you say what you mean and mean what you say. Ada programmers laugh when they hear someone describe C++ as "strongly typed".

      However, in my experience the more I worked on it the leaner my code got and the more I was able to think on the level of abstractions rather than details, e.g. by using the 'range attribute when looping over arrays.

      C# went Ada 95 one better on pragmas and attributes, but I don't know what Ada did in 2005 or 2012. I found them *really* helpful.

      Can't give much more comparison, because I'm not up on the latest features of more familiar languages either.

      Supposedly the space shuttle's on-board system was written in a subset of Ada.

      • "Its syntax is Pascal-like rather than C-like."

        This was the only annoying thing I found when using it at university, having already learnt Pascal: the number of times I wrote what I thought was valid Ada and wondering why it didn't work only to realise I'd written Pascal instead. Purely my fault, there was nothing wrong with the language.

    • I'm using it for time-critical stuff. It's complex and has some arcane syntax features, but it's still easier than C++ and a lot safer than C and C++. One problem is the lack of free or affordable compilers, there is not enough competition to GNAT and AdaCore makes sure that the *really* free FSF version with MGPL lacks essential features, whereas their own free versions are useless for anything but GPL'ed software.

      Overall it's a very powerful and fast language that I would recommend for real software devel

      • Eh? Since when the license on the compiler restricts you from using it for non-GPLed software?

        And if you want to see where anti-GPL FUD leads to, just try to compile for Mac on another system -- or even a different version of OS X.

        • No FUD at all. Ada is worthless without the runtime. The license of the GNAT Ada runtime forces you to put programs compiled with the GPL version (mainly developed by AdaCore) under the GPL, too. The FSF version is licensed under the MGPL, a modified version of the GPL that allows you to use the runtime in non-GPL'ed software. However, the MGPL version lacks some essential libraries.

          The restrictive licensing of GNAT is probably one of the major reasons why Ada never became very popular for general purpose p

          • Ok, thanks for clarification. It's still the license of the runtime rather than the compiler that's a problem, but indeed both are in one package.

          • by dkf ( 304284 )

            Ada is worthless without the runtime.

            That's true for virtually all languages; without a runtime, all they can do is spin on the spot and do pointless things like simple calculations that they can never tell anyone else about.

    • by mvdwege ( 243851 )

      I write the occasional hobby project in it.

      Contrary to what people tell you, it is not a complex language at all, it's a fairly standard Algol descendant. It does have an intricate type system that you must get used to to get anything done, and it is a bit wordy, using actual words as identifiers for everything except for some operators, but aside from that it's a very elegant language, and surprisingly fun to work with.

    • by lindi ( 634828 )

      I've spent two years porting Ada code from VMS to Linux. Overall it was a nice experience but compile times were horrible on our VMS system. Getting a syntax error after 15 minutes of waiting is kind of frustrating :)

      GDB support for Ada tasks was also pretty bad. I filed several bugs like http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37245 [gnu.org] .

    • Anybody here using Ada, or has used Ada? Not implying anything, but genuinely interested. Isn't Ada one of the most crazy complex algorithm languages ever invented? Just my impression.

      That would be Scala ;) Ada has resemblances to Pascal in certain aspects.

    • "Anybody here using Ada, or has used Ada"

      A LONG time ago. This was in the period long enough after its release that people were getting used to what worked and what didn't. Like C, Ada has any number of constructs that you don't really use because they tend to make things harder. If you used its base functionality you had what was basically Pascal with very strong error checking, and that I didn't mind.

      But throughout my (limited) use, I couldn't help but shake the feeling that Ada *really* wanted to be an O

      • It would have looked like Ada95 or Ada05 or Ada2012

        • No, it wouldn't. Because many of the base features of the language would have never been implemented as base features of the language. But they were, and they still are, and wouldn't be.

          This isn't an Ada issue, it's an issue with any procedural language that was "extended". Object Pascal is another good example.

        • by HiThere ( 15173 )

          Nope. It would have had unbounded string as the basic string type, and it would have included a garbage collector.

          FWIW, I think the other problems with the language have been solved, but those two features would have changed the design drastically, and in an improved way...except for embedded real-time systems.

    • Yes, people are using Ada, in fact, it's been making a quiet comeback. Ada is the #16 most popular language according to the TIOBE programming language survey of November and December 2012, an increase from #19 in November 2011 [tiobe.com]. Keller reports that [ghs.com] by 2000 Ada use had decreased and then increased again. It's not huge compared to C or Java, of course; its use is focused in certain domains. In certain communities, such as aviation software, it continues to be a popular language and has been credited with h [gcn.com]

    • I use it all time The complexity assertion is a bit confusing. I am not sure by what measure you'd rate it more complex than languages like Java. I've hired lots of engineers out of college and none has ever had a problem learning it. There are certainly some bad habits from other languages that carry over in their early work but generally not that big of a deal.
    • Yes.

      At one point, the DoD required that software written for the military be written in Ada. So a decent number of schools could jack up the placement rates of their computer science or software engineering majors by teaching it and buddying up with the defense industry recruiters. I went to one of those colleges, and the majority of the early programming classes were all Ada.

      At some point, though, the DoD decided to get with the times and dropped the Ada requirement. My first job out of college was most

    • Yes Ada is very big in air traffic control and defence. On the system I worked on it was used for all the back end processing, pretty much right up to the user interfaces which are in C and Java. Another system I heard about has the UI in Ada as well.

    • by Pembers ( 250842 )

      At the university I attended, it was the standard language for all the courses that involved programming or software design. That may have been because the head of the computer science department was on one of the committees that designed it. This was about 20 years ago. I was aware that it's still used for real-time applications, particularly military and aerospace, but I'm mildly surprised that anyone still cares about it enough to develop a new version of the standard. I applied for a programming job at

  • "the concept of contract-based programming, Concurrency and Multicore Support, Increased Expressiveness and Container Enhancements.'"

    Is Beginning Every Word With A Capital Letter Mandatory In Ada?

    • Amusingly, yes. The language standard adhered to is to capitalize each word AND separate words by underscores. To make matters a little more "interesting", the language is case-insensitive, so the capitalization is only a (unnecessary, imo) luxury for the reader.
      • by lindi ( 634828 )

        Fortunately gcc has support for the expected style (using the -gnatyy flag).


        with ada.text_iO;
        use ada.text_io;

        procedure hello is
        begin
        put_line("hello world");
        end hello;

        fails with


        hello.adb:1:06: (style) bad casing of "Ada" declared at ada.ads:16
        hello.adb:1:10: (style) bad casing of "Text_IO" declared at a-textio.ads:48
        hello.adb:2:05: (style) bad casing of "Ada" declared at ada.ads:16
        hello.adb:2:09: (style) bad casing of "Text_IO" declared at a-textio.ads:48
        hello.adb:6:05: (style) b

  • by RedHackTea ( 2779623 ) on Saturday December 22, 2012 @04:23AM (#42367749)
  • by ignavus ( 213578 ) on Saturday December 22, 2012 @05:35AM (#42367933)

    Well, that's all the Ada programmers accounted for.

  • by symbolset ( 646467 ) * on Saturday December 22, 2012 @06:17AM (#42368021) Journal

    Microsoft bought off all the national bodies of ISO when they ramrodded through their undocumented and impossible to implement "document standard". If ISO knew anything about business processes or standards development they could have prevented that panel-stuffing result. And yet one of the standards they set is business processes for just this situation. I don't trust them any more and I don't think you should either. They are too easily swayed by corporate interests.

    Ada's cool in the esoteric nerd sort of way. Like SNOBOL or APL. I shared a girlfriend with one of the Strawman implementors of ADA and knew him moderately well. She was hot (she's probably a great-grandmother now) and he was cool, it was fun, and I'm still fond of ADA. I'm not fond of overloading operators and keywords in an RTOS in the practical sense, but as an artistic exploration of tech potentials I'm all for it as long as you don't make it the OS/language for a drone or something similar. I've never been a fan of garbage collection. It solved some problems I'd rather work around. Sadly Ada went rather overboard in the dynamic re-purposing of symbols, resulting in some unfortunate but predictable side-effects and plain code that had indeterminate use based on context.

    If you can't count on a word symbol to mean a quite specific and limited thing, you can't anticipate what your app will do. In my own mind, that was the problem with ADA. By subtexting and repurposing everyting - including the "=" operator and keywords like "if" they created a thing that was useful for mapping and mimicking human intellectual processes but not for doing useful stuff.

    • Keywords do have well defined behaviors, so I don't see where "repurposing everything - including the ""="" operator and keywords like ""if""" happened.
      And you actually do need to permit overloading of operators (otherwise you end up with nasty code [ie. in complex arithmetic]).

      • Do you know how I know you're not an Ada programmer?
    • BTW: This interaction is part of how I came to claim "symbolset" as my nym.
    • by sco08y ( 615665 )

      Microsoft bought off all the national bodies of ISO when they ramrodded through their undocumented and impossible to implement "document standard".

      Cite please. I'm not asking for a check number, just someone else even making this accusation instead of the usual idiotic assumption that everyone in the standards bodies is all clamoring for a handout from Microsoft.

    • by tlhIngan ( 30335 )

      Microsoft bought off all the national bodies of ISO when they ramrodded through their undocumented and impossible to implement "document standard". If ISO knew anything about business processes or standards development they could have prevented that panel-stuffing result. And yet one of the standards they set is business processes for just this situation. I don't trust them any more and I don't think you should either. They are too easily swayed by corporate interests.

      Welcome to every standards body in the

      • by DrVxD ( 184537 )

        Remember who populates these standards bodies

        Me, amongst others. I'm a member of a National Body delegation to an ISO committee.

        given the cost of entry is often in the 6 to 7 digits (the lower one is just to use the standard, if you want to participate in making them, it's $$$$ and always has been)

        This is flat out wrong; neither I not my employer pay even a single cent to participate in making ISO standards.

  • I am so tired of runtime failure. I am tired of feeling that which has been labeled as 'shipped code' was always shipped too early, and that there's some embarrassing bug that's going to come back and bite me(us) on the ass. Perhaps programming in Ada would allow me to sleep well at night, knowing that I didn't prematurely ship code. Sure, there's still the problems of fundamental logic errors based upon the programmer(s) misunderstanding the problem, but knowing that we're clever idiots is better than bein

  • I've been involved with Ada since the DoD-1 "Strawman" requirements document. A couple of points I haven't seen mentioned in these comments:

    1. Ada lets me say clearly what my code is supposed to be doing in the code itself; I don't have to write coding tricks, I don't have to write comments that explain what the code really does. I can write code that I can read a year from now or some other coder can read ten years from now and we'll both know what it does. Sure, I can still write obscure, obfusticated c

It is easier to write an incorrect program than understand a correct one.

Working...