William James
2004-10-25 08:06:30 UTC
For the 80s Oberon-2 is/was a great programming language.
Obviously, there have been various attempts to cure some
shortcomings (e.g. Blackbox Component Pascal).
However what bothers me most after reading some Oberon
source-code and Mössenböcks "OOP in Oberon-2" are
(1) Split of interfaces into event-(records) and method-interfaces -
since type safety is lost and interface-specification suffers.
Compare this e.g. with bi-directional interfaces in TinyOS's
Java's Swing event system, though I think it's too verbose.
(fixed in Oberon for .net ?)
(2) Data structure libraries suffer from the lack of
generics or templates. Type safety lost again.
A "counter-measure", which seems to be quite popular
among Oberon users, is to use linked-records
(easy to code) and re-implement list iteration and
insertion etc. for every type needed!
Other data-structures are hardly used.
How important are these two shortcomings?Obviously, there have been various attempts to cure some
shortcomings (e.g. Blackbox Component Pascal).
However what bothers me most after reading some Oberon
source-code and Mössenböcks "OOP in Oberon-2" are
(1) Split of interfaces into event-(records) and method-interfaces -
since type safety is lost and interface-specification suffers.
Compare this e.g. with bi-directional interfaces in TinyOS's
Java's Swing event system, though I think it's too verbose.
(fixed in Oberon for .net ?)
(2) Data structure libraries suffer from the lack of
generics or templates. Type safety lost again.
A "counter-measure", which seems to be quite popular
among Oberon users, is to use linked-records
(easy to code) and re-implement list iteration and
insertion etc. for every type needed!
Other data-structures are hardly used.