Jump to content

Talk:Oberon (programming language)

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Prosfilaes (talk | contribs) at 08:01, 9 May 2004 (Justification of NPOV). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

I don't have the information to correct this, but

"It also offers an interesting feature which is only recently becoming available in more prominent development systems: exportability of procedures. Imagine that for some program you create a PNG viewer procedure and that you export it: any program on the system will be able to view PNG files merely by calling the viewer! That's true reusability."

is bogus. Code libraries predate Fortran, and shared libraries date back to or before MTS and the late 1960s. CORBA and things like it do this too. I'm sure there's something mildly unique, but I don't know exactly what it is. Likewise,

"The code will be both smaller than that in nearly all other programming languages..."

leaves me sceptical; it sounds like ad copy instead of an accurate statement. Oberon is in the same family as Modula-3, Ada, Pascal, and Java, and more distantly C, so it's not going to produce a huge difference in code size. Perl, Mathematica and APL will blow away any of the above languages in the right problem domain.

"...(mistakes will be less easily lost in a forest of detail)"

Which doesn't follow from the statement it's parenthetical to. Languages that add the detail of a variable definition for every variable save people from many mistakes that were made in Fortran. APL and Perl are both known for small code, and both are known for being hard to read.

"less opaque (fewer language 'features' mean less chance of confusing/misusing them)"

Love the scare quotes around features. How does removing enumerations and forcing people to use integer constants make things less opaque? In general, you have language features because otherwise you have to write a lot of code to emulate them, or because it's more efficent to have the compiler handle it. I had a professor who would honestly argue that programmers should just use a Fortran with extra features added until everyone was happy. Whether or not Wirth's minimalist strategy is good is still being debated, but the average programmer uses a programming language more complex than Oberon, and frequently much more complex than Oberon (C++, Perl, Common Lisp, Fortran 95).

"less subject to error problems from data typing problems"

C programmers might point out that strict data typing like Oberon has is a pain and can add to a lot of type changing, from integer to float, for example, and even worse if you want to start bitwiddling character input. An Ada programmer, like me, would point out that in exchange for that pain, you catch a lot of errors; but Oberon doesn't catch nearly as many errors as it can, and is less portable than it should be, because it doesn't include enumerations and ranges that catch errors and avoid depending on an implementation specific integer type.

This presents Oberon as the perfect language, and doesn't include any concept that it's not, that the design principles may have tradeoffs.