Post a Comment
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
Uh, I think that you misread the sentence: "Ada was chosen over other languages because it sucks the least.", it's just another way to say that Ada is the best language.
Ada is a bit too verbose for my taste but I agree that it's a very good language, but it's not much used probably because at the beginning Ada's compilers cost an arm and a leg..
The chances of shooting yourself in the foot with Ada is significantly less than most other languages like C. Part of this is because of the strong typing and slightly more verbose language structures. It's aimed for reading more than writing, anyone who thinks using nifty shortcuts for writing code is cool unnecessarily obviously doesn't maintain code.
The compilers originally were very expensive as they were for very specialised systems (ie, custom made, embedded, etc) and they were also validated so bugs in the compiler were pretty rare, which is what the programmers were paying for. These days with GNAT the only real excuse is lack of ported headers from the predominantly C libraries to Ada.
Yes. The language supports systems programming (ie, native access to low level hardware and CPU features) and linking to other languages (notably C) as part of its recommended features in the RM annexes. In this sense, Ada as a language is much more suited to programming consistently at a high level than C for OS development if the compilers support the annexes out of the RM.
It is still my "all-time favorite" language. I learned Ada back in the 80's and fell in love with it. Even got to work on it as part of an OS service.
Ada also introduced me to Grady Booch... loved his book on data structures with Ada.
Anyway, glad to see it is still in use.
I am all for projects such as this.
C is a very nice language but has a few quircks we all know, so it is nice to see projects making use of more safer languages.
Ada might never get a mainstream language because of its complexity, which is less than C++ by the way, but it has a bad name around many developers.
Me personally, I am more for the mixed paradigm languages that mix OOP with FP, statically based but do allow a metaprogramming as well.
Still this is a very nice project and I hope that they get far. C is not the only language to write OSs on.
Is dynamic class/module loading or something similar possible with Ada? Somehow the Typesystem doesn't look like it: You can get a list of all the subclasses of a class. How is this possible if you don't actually know all subclasses because they could be loaded from a file? Or are only the currently loaded classes listed?
I'm also curious about the choice of Falcon over Python.
EDIT: Actually, after reading about Falcon a bit - it supports many programming paradigms, including those of python, but additionally message oriented and tabular.
Message oriented could be useful for zones and VMs.
Tabular programming would be a useful way to look at/work with configuration data, and lots of other stuff probably.
Finally, it seems to have builtin in concurrency support, rather than supporting it as an afterthought like python - and concurrency was one of AuroraUX's stated goals.
So yeah, I suppose I can see why they are going with it. It has many other interesting features other than these, but these are ones that struck me as being somewhat unique and inline with their goals.
Edited 2009-03-12 20:06 UTC



