Domain: adacore.com
Stories and comments across the archive that link to adacore.com.
Comments · 44
-
Re:Ada v. C Re:Not overblown
small, efficient binaries on bare metal, like the BBC Micro:Bit? https://blog.adacore.com/ada-o...
-
Re:Ada
#1 is not true. See https://sourceforge.net/projec... There's been a GPL Ada compiler for at least 30 years. The Ada Core product is open source, you pay for maintenance.
For #2, the debate in many respects boils down to "simple programs in complex language" or "complex programs in a simple language." But see http://www.adacore.com/sparkpr... (and there are free versions of that, too), for a subset of Ada specifically designed to support proof-of-correctness.
-
Re:What's a "programming language"?
I think that's a fair summary. The Military got into a huge case of "commercial industry is better" (despite evidence to the contrary for large software intensive systems.) The Ada compiler vendors charged high prices to their captive market, discouraging commercial use with the bar to entry being too high. C, on the other hand, had $99 PC compilers (or cheaper) and it was easier to learn the basics (but it takes at least as much time to become competent in C as in Ada, particularly when you take into account learning all the idioms and conventions on the one hand, and the things to -not do- on the other hand.)
There has been (and still is) pockets of Ada usage in transportation (air traffic control, avionics, train control) where the safety of large software systems is a driving consideration. The primary viable Ada compiler is open source, see http://www.adacore.com/
Availability of Ada programmers is not the issue (although it's often used as an excuse.) My back-of-the-envelope calculation is there are at least 100k people in the US with Ada training. The problem is that most of them are making much more money doing C (in part because Ada provided a good foundation for reasoning about software systems, making them better-than-average C programmers.) Case-in-point: My friend who was making $100+/hr doing C, and never got an offer for more than about $55/hr for Ada. That being said, he often does prototyping in Ada, and then if necessary recodes the application into C or Java.
DoD got in many respects what it wanted, a 'universal language' with low entry cost, lots of cheap programmers, and commercial tools, from C. Unfortunately, they also got the 'throw low cost bodies at it' culture that produces so much crappy software.
-
Does Ada count as 'little known'?
Most contemporary aircraft have significant amounts of flight-critical software in Ada, some train control systems use Ada, some air traffic control systems use Ada, and of course there's a lot of Ada in US (and other country's) weapon systems. There's the SPARK subset that has been used for provably correct systems (does your software vendor provide a no-bugs warranty?). And there's production-quality code available under Open Source. http://www.adacore.com/ (no connection with AdaCore, other than I have lots of friends who work there.) All of my production code after 1980 was written in Ada. There's substantial anecdotal/unpublished evidence that shows large Ada systems have substantially lower life-cycle/software maintenance costs. Your Mileage May Vary, of course.
-
Re:Ada?
I thought this article was about Ada the programming language.
Same here, and a terrible flashback to my Ada class from college took place. To read the summary make me think, "oh...noooooooooowaaaahhhhhmakeitstopmakeitstopmakeitstop...oh, it's just an article about a feminist group...oh, good, good."
-
Ada?
I thought this article was about Ada the programming language.
-
Re:People?
Show me a chip vendor Linux toolchain or embedded building framework (buildroot, Yocto, etc.) which does NOT use GCC. There are exactly zero.
Incorrect. I can think of one right off the top, and while it's arguably a highly-specific niche market, it's still a viable market: GNAT Pro Ada. It very happily builds zero-footprint executables on a variety of embedded hardware, including the ARM M5 family. And the toolchain plays very, very well with Linux (and Windows, and Solaris, and...).
(I'll leave the argument over the relative merits of each language as a separate discussion.)
-
Re:How about
Adacore has a perfectly good implementation of a high-security Ada compiler, which produces executables for multiple platforms. There's nothing difficult about finding such tools. What's difficult is finding programmers and developers who are willing to take the time to actually develop their code to take advantage of the strict typing which is one of Ada's strengths.
John Barnes, author of one of the most-used Ada texts, outlined the meanings of "safe" and "secure" software in a very straightforward manner:
If software is "safe", it cannot harm the world
If software is "secure", the world cannot harm it.
From what I've seen, C and its derivatives do not have the intrinsic mechanisms to make software developed with that language either "safe" or "secure". It's too easy to break both safety and security using C and its derivatives, because a programmer can cast between types, auto-promote from one type to another, and similar logical faux pas, and the compiler will very happily allow such to take place, which means most bugs are able to hide until run time. Not so with Ada; because of strict type checking, casting must be explicit, and an attempt to auto-promote will be met with a CONSTRAINT_ERROR at compile time.
As the poster on my wall says, "[i]f builders built buildings the way programmers write programs, the first woodpecker to come along would destroy civilization."
-
Re:Wonder how Ada 2012 would fare...
It is possible to create powerful sites generated in Ada. One popular option is the Ada Web Server ( http://www.adacore.com/aws ) ( http://www.freshports.org/www/... ), plus it's possible to create cgi and fast-cgi applications using various libraries.
-
Re:A big improvement indeed
You don't need to wait for gcc to include the latest version of gnat. It's available for download from AdaCore http://libre.adacore.com/ in either GPL or commercially supported forms. (Commercial support is intended for companies, though, not for developers. It's a slightly different version, but pretty much the same. And it comes with official support. But it's just a mite expensive. )
-
Re:Anybody using Ada?
We use it a lot to build simulations.
Here's an online simulation of the Belgian economy, written using the Ada Web Server.
Several more here.
Ada is a wondefully expressive language, with lots of nice libraries, and it's well worth a look if you build, for example, simulations, financial systems and the like.
-
Re:Anybody using Ada?
One hosted using Google Code (last work appears to be have been done in May 2012):
Ada Web Application is a framework to build web application.
- AWA uses Ada Server Faces for the web framework. This framework is using several patterns from the Java world such as Java Server Faces and Java Servlets.
- AWA provides a set of ready to use and extendable modules that are common to many web application. This includes managing the login, authentication, users, permissions.
- AWA uses an Object Relational Mapping that helps in writing Ada applications on top of MySQL or SQLite databases. The ADO framework allows to map database objects into Ada records and access them easily.
- To avoid the blank page syndrome, the Dynamo application generator is provided to quickly create a new project, add a new database model or add a presentation page.
Here's another one from the AdaCore site:
What is AWS ? First of all, AWS stands for Ada Web Server but it is more than just another Web server...
AWS is a complete framework to develop Web based applications. The main part of the framework is the embedded Web server. This small yet powerful Web server can be embedded into your application so your application will be able to talk with a standard Web browser like Microsoft Internet Explorer or Firefox for example. Around this Web server a lot of services have been developed.
-
Re:I don't get it...
C++11 has a lot of nice features but it many ways it is playing catch up to Ada (see C++11 and Ada 2012 - renaissance of native languages? ). Too many view Ada as the "military programming language" but as safety and security become better understood Ada stands out.
If you haven't looked at Ada or looked at it a while ago I would recommend trying one of the latest. You can get download GNAT Ada for free.
-
Re:Monty's laboring under a misconclusion
AdaCore is another. Their business model does include dual licensing but for me, their support services are of more value.
-
Re:License
Not wanting to troll but, you know, if openssh was GPL licensed said commercial vendors would have to release the source for openssh with their products, including any modifications they made. The project could also offer LGPL or BSD licensed versions in exchange for cold, hard, cash.
You're assuming that the commercial vendors would still use OpenSSH if it was GPLed. What makes you think they wouldn't either roll their own SSH server or use some other proprietary implementation?
It would come down to economics. Is an LGPL version of openssh cheaper than commercial implementation X? This approach works for adacore.
But for sure, fewer products would contain openssh if it was GPLed. But with more money it might be a better product, so there might be a net iimprovement in security that way.
-
GNAT Programming Studio (GPS)
I use GPS available in the GNAT GPL packages at http://libre.adacore.com/libre/. It supports Ada, C, C++, Python, SPARK, etc. Its probably the best free IDE for Ada and SPARK, especially for use on large projects.
-
Re:NeoOffice are not the nice guys
NeoOffice is an interesting project but they really missed the entire point of open source. Going around them is not being unfriendly to open source since the whole idea of NeoOffice is two guys doing the following:
Take someone else's work.
Make a few changes.
Attempt to get money for it.
As you mentioned later, they did not just make "a few changes", they made quite a lot of changes.
The whole idea of open source is sharing stuff that other people are sharing with you.
That's the idea of free software, not necessarily of open source. Anyway, from a business perspective *one* of the main motivations (there are obviously more) to open source software is usually to avoid having multiple companies waste a lot of money on re-implementing and maintaining basically the same basic infrastructure. Nobody really gets a competitive edge out of that in the long run, it just costs a lot of money.
So instead, everyone can share the development cost/work of developing the basic infrastructure, and then privately invest in adding value-added features on top for which their target market wants to pay (until these features lose their specific attraction or become common, at which point they can be added to the open source base).
IMHO (as someone unconnected to both projects) if you want to write MS Windows style shareware on a different platform it's best to start with your own work instead of pissing off the people that are giving the stuff to you for nothing.
Tell that to AdaCore. They take the GNU Ada compiler, and then on a contract basis implement new features for companies such as Boeing and Lockheed Martin. Everything is under the GPL. But they ask a lot of money for doing that work, and (initially at least) the changes only go to whoever paid them. And while that company is fully entitled to redistribute those changes under the GPL, they usually don't because they consider them to be a competitive advantage. And as far as I know, the GCC community holds no grudge against them at all.
Taking an open source work as your basic infrastructure, adding value to that for a particular (niche) market and making money that way (be it on a contract basis, via shareware, or some other way) is one of the possible ways to make an open source-based business work. And there's nothing wrong with that, as far as I am concerned.
And for the record: no, I've never used the above business model myself, and yes, I do contribute to various free software projects in my spare time.
-
Ada
For Ada, I like WikiBooks: http://en.wikibooks.org/wiki/Ada
Also useful
http://www.adaic.org/
http://www.sigada.org/
http://www.adacore.com/
http://www.sparkada.com/
https://libre.adacore.com/ (free GPL'd Ada 2005 compiler) -
Ada
For Ada, I like WikiBooks: http://en.wikibooks.org/wiki/Ada
Also useful
http://www.adaic.org/
http://www.sigada.org/
http://www.adacore.com/
http://www.sparkada.com/
https://libre.adacore.com/ (free GPL'd Ada 2005 compiler) -
Another interview
There's another interview with him at adacore.com (makers of the GNAT compiler)
http://www.adacore.com/home/ada_answers/lorenz-code/ -
Re:Ada
Its syntax is fairly easy, and it provides means to avoid common mistakes in other languages such as the ability of deriving new types from primitive types and strong typing even with numeric types. Thus, I could define types *and* operators which are really significant for the problem at hand, no matter which machine it runs on:
type Distance is digits 4 range 0.0 .. 100000.0;
type Time is digits 4 range 0.0 .. 1000.0;
type Speed is digits 4 range 0.0 .. 200.0; -- Based on physical constraints, for instance
function "/"(Left : Distance; Right : Speed) return Speed is begin (code here) end;
This way, there is no way I can mangle arguments, a Time/Distance operation is undefined, for example, and will raise a compilation error. Besides, I don't have to care which size those variables take, I just specify what I really need and the compiler and runtime will take care of the details.
On the other hand, advantages such as this one only work if the programmer adapts herself to this way of thinking, instead of using predefined types as she would have done in C.
For a quick review of interesting characteristics of the language which make it useful to avoid mistakes (and, for the purpose of the article, cut debugging time), you can refer to this set of slides (PDF). -
Re:Ada
I think Ada is a language that everyone would benefit from learning. Its very useful. I have used it for years in my day job, by choice. Ada is probably the most well designed (carefully considered) general purpose language. It can and has been used for everything from GUIs and web servers to games, compilers, flight control systems, low level device drivers and everything in between. It is particularly well suited for low level hardware interfaces and for programming multi-processor systems, real-time or not, and for interfacing with other languages (C, C++, Java, Fortran). The best Ada compiler GPL licensed open-source and is freely available at https://libre.adacore.com/. It supports the latest Ada 2005 language standard. Other information is available at http://www.adaic.org/ Ada has long suffered from a lot of undeserved bad press. Don't believe it. Learn Ada - you probably won't look back.
-
Why, They already got a 2nd job ...
... at AdaCore [1] a very successful compiler vendor. Sure that makes them biased - but it also means they know what they are talking about. Note that the intended audience of the article (which is not
/. btw) knows about there double role. Also some of there former students praised them here on /.
Of course, you would have know that if you read the article or some of other postings.
Martin
[1] http://www.adacore.com/home/ -
professorship
But you have been missing that those proffessors are also the managing directors of AdaCore [1]. 6 figure salary - sure if not 7.
Before you call "cheating" remember the intended audience for the original article.
Martin
[1] http://www.adacore.com/ -
Re:The rise of Erlang and Haskell?
You could try Ada.
Ada is a multi-paradigm language (i.e. procedural or OO) that has threads ("tasks") built it. The experiences of Ada83 tasking wasn't brilliant - the OS/hardward available at the time just weren't up to the job and hopelessly expensive. This left a nasty taste for some which in turn led to FUD about the language as a whole - you wouldn't believe the rubbish I've heard over the years about what Ada is or is supposed to do!
Ada95 (and in particular the $0, Open Source GNAT compiler) changed that, making an affordable-for-the-masses,, fast Ada environment available on GNU/Linux and Windows platforms. It now comes with an Eclipse plug-in too.
Now, Ada2005 has arrived which even extends OO into the domain of active objects (i.e. extensible, polymorphic tasks). -
Re:Simply not enough?
Given that the software was free to begin with, I am not sure that its a good idea to pursue additional penalties (especially monetarily)
This is a wholly untrue statement. The "free" in Free Software has nothing to do with money. It is quite common (perhaps even more common) for the development of free software to be underwritten by a company who simply needs that software (or a feature in that software) for their own business needs. Pretty much the entirity of Apache has always been and continues to be built that way. A better example is ACT, a company whose entire business revolves around supporting the GNU Ada compiler, which they have spent more than a decade developing and improving. More commonly known are Red Hat (nee Cygnus), which have the same relationship with Cygwin, the Win32 Unix compatability layer.
If someone were to take that work, tack on a few improvements, and then start selling it to the developer's customers without even giving those improvements back so that developer can still compete with their own work, would that not cause financial harm? Even for a user, if there's an improvement that I should have had, but didn't because of the license violation, how much productivity has that lost me? How much did that cost me or my employer? How many other users besides me have been similarly put out? I could see damages getting quite high this way. -
Re:"open-source" != "non-commercial"While I don't know of any company that makes its revenue mostly from selling free software, there are plenty of successful companies that have free software as a large and vital part of their business model. Well there is AdaCore (http://www.adacore.com/home). All there software is GPL (get your free copy from https://libre.adacore.com/ and they still sell a five seat GNAT/Pro for 15'000 (last I heard).
And what a funny coincidence: Ada does not need a theading library - tasking as it's called is build right into the language itself ;-) .
Martin -
Right tools for the job.
It looks like you want to create a business with a business model that relies on you controlling access to your source code. If you really want to do that, you shouldn't build your software on top of a Free Software infrastructure. A lot of effort has been put into Free Software licenses to ensure that the software remains free, and trying to work around that is just going to cause you headaches. Use closed-source software instead. That world understands your needs and desires much better and, as a side benefit, won't make any annoying moral judgements against you. Sure, it costs money, but so will your product.
If instead you really want to build a build a business on top of Free Software, you should look at using a business model that is compatible with Free Software. That means no secret source code, but there are lots of other options for making money. Contrary to popular belief, there are quite a few companies out there legitimately making money from Free Software. Look at what they do.
A non-exhaustive list would include making your money off of support, hired development of new features, branding and packaging, access to non-infectious licensed libraries, early access to fixes, or sales of your hardware. The last option sounds promising for you, but this is something you should look into. -
Re:Ada and Ruby
Very apt analogy, since the flight control software of most modern airliners is written in Ada. See this page by the GNAT people for a partial list.
-
Re:Just Say No
You ask some good questions, especially considering that my original post smelled of flaimbait.
I have a mind, I've heard of Ada, and I've read about it, but I've never touched an Ada compiler.
You may touch an Ada compiler for free 8^) since Ada is an official member of gcc. It is therefore available for any platform for which gcc is available. You may download from gcc.gnu.org or better (pre-compiled) from libre2.adacore. It is called GNAT and is written in Ada (at least the front end is.)
So, where is it written that all software must be written in C or C++? Its not, but TONS of software and especially existing libraries are written in C/C++.
Can Ada be used for Linux kernel modules or Windows device drivers?
Absolutely.
I know C and possibly C++ can be used. Does Ada have hooks to common libraries like SSL and zlib?
As another poster commented, it is trivial (really) to make Ada bindings to C libraries. The "connection" is an official part of the Ada language specification. I did this recently for a plotting library written in C called PLplot plplot.sourceforge.net. I was just learning Ada and knew even less C. Most of my effort was involved in learning enough C to get the job done. I have posted information about these bindings at http://homepage.mac.com/oscarruitt/plplotinada/plp lot_ada.html. Note that this software is not yet released and is still under review by the PLplot folks; the usual disclaimers about suitability and nonliabiity apply.
How proven is the Ada compiler for Solaris, Linux, Windows, and AIX?
I'm not sure what you mean by "proven," but Ada is surely as proven as C and C++ is for these platforms. Ada can do anything that C and C++ can, as far as I know. Ada compilers typically undergo a notoriously stringent testing suite. When you fly on modern commercial jet aircraft, you're flying Ada. Post your question to comp.lang.ada and you'll get answers from actual Ada experts.
I've got years of experience with C/C++, zero with Ada, if you really want that code to be written yesterday, how long will it take me to be as proficient in Ada as I am in C/C++?
Tough question. Again, others with more experience in all of these languages can answer better. I'll answer this way at the risk of sounding prejudiced: You can become proficient in the subset of Ada that "covers" C and C++ in less time than it took you to learn them. Also, once you achieve some level of proficiency in Ada, it is commonly reported that development time is less than for C/C++. And Ada is said to excel in long-term maintenance of large projects.
Personally, I (like everyone else) have looked time and time again at getting serious with C. (I first learned to program in 1973 and have used many languages.) Maybe I'm lucky, but I've always had the final choice in what languages I use. I am a big proponent of knowing several languages and choosing the best one(s) for the job. Not only has C struck me as being inappropriate for every programming task that I have had with respect to reliability, it has also struck me to be hard to learn and even harder to read. Ada, on the other hand, has a clean, consistent syntax and of course is designed from the ground up to be safe.
I ask people all the time why the still use Windows just like you are asking about why people still use C or C++. The difference in my question is that there is a clear migration from Windows via virtualization and/or using alternatives to Windows specific solutions. The fact of the matter is that change takes time and effort, and people are fundamentally lazy and comfortable with what they are already familiar with. Couple that with ignorance of there being a better way, and your stuck with the lowest common denomina
-
Re:Just Say NoAs someone else mentioned, Ada was originally designed as a safety critical embedded language (a field in which it still dominates) and so one can of course write drivers with it (though I doubt you'll see many for mainstream OSes). As for compilers, GNAT is the GNU Ada compiler and runs on many platforms. As for it being proven, Ada compilers are required to pass much more rigorous tests then C or C++ compilers in order to call themselves Ada compilers. So yes, GNAT is a free and proven Ada compiler (it even already supports Ada 2005) that will run on all of the above OSes since it's a part of GCC. As for libs, SSL, is supported in AWS and there is a thick binding for Zlib here. But also not that Ada has built in interfaces for C (and even C++ in Ada 2005) and it's trivial to write weak bindings for existing C libraries if none exist (though most do already). As for learning, Ada is pretty easy to learn and will look like Pascal or Delphi. Like C++ it's a big language, but over all it should be easy to learn if you're curious and have some time. The biggest hurdle to get over is the strong static typing of Ada. If you've never programmed in a language like this (ML for example) it will probably seem like coding in a "police state." But once you get over this little hurdle, you may just end up loving it since the compiler catches so many things at compile time that will be mysterious linking errors in languages like C++.
But all that being said, Ada isn't trying to compete with C or C++, instead it works with them while still being an innovator in areas like concurrent programming. Although I would certainly say that Ada does everything these languages do better, the bottom line is there's a lot of C/C++ code out there (not to mention Fortran and COBOL in their respective domains) that Ada has built in interfaces too making it a very realistic and practical language. Good luck!
-
Re:Just Say NoAs someone else mentioned, Ada was originally designed as a safety critical embedded language (a field in which it still dominates) and so one can of course write drivers with it (though I doubt you'll see many for mainstream OSes). As for compilers, GNAT is the GNU Ada compiler and runs on many platforms. As for it being proven, Ada compilers are required to pass much more rigorous tests then C or C++ compilers in order to call themselves Ada compilers. So yes, GNAT is a free and proven Ada compiler (it even already supports Ada 2005) that will run on all of the above OSes since it's a part of GCC. As for libs, SSL, is supported in AWS and there is a thick binding for Zlib here. But also not that Ada has built in interfaces for C (and even C++ in Ada 2005) and it's trivial to write weak bindings for existing C libraries if none exist (though most do already). As for learning, Ada is pretty easy to learn and will look like Pascal or Delphi. Like C++ it's a big language, but over all it should be easy to learn if you're curious and have some time. The biggest hurdle to get over is the strong static typing of Ada. If you've never programmed in a language like this (ML for example) it will probably seem like coding in a "police state." But once you get over this little hurdle, you may just end up loving it since the compiler catches so many things at compile time that will be mysterious linking errors in languages like C++.
But all that being said, Ada isn't trying to compete with C or C++, instead it works with them while still being an innovator in areas like concurrent programming. Although I would certainly say that Ada does everything these languages do better, the bottom line is there's a lot of C/C++ code out there (not to mention Fortran and COBOL in their respective domains) that Ada has built in interfaces too making it a very realistic and practical language. Good luck!
-
Re:Just Say No
GNAT is written in Ada: https://libre.adacore.com/ But Ada is a social language and is quite friendly with C and other languages and can therefore interface with either quite easily. It's trivial in Ada to write weak C bindings and even an Ada newbie could do it. This is because Ada was not designed to eliminate C which will always have a place when people need portable assembler and so instead, accepts this fact and makes it very easy to work with C and even C++ (not to mention Fortran, COBOL, and assembly). She's a practical and safe language, not an idealistic one. C fits a niche which Ada doesn't try to usurp. Now C++, that's another story....
-
... less focused on speed and efficiency ...These problems wouldn't arise if programmers were a little less focused on speed and efficiency, which is rarely a problem these days, and more attentive to security Indeed. And one could start of by using using a programming language which is "attentive to security" [1].
I did and I never looked back. It is a damm lot easier then trying to fix the deficiencies of a speed, speed and only speed focused language (C/C++) by the means of tool.
I tried [2] - and it did not work well. A add-on tool just can not beat build in buffer overrun protection by no means.
In the case of Splint static analysis is just not enough, you need runtime checks as well.
And in the case of Die-Hard all the protection bolted on later at runtime. And that will relay be great for performance.
Only ... the JPEG-Virus was based not on a buffer overrun, it used an integer range overrun. Ada has build in protection for integer range overruns. Haven't read anything about Die-Hard protecting anything but memory.
$360,000 wasted because the majority of programmers are to lazy to learn a new programming language (those present are of course not meant).
Or there bosses rather buy a tool then a course for them.
Martin
PS: If you like to try Ada you get the free and open source version here [3].
[1] http://en.wikipedia.org/wiki/Ada_(programming_lang uage)
[2] http://en.wikipedia.org/wiki/Splint_(programming_t ool)
[3] https://libre2.adacore.com/ -
Ada 2005
Ada 2005. Available now from a compiler near you: GNAT GPL Edition
-
Re: (So were Pascal, Modula, and Ada.)
http://www.adacore.com/home/ada_answers/lookwho
I work for one of the named companies ;-) and for our "mission critical" applications we have no intention to change. -
GNAT Programming Studio
-
You need a High Integrity Toolchain
Hello,
I am sorry to tell you: If you need to write ultra-stable software then you need a propper "High Integrity Toolchain". My suggestions:
http://www.praxis-his.com/
and
https://www.adacore.com/gnatpro_high_integrity.php
There are no two ways around it. Speed is no issue - Ada is just as fast as C++. The libraries are more tricky. But then: have you ask yourself: "Are those libraries ultra-stable?"
If they are not then your efforts are furtile. And most likely they are not. Most C/C++ library vendors don't have ultra-stable in mind when they create there libraries. That's unlike for example Ada library vendors which allways take stability into account.
Others said it before, suggestion other languages and I repeat it: C++ is a no go for ultra stable.
Martin -
Consider Ada
Using the good-old Ada programming language (for which a new standard should be issued this year), you can go closer to what you're looking for (though I'm not sure your goal is realistic).
Here's a pointer to the new standard : http://adaic.org/standards/05rm/html/RM-TTL.html
With Ada:
- you can call externally-defined C/C++ functions (see annexe B);
- you get quite advanced runtime-checks;
- you have plenty of exceptions to use to catch errors (see sections 11 and section Q.4);
- you have tasking (more or less threading) implemented inside the language (see section 9);
- a specialized annexe is targetted toward distributed system (annexe E);
- specialized annexes for high-integrity systems (annexe H) and real-time systems (annexe D);
- ...and more, much more.
It probably won't solve every of your problems, but it might help.
For a free, quite strong Ada compiler, have a look at https://libre2.adacore.com/ (it's based on GCC).
Oh yes, Ada is a statically, strongly, strictly typed language (e.g. the compiler won't let you assign an integer to a float variable). My opinion is that it's a Good Thing for critical programs. Useless to restart a "type war" on this subject
;-)Good luck.
-
Re:Still can have bugs
"Take the supposed wonderful language of ADA. What databases can it talk to? What type of user interface can you construct? Can it talk HTTP or HTTPS? Can it do SOAP? Can it spawn threads or processes?"
Some of the Ada bindings available include:
GNADE (http://gnade.sourceforge.net/ supports ODBC, MySQL 3.X and 4.X, PostgreSQL and SQLite. There are also Ada bindings for Oracle.
The main cross-platform UI kit is GtkAda (https://libre2.adacore.com/GtkAda/) - it works with the glade GUI builder. There are also some Windows-specific kits, including Claw (http://www.rrsoftware.com/html/prodinf/claw/claw. htm).
Web programming is supported by Ada Web Server (https://libre2.adacore.com/aws/). It handles SOAP.
Threads and support for concurrency are part of the language standard. Processes can be spawned via expect-like packages usually available with the compiler.
See http://www.adapower.com/, http://www.adaworld.com/, http://libre.adacore.com/ and http://www.adaic.com/ for additional resources.
- Ed -
Re:Still can have bugs
"Take the supposed wonderful language of ADA. What databases can it talk to? What type of user interface can you construct? Can it talk HTTP or HTTPS? Can it do SOAP? Can it spawn threads or processes?"
Some of the Ada bindings available include:
GNADE (http://gnade.sourceforge.net/ supports ODBC, MySQL 3.X and 4.X, PostgreSQL and SQLite. There are also Ada bindings for Oracle.
The main cross-platform UI kit is GtkAda (https://libre2.adacore.com/GtkAda/) - it works with the glade GUI builder. There are also some Windows-specific kits, including Claw (http://www.rrsoftware.com/html/prodinf/claw/claw. htm).
Web programming is supported by Ada Web Server (https://libre2.adacore.com/aws/). It handles SOAP.
Threads and support for concurrency are part of the language standard. Processes can be spawned via expect-like packages usually available with the compiler.
See http://www.adapower.com/, http://www.adaworld.com/, http://libre.adacore.com/ and http://www.adaic.com/ for additional resources.
- Ed -
Re:Still can have bugs
"Take the supposed wonderful language of ADA. What databases can it talk to? What type of user interface can you construct? Can it talk HTTP or HTTPS? Can it do SOAP? Can it spawn threads or processes?"
Some of the Ada bindings available include:
GNADE (http://gnade.sourceforge.net/ supports ODBC, MySQL 3.X and 4.X, PostgreSQL and SQLite. There are also Ada bindings for Oracle.
The main cross-platform UI kit is GtkAda (https://libre2.adacore.com/GtkAda/) - it works with the glade GUI builder. There are also some Windows-specific kits, including Claw (http://www.rrsoftware.com/html/prodinf/claw/claw. htm).
Web programming is supported by Ada Web Server (https://libre2.adacore.com/aws/). It handles SOAP.
Threads and support for concurrency are part of the language standard. Processes can be spawned via expect-like packages usually available with the compiler.
See http://www.adapower.com/, http://www.adaworld.com/, http://libre.adacore.com/ and http://www.adaic.com/ for additional resources.
- Ed -
Re:What language?
Not just military apps now though - lots of "mission critical" (and that includes "business critical") s/w is written using Ada (not ADA - it's a name not an acronym). E.g. the transmit side of some satellite TV stations are written in Ada as the programmes (and adverts) have to be shown. Set top boxes in the users homes can be written in Java as if they go wrong only 1 household is affected and the user can reset it easily enough. Lots of Swiss banks use Ada too. Check out http://www.adacore.com/aa_about.php
-
Re:Mudflap
Umm, How about Ada95?
It is safe, easy to read, efficient, and intended for embedded systems. Oh yeah, it is also object oriented, if you like, and supports template programming. You also get a more natural syntax for multi-threading than pthreads built into the language. Ada2005 is adding STL-like containers and the interfaces mechanism from Java among other improvements.
GCC 3.4.x has a pretty decent free implementation, and you can start getting good tools at http://libre.adacore.com/. Aonix and Green Hills make good compilers for RTOSes and bare-metal, safety critical stuff.