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.'"
Anybody using Ada? (Score:2)
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.
Re:Anybody using Ada? (Score:4, Informative)
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).
Re: (Score:3)
Re:Anybody using Ada? (Score:5, Interesting)
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)
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
Re:Anybody using Ada? (Score:4, Interesting)
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.
Re: (Score:2)
Re: (Score:3, Informative)
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.
Re:Anybody using Ada? (Score:5, Insightful)
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.
Re: (Score:2)
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.
Re: (Score:2)
Yea those people forcing wheelchair access in public spaces are a rowdy bunch.
Could be worse... It could have a python level of fanboyism.
Re: (Score:2, Insightful)
..But most products are created by small teams of programmers, have a lifetime of a few years, don't need to be anywhere as reliable..
And that, dear readers, is why I really hate what passes for programmers nowadays.
The oldest code I've wrote that I know of which is still currently in daily use is now at the 22 years old mark, was done in assembly, was only really intended to 'work' for a year at most (was done for a R&D prototype, they kept the code in for the production models.)
(And, yes, I have, for my sins, dabbled in Ada)
Re: (Score:3)
..But most products are created by small teams of programmers, have a lifetime of a few years, don't need to be anywhere as reliable
Because, after all, who cares if people's credit card numbers, SSN's, home phone numbers and other items leak out all over the Internet? Just as long as the software got written fast and cheap.
Re: (Score:2)
Re: (Score:2)
One hosted using Google Code (last work appears to be have been done in May 2012):
Re: (Score:2)
None of Ada's facilities have any bearing on the common kinds of bugs that cause web applications to leak private information. And the time you spend satisfying Ada's pointless static checks is time you don't have for developing meaningful security audits and test cases. So, given the same budget and time constraints, it is pretty much a given that an Ada based web application would be worse, not better, in terms of privacy and security.
Ada tried to address a problem that really existed in the 1980's: the lack of an efficient, strongly typed language. That ceased to be a problem long ago, and Ada is kind of a relic now.
I really cannot agree. Historically, one of the most common ways to pwn a machine was to exploit buffer overruns. Languages such as Ada and Java are virtually immune to that sort of exploit.
You are also assuming that time spent making the compiler happy is time "lost". I came to quite a different conclusion long ago. I have worked with a large number of languages, and my observations are that with the possible exception of assembly language, the amount of time and effort to make a secure, robust application
Re: (Score:1)
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
Re:Anybody using Ada? (Score:4, Informative)
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)
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.
Re: (Score:3)
I've used it, its not any crazier or complex than anything else.
Re:Anybody using Ada? (Score:5, Informative)
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.
Re: (Score:2)
Government projects like that tend NOT to use libraries and so not get benefit from a more popular language either.
Is Ada even good for Bondage and Discipline? (Score:3)
And didn't the failure of Algol 68 lead to Niklaus Wirth's Pascal, as a simpler, better Algol 60? And for whatever Pascal's limitations
Re: (Score:2)
"The more I ponder the principles of language design, and the techniques that put them into practice, the more is my amazement at and admiration of ALGOL 60. Here is a language so far ahead of its time that it was not only an improvement on its predecessors but also on nearly all its successors".
- C.A.R. Hoare, "Hints on Programming Language Design", 1973
Re: (Score:2)
So I guess Ada has its "community" of "dudes with crew cuts, clean shaven, and with pocket protectors working for Defense contractors", does Ada have any "street cred" with the academic "software theorem proof" or "software reliability" communities?
https://en.wikipedia.org/wiki/SPARK_(programming_language) [wikipedia.org]
Re: (Score:1)
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.
Re: (Score:2)
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
Re: (Score:2)
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.
Re: (Score:2)
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.
Re: (Score:1)
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.
Re: (Score:1)
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)
Re: (Score:1)
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.
Re: (Score:2)
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 "=".
Re: (Score:2)
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.
Re: (Score:2)
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.
Re: (Score:2)
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!
Re: (Score:2)
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.
Re: (Score:2)
Re: (Score:1)
Re: (Score:1)
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".
Re:Anybody using Ada? (Score:4, Insightful)
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.
Re:Anybody using Ada? (Score:5, Interesting)
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.
Re: (Score:2)
"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.
Re: (Score:3)
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
Re: (Score:2)
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.
Re: (Score:3)
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
Re: (Score:2)
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.
Re: (Score:2)
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.
Re: (Score:2)
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.
Re: (Score:2)
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] .
Re: (Score:2)
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.
Re: (Score:3)
"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
Post OOPS Ada (Score:2)
It would have looked like Ada95 or Ada05 or Ada2012
Re: (Score:2)
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.
Re: (Score:2)
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.
Ada is in use; it's actually growing (Score:3)
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]
Re: (Score:2)
Re: (Score:2)
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
Re: (Score:2)
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.
Re: (Score:2)
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
Re: (Score:2)
Also note that there doesn't seem to be a genuinely free [copyfree.org] implementation of Ada...
Isn't it still part of the GNU Compiler Collection?
Re: (Score:2)
These are the languages that people should avoid - which isn't much of a loss, because all of them have already been surpassed by better-designed languages that come with no coercive demands attached.
[Citation Needed]
Re: (Score:2)
Pathetic.
I don't care about your religious view with regards to 'free' being the holy grail and everything else not worth even considering, I was rather more curious about the better-designed part...
Re: (Score:2)
Okay, I can agree with that. Still curious about which languages you'd consider to be better designed and more suited for the task.
Re: (Score:3)
This very argument happens in chip design where we have two languages VHDL & Verilog. VHDL is very much done in the Ada Model and is a direct descendant where Verilog comes by way of C. There was a language shoot out back in the late 90s when this argument had more life with similar results. Verilog lets you get things done in about half the amount of text and about twice as fast as writing the equivalent in VHDL. Verilog gives you every chance to mess-up, i.e. it doesn't hold your hand. VHDL smothers
Initialism (Score:2)
Is Beginning Every Word With A Capital Letter Mandatory In Ada?
Re: (Score:2)
Re: (Score:2)
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
Re: (Score:2)
If I remember correctly MIL-STD-1815, otherwise known as Ada83 had all its sample code written that way, and I suspect Thales just went with the flow.
the only important link (Score:4, Informative)
28 comments... (Score:5, Funny)
Well, that's all the Ada programmers accounted for.
ISO? We don't trust them any more. (Score:5, Interesting)
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.
Re: (Score:1)
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]).
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
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.
Re: (Score:2)
Re: (Score:2)
Welcome to every standards body in the
Re: (Score:2)
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.
Re: (Score:2)
All the major languages have operator overloading these days.
Right, like Java... oh wait!
Operator overloading reached its peak in the mid-80s at the time of Ada and C++. Since then most languages have pulled back from there and today it is considered mostly a source of bugs and heavily discouraged even in languages that allow it, e.g. Python.
Re: (Score:2)
Re: (Score:2)
i.e. support a similar range of features to a built-in python object
Yes, I should have said something like "heavily restricted to straightforward overloads" such as straightforward extensions comparators and iterators with no unexpected side effects. Any other use is heavily discouraged.
Re: (Score:2)
Re: (Score:2)
today it is considered mostly a source of bugs
[Citation Needed]
Having the facility to overload operators isn't a source of bigs; abusing that facility is a source of bugs.
Re: (Score:2)
abusing that facility is a source of bugs.
That is a vacuous statement. You are defining "non-abusing" as all the ones that do not create bugs and as abusing the ones that do. Duh!
Re: (Score:2)
No, I define "abusing" as doing things like overloading an addition operator which doesn't perform an additive operation.
(Which would be just as abusive if you used a non-operator function with a misleading name).
Can you provide an example which is non-abusive, but is a source of bugs? Or are we just expected to accept the veracity of your unsubstantiated claim that "today it is considered mostly a source of bugs"?
Re: (Score:2)
I define "abusing" as doing things like overloading an addition operator which doesn't perform an additive operation.
There are other issues, such as side effects. Say if I add/merge two complex data structures or assign them does it create deep copies through and through or does it creates a new reference to the object?
It also makes errors harder to catch, since it weakens the type signatures of the overloaded functions.
Or are we just expected to accept the veracity of your unsubstantiated claim that "today it is considered mostly a source of bugs"?
No, I expect you to already know this. Just like you to know that there is such a thing as Java, without me having to give a citation.
Re: (Score:2)
Re: (Score:2)
Maybe it's time to learn Ada (Score:2)
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
An Oldtimer's Thoughts (Ada since 1975) (Score:2)
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
Re:Wtf Slashdot? (Score:5, Funny)
I click on the contract based programming link to know what the fuss is about and I get landed on a separate press release? Wtf?
Always read the fine print before you agree to follow a contract...
Now you know, and knowing is half the battle.
Don't worry, Take Heart! (Score:3, Funny)
Re: (Score:2)
The idea is that between modules you always include a security level:
require check the input. Thus it is able to detect a bug in client.
ensure checks the output before sending. Thus it is able to detect a bug in supplier, that is an input which gave an unexpected/unreliable/unusable output was in some way unexpected in its effects. The ensure code prevents the situation of the caller's code being more flexible and handling a weird input but creating a call with variables the responder's code is having tr
Difference between this and assert (Score:2)
Re: (Score:2)
You can see more about Ada 2012 here [ada-auth.org]; the rationale is probably the best place to start.
Yes, this is similar to the assert mechanism of C, Python, etc., but because it's built into the language, it can do some extras. Often these are optimized out, because the compiler can determine that they're always met. You can also define a "Type_Invariant" once, and then the invariant is checked every time the value can be changed from the point of view of a user (e.g., after initialization, conversion, or return
Re: (Score:2)
2 things;
1) There is a lot of additional syntactic sugar which makes this much easier to use in practice. In theory of course you don't need any syntactic sugar for anything but it helps. Making this easy and uniform for developers is different than bare bones tools
2) The calling functions know how to respond. So a system can come back with "failed require" or "failed ensure" and the caller should know how to respond. Assert just throws an error to the end user. Which means you can embedded these dee
Re:VHDL and ADA (Score:4, Informative)
ADA had generics long before VHDL. From the first version of Ada in fact. Stepanov and Musser wrote the Standard Template Library [wikipedia.org] for Ada in 1987 C++ Standard Template Library was first developed in ADA and then ported to C++ in the early 90s.
Just to complete the trivia, Oracle's PL/SQL has a syntax that was based somewhat on Ada.