Linked by Thom Holwerda on Thu 12th Mar 2009 00:45 UTC, submitted by pablo_marx
Sun Solaris, OpenSolaris Ever wanted a simple, compact, small, yet usable and relatively full-featured operating system using a SunOS kernel with most of its utilities written in Ada? Whatever the answer, now you can. "AuroraUX is a SunOS-derived kernel and userland. The core of the project are its utilities written in Ada. Other, poorly implemented features have been fixed or rewritten, too. Ada was chosen over other languages because it sucks the least." At least they're honest.
Order by: Score:
who sucks!?
by 2501 on Thu 12th Mar 2009 01:38 UTC
Member since:

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:

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.


Reply Score: 5

RE: who sucks!?
by renox on Thu 12th Mar 2009 16:06 UTC in reply to "who sucks!?"
renox Member since:

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..

Reply Score: 2

RE[2]: who sucks!?
by pcummins on Fri 13th Mar 2009 09:06 UTC in reply to "RE: who sucks!?"
pcummins Member since:

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.

Reply Score: 1

RE: who sucks!?
by phoenix on Thu 12th Mar 2009 17:20 UTC in reply to "who sucks!?"
phoenix Member since:

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.

That would be because Ada is Pascal, or at least a descendent of Pascal.

Reply Score: 2

Could be interesting
by Jondice on Thu 12th Mar 2009 03:57 UTC
Member since:

I'm not an expert on anything involved, so forgive the ignorance of the question: is it very difficult to interface C and Ada at the kernel level, so that one could write drivers or rewrite portions of the kernel in Ada?

Reply Score: 1

RE: Could be interesting
by pcummins on Thu 12th Mar 2009 13:33 UTC in reply to "Could be interesting"
pcummins Member since:

Could one write drivers or rewrite portions of the kernel in 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.

Reply Score: 2

Ada rocks.
by Tuishimi on Thu 12th Mar 2009 07:13 UTC
Member since:

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.

Reply Score: 2

Small correction
by C2H5OH on Thu 12th Mar 2009 08:32 UTC
Member since:

Just a rectification. Ada was not designed by the DoD but for the DoD. Ada design was the contest winner.

Reply Score: 2

Good work!
by moondevil on Thu 12th Mar 2009 08:42 UTC
Member since:

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.

Reply Score: 1

by inetman on Thu 12th Mar 2009 12:41 UTC
Member since:

The US-Military made ADA mandatory for all of its projects. On the one hand this is about standardization, on the other hand they rely on ADAs strong typing etc to more reliable code.


Edited 2009-03-12 12:42 UTC

Reply Score: 1

Dynamic class loading?
by panzi on Thu 12th Mar 2009 15:06 UTC
Member since:

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?

Reply Score: 1

Re: Dynamic class loading?
by sparre on Fri 13th Mar 2009 09:35 UTC in reply to "Dynamic class loading?"
sparre Member since:

I am almost certain it is possible to implement dynamic class loading in Ada, although I've never gotten around to demonstrate it myself.

The fact that there exists Ada compilers targeting JVM and .NET platforms seems to support my view.

Reply Score: 1

Ada ok but Falcon??
by renox on Thu 12th Mar 2009 16:38 UTC
Member since:

While I understand the choice of Ada over C or C++, I'm more surprised by their use of Falcon.

I remember an article here on Falcon but I didn't see what was interesting in Falcon compared to Python or Ruby..

Reply Score: 2

RE: Ada ok but Falcon??
by Jondice on Thu 12th Mar 2009 19:57 UTC in reply to "Ada ok but Falcon??"
Jondice Member since:

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

Reply Score: 1

by Andre4s on Fri 13th Mar 2009 09:52 UTC
Member since:

Has anyone found any screenshots?

Reply Score: 2