Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Also, a language.

Oberon-2 language has Pascal-like syntax, with Java-like features (classes, single inheritance, interfaces, garbage collector, sane module system instead of includes). Unlike Java, no VM is required, at least in the system that I used. Like Java and unlike C, it is impossible to write unsafe code accidentally - you have to go out of your way to access unallocated memory regions or break type safety.

Decent module system and straightforward grammar has also allowed writing simple and very fast compilers. It was fun to work with.



Until a few years ago, Oberon-2 was the programming language of choice in the first year of CS at my university (except for a small course on C++). They use Python and more C++ now.


Modula-2 and Oberon-2 as first procedural and first OO language in my university as well (in Soviet Russia, no less :) )


I learned Modula-2 in my university (UMA, Spain) around 2000. they changed to C++ a year later. Even now days all the pseudocode used by many courses is strong inspired in Modula-2.


My Intro to Operating Systems class was in Modula-2 circa 1988. I really liked it. I was lucky enough to subsequently spend quality time with Modula-2 on the 8051 and Modula-3 on Ultrix (which was a really nice evolution of the language). Shame that line of innovation has withered.


We also programmed in Oberon at varsity. I think oberon with scheme and c would be a great set of 3 languages to teach from school level through till end of undergrad at varsity.


Java's VMs are just an implementation issue, there are plenty of native compilers to choose from.

Having said this, I really enjoyed it working with Oberon, it showed to me how one can implement a fully working desktop system in a GC enabled systems programming language.

I have used the original version, System 3 and Active Oberon aka AOS.

Sadly the industry is still stuck in C land for such tasks.


BTW, as far as I understand Project Oberon uses Oberon language, not Oberon-2. Main thing - there is no inheritance and instance methods, they are achieved via aggregation and function tables.


Oberon-2 was used as basis and extended for Active Oberon, the sucessor OS.

Not sure about EthOS though.


EthOS was Oberon-2 if I am not mistaken. The paper discussed in this link though still uses Oberon (even though paper was updated in 2013).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: