17 ms·
"code of the compiler is available... for personal, non-commercial and non-governmental use."
by NonEUCitizen 6y ago
"code of the compiler is available... for personal, non-commercial and non-governmental use."
- MaxBarraclough 6y agoRendering the project irrelevant at a stroke. A pity. Does the language do anything that Dart doesn't?
- protomyth 6y agoWell, they did write an OS in Oberon. Not sure how much of the language is included in the Script. 2007 probably needs to be added to the title. I get the feeling that progress is a bit slower than anticipated.
- dmitriid 6y agoIt doesn't do anything most modern languages do. Oberon is one of the confusing family of Oberons that come from a confusing family of Modulas that comes from Pascal. Most of them come from Niklaus Wirth or try to build on his ideas. The reason I say confusing is that, for example, there's no one Oberon. There's Oberon, Oberon 2, Active Oberon etc [1]. They differ in things like - they may or may not have things like for loops - they may or may not have various OOP features - they may or may not have pointers - they may or may not have three different types of looping constructs with different constraints (you can exit a do loop, but not a while loop etc.) and so on, depending on ... well depending on nothing but Wirth's ideas of what a programming language should be. There are at least two OSes built with Oberon: Oberon and Bluebottle. There are fans of this family of languages, and I've even participated in discussions (on a Russian programming forum) where people would defend to the death the choice of three different loop constructs with different semantics (you can break inside LOOP, but not inside FOR or WHILE etc.), or the difference between procedure and function etc. [1] https://en.wikipedia.org/wiki/Oberon_(programming_language) https://en.wikipedia.org/wiki/Oberon_(programming_language) [2] https://en.wikipedia.org/wiki/Oberon_(operating_system) https://en.wikipedia.org/wiki/Oberon_(operating_system) [3] https://en.wikipedia.org/wiki/Bluebottle_OS https://en.wikipedia.org/wiki/Bluebottle_OS
- MaxBarraclough 6y agoThanks for the well-informed response. Sounds rather shallow to me, really. I can see the point in building a kernel in the safe subset of Rust, to provide strong assurances about memory-management. I can see the point in building a kernel in SPARK to provide even stronger and more general assurances of correctness. I see the point in developing a kernel using a fully formal methodology, like Sel4. I can see the fun in hand-tuned kernels written in assembly, like KolibriOS. What's interesting about using a language with slightly different imperative building-blocks? Rust wouldn't be worth learning if it were merely C with different iterative statements. Or are there significant advantages to the various Oberons, that I'm unaware of?
- cmrdporcupine 6y agoIf I understand it correctly, the primary purpose of the whole Oberon ecosystem is as an educational tool. And in that, I can see value. Having a holistic consistent system in one language/paradigm that you can build or analyze from the ground up has definite pedagogical value.
- Rochus 6y agoRight.
- cedex12 6y agoI'm no expert but it seemed to me the whole Pascal, Modula, Oberon story is in big part about Wirth chasing/exploring some optimal/balanced¹ programming language. So, it makes a lot of sense to have many variants and an evolution retracing both his learnings and opinions (that can change with time, and do, hopefully) and exploring different variations on a common theme. And developping an OS in any of these languages is pretty much a real-life test of their adequacy (meaning they are not just some vacuous formal exercise). Iirc, Wirth achieved some relatively lean but powerful languages at some point. Also, I don't understand your opposition to writing a kernel in some form of Oberon, but accepting pretty much any other language/paradigm ? ¹ Not that there is only _one_ optimal language.
- Rochus 6y ago> Does the language do anything that Dart doesn't? No. But Oberon demonstrates how one can implement real systems with a very little language; and with an extremely small footprint compared to Dart (you can fit a whole operating system into one or two megabytes). There are a lot of other differences; Oberon is a truly statically/strictly typed language wheras the type system in Dart is intentionally optional; you can write an Oberon parser in a couple of hours (in contrast to more complex and ambiguous languages like Dart or Go). Oberon was optimized for use as an educational language and was successfully used for this purpose e.g. at the ETH Zurich. Wirth wanted the minimum necessary for his language, without unnecessary luxury, which only increases the development and learning effort.
- MaxBarraclough 6y agoSounds rather like the application of the Forth philosophy to conventional imperative programming. (Curiously I was saying just the same thing yesterday about Tcl - https://news.ycombinator.com/item?id=24898886 https://news.ycombinator.com/item?id=24898886 )
- Rochus 6y agoSee https://people.inf.ethz.ch/wirth/Articles/Modula-Oberon-June.pdf https://people.inf.ethz.ch/wirth/Articles/Modula-Oberon-June... for the philosophy