To be fair Oberon's roots go back to Pascal and not C. Pascal predates C.
:)
To be fair Oberon's roots go back to Pascal and not C. Pascal predates C.
:)
This particular code does not have any pascal-y language features. What is the point of the post? If it was to demonstrate that Oberon is good for teaching / real stuff / general purpose programming / something else, then it failed.
To me, the points of the post is: "hey, this language is not dead! We can now fork() and do socket ops!". Is this intentional?
The OP's link points to a test directory. Go look at the actual source code:
https://github.com/norayr/voc/tree/master/src
Oberon has all the features you describe: Range types, bounded arrays, and so on. It doesn't have the interface/implementation split (though it has a "DEFINITION" block you can use); modules contain both the interface and implementation, and you export symbols with "*" (or "-" for read only).Basically, Oberon-2 > Oberon > Modula-2 > Modula > Pascal. Oberon adds interfaces, open arrays, type-bound procedures (similar to Go's struct methods), etc. It's an evolutionary improvement/tweak over the previous languages. If you know any of them, Oberon-2 will be very familiar.