[Oberon] Oberon usage

spir denis.spir at gmail.com
Sun Jul 11 21:12:28 MEST 2010

On Sun, 11 Jul 2010 10:28:49 -0500
Aubrey.McIntosh at Alumni.UTexas.Net wrote:

> > - no literal notation for arrays and records/objects (center := Point{x:=0,y:=0};)  
> I don't understand how this notion is unsatisfactory for you:
> center := ThisP ( 5.0, 7.5 )
> PROCEDURE ThisP(x, y : REAL ) : PointPtr;
> 	VAR
> 		aux : PointPolarPtr;
> 	aux.mag := Math.sqrt(x*x + y*y);
> 	aux.angle := Math.arctan( y / x );
> 	RETURN aux
> END ThisP;

Because it is not builtin, indeed. Why have arrays, & indexing, then? Why records, & extensible types? Why operators at all? We can hand-code all of this, cannot we? Why sensible abstractions like automatic dereferencing, too?

Builtin means:
* No need to code it / reinvent the wheel.
* No need to re-code it each time, for detail differences: here one needs one init proc for _every_ type.
* It is very probably done the right way.
* It is reliable.
* It is a *shared* feature.

The latter point is often overlooked, but in my sense the most important one: the whole Oberon programming community share the feature; everyone knows, or will soon know, perfectly its precise semantics.

And there are things we simply cannot build on top of a language as is. I would be pleased to contribute a module, if the language gave me the means to do it. But literal notation magic happens on the compiler side, thus I'm helpless (and can only complain ;-)

All of this makes me sad for the following reason: when I first discovered Oberon-2, I was very surprised such a design quality in a super-hype field (OO) can even *exist* in our all-marketing time. And wondered why this language did not happen to challenge and offer prgrammer with higher quality expectations ("resistants") a sane & sensible alternative ("counter culture" ;-) in front of the all-C (C++,C#,java) power... exactly like Pascal one generation before. Reasons I read in an interview of Niklaus Wirth are certainly true: marketing, precisely, and not the right time for a new language.
Maybe there is more on the topic. Namely: is it a wished perspective? I would love to see an active and enthusiastic eco-system around such a great language. Among other things, this requires a tiny minimum of agile tools & abstractions; ones that would not make the language less elegant, on the contrary (and let more place to the joy of programming instead of wasting our time and energy with administrative tasks). What do the language creators, promotors, users want?

(Sorry for taking your reply as an oppurtunity, Aubrey. And sorry for the mood to all.)


vit esse estrany ☣


More information about the Oberon mailing list