Linked by Thom Holwerda on Thu 12th Mar 2009 00:45 UTC, submitted by pablo_marx
Permalink for comment 352738
To read all comments associated with this story, please click here.
To read all comments associated with this story, please click here.





Member since:
2005-07-14
I am sorry but I have to differ here. They guy that broke the Colossus last year used Netbsd + Ada and his job was very impressive to my opinion. This is what he said from: http://www.netbsd.org/gallery/schueth-interview.html
What is special about the Ada programming language? How important was the use of Ada to win the challenge, or does the programming language not really matter?
One year back I would have written the software in C, simply because I did not really know Ada at that time. But writing the software in Ada made the whole project much more enjoyable.
To tell you the truth, my prejudice had been for a long time that Ada looks just like Pascal, and Pascal had been obsoleted by C. You also have to type less when writing a program in C (just curly braces instead of "begin" and "end"). In hindsight, I have to say that I was quite stupid, and this even though I was always open to learn new programming languages and have looked at a lot of them.
Ada avoids programming errors by its strong typing model, so you spend less time on debugging your programs. The high level data abstraction allows a more intuitive implementation of algorithms. Modeling the SZ42 in Ada by creating data types for the key wheels and combining them to a data type for the entire machine felt a bit like building a machine piece by piece.
I can only encourage everyone to have a look at Ada. It is a modern programming language with all the features of object oriented languages, like high level abstraction, information hiding, generic programming (similar to C++ templates), and function / operator overloading. Personally I do not have much use for inheritance and run-time polymorphism, but Ada has that too, with concepts that seem more logical to me than those of C++ or Java.
Another interesting feature of Ada is that the language has support for tasking, and that it provides protected types for the safe handling of shared data. On modern multiprocessor systems, you can use the full computing power in number crunching applications by performing calculations in parallel. If the run time system provided by the compiler (usually based on POSIX threads) is designed accordingly, you should be able to do parallel processing on several CPUs just by using the standard language features of Ada. I have not yet tried this, though.
--
Ada language is awesome. It depends how you use it.
-2501