On Tuesday, 7 August 2012 at 18:08:25 UTC, Araq wrote:
On Tuesday, 7 August 2012 at 10:28:00 UTC, Franciszek Czekała wrote:
I spent far to much time with Ada (I have and I have read quite a pile of books on this language). When I tried to write some sample programs with GNAT using advanced features of this language I immediately hit on bugs so ridiculous that I was thrown off the language for good.

For example?

If my memory serves me the bugs were related to postblit constructors and finalizers (not to mention that these features are horribly designed and a clear afterthought).

There are no free compilers of this language (which you could freely use to write commercial programs, like for example games), no affordable commercial compilers (which you could buy for ~$500). Ada as a language is DEAD.

FSF's GNAT in GCC is GPL with linking exception, like the rest of GCC. If you say "you can't build commercial software" with this, you can't build commercial software with GCC either.

Check http://libre.adacore.com/comparisonchart/
GNAT GPL edition is meant for "Free Software development following the terms of the GPL". It is not that the compiler is GPL protected. It is that your programs created with GNAT are required to be GPL protected. The difference is related with licensing of the GNAT runtime which is always a part of compiled Ada programs. This licensing was changed some time ago to put restrictions on what you can do with Ada. I spent some time searching internet forums trying to clear the matter and the consensus was that you cannot legally use free GNAT to create closed-source commercial programs.

And you certainly heard about the Ada related catastrophe of the Ariadne rocket? So much for "safety". Ada is dead and should not be touched with a mile pole.


http://en.wikipedia.org/wiki/Ariane_5

"Ariane 5's first test flight (Ariane 5 Flight 501) on 4 June 1996 failed, with the rocket self-destructing 37 seconds after launch because of a malfunction in the control software.[14] A data conversion from 64-bit floating point value to 16-bit signed integer value to be stored in a variable representing horizontal bias caused a processor trap (operand error)[15] because the floating point value was too large to be represented by a 16-bit signed integer. The software was originally written for the Ariane 4 where efficiency considerations (the computer running the software had an 80% maximum workload requirement[15]) led to 4 variables being protected with a handler while 3 others, including the horizontal bias variable, were left unprotected because it was thought that they were "physically limited or that there was a large margin of error".[15] The software, written in Ada, was included in the Ariane 5 through the reuse of an entire Ariane 4 subsystem despite the fact that the particular software containing the bug, which was just a part of the subsystem, was not required by the Ariane 5 because it has a different preparation sequence[15] than the Ariane 4."

The program was written with Ada and failed in a most stupid way. Is it not a proof enough that safety cannot be sensibly enforced by mechanical tools? And this was the main rationale for Ada from day one. If you check for possible commercial compilers you will see that most of them remember the days of Windows 95. Ada was forced on people by administrative means and died when those means were removed. I wonder how much Ada is in Curiosity on Mars. Let me guess, 0%?

Reply via email to