Talk:Oberon (programming language): Difference between revisions

Content deleted Content added
Implementing WP:PIQA (Task 26)
 
(46 intermediate revisions by 21 users not shown)
Line 1:
{{WikiProject banner shell|class=Start|
{{WikiProject Computing |software=y |software-importance=Mid |importance=Low}}
}}
 
==Problems with the current aricle -- long list==
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 original remark must have related to Oberon as an operating system, not to Oberon as a programming language on a foreign OS. In the former case, the function is just loaded into memory once and it could have been used in another program, but also from the command line. AFAIK this was and still is unique. [[User:Jan272|Jan272]] ([[User talk:Jan272|talk]]) 06:12, 4 August 2011 (UTC) Jan Verhoeven
 
Likewise,
 
"The code will be both smaller than that in nearly all other programming languages..."
Line 21 ⟶ 30:
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.
 
: That is more since Ada is more like Modula-2 (Oberon's predecessor) so only the successor to Ada should be compared to Oberon. [[User:Jan272|Jan272]] ([[User talk:Jan272|talk]]) 06:12, 4 August 2011 (UTC) Jan Verhoeven
This presents Oberon as the perfect language, and doesn't include any concept that it's not, that the design principles may have tradeoffs. This is not unique: [[Ada programming language]] doesn't include much discussion about the tradeoffs either, but mentions the features as facts, instead of saying how much better it is than "almost every other language".
 
This presents Oberon as the perfect language, and doesn't include any concept that it's not, that the design principles may have tradeoffs. This is not unique: [[Ada programming language]] doesn't include much discussion about the tradeoffs either, but mentions the features as facts, instead of saying how much better it is than "almost every other language". (comment by user:Prosfilaes, May 2004)
 
== Sure it's enthusiastic. But worrying about POV is not needed. ==
Line 74 ⟶ 85:
 
:: How much object code is produced is completely compiler-dependent. Also, I don't read that and think "object code". I think source code. In any case, before it is put back in in any form, I'd like to see some evidence that it's correct. Even smaller object code doesn't always imply faster code.--[[User:Prosfilaes|Prosfilaes]] 04:33, 6 Oct 2004 (UTC)
 
== Slim Binaries ==
 
Should slim binaries (roughly: dictionary encoded abstract syntax tree of code) get mentioned in the article? See [http://wiki.tcl.tk/Slim+Binaries/] for a little further info on slim binaries.
[[User:Zarutian|Zarutian]] 01:06, 22 june 2005 (UTC)
:Bad link there. The argument seems to be something along these, not so explicit, lines. Snmall binaries have, all other things being equal, have fewer interdependencies and so lower complication and so fewer opportunities for bugs. Well, not intended ones anyway. Which is the general Wirthian point. True, it's possible to have slim binaries which have pathologically interconnected everything, but that's the situation several sigmas out, the unlikely case. After all, not even close to all C programs qualify for the Obfuscated contest.
 
:It's a fair comment to make in WP, though hard to quite explain clearly. With all the refs and such WP tries to insist on. It's a craftsmanlike point, and equally hard to understand. In Pirsig's terms, it's a kind of 'quality'. That took a writer of Pirsig's quality to describe, I don't have such hopes of my own prose... [[User:Ww|ww]] 16:55, 14 July 2006 (UTC)
 
==Proposal to Merge==
 
I've proposed that the '''Oberon-2'' article should be merged into this one. My reasons are --
 
* Oberon-1 was never really much used, and needs only to be mentioned as a historical curiosity
* Oberon-2 is usually called just "Oberon"
* similarly, several articles that ''ought'' to link to Oberon-2 are actually linked to this one
* most of the available documentation and implementations are for Oberon-2
* the features that keep Oberon alive only really began with Oberon-2
 
If you look at the Oberon-2 article, you'll see it's quite short, because once you've discussed Oberon-1, there's not much more to say about it. So, without any negative feelings towards Oberon-1 or -2, I think these two articles should merge; and the Oberon-1 article is larger and better linked into Wikipedia.
 
What do you guys think?
 
[[User:OrangUtanUK|OrangUtanUK]] 13:23, 10 August 2006 (UTC)
 
Makes sense to me. [[User:RainbowCrane|RainbowCrane]] 15:25, 10 August 2006 (UTC)
 
Good suggestion - assuming that it is set up so that anybody looking for information on 'Oberon-2' ends up directly in the right place in Wikipedia. [[User:Chris Burrows|Chris Burrows]] 23:58, 10 August 2006 (UTC)
 
==Requested move==
[[Oberon programming language]] → [[Oberon (programming language)]]
– Conformance with WP naming conventions [[User:Atanamir|atanamir]]
 
See: [[Wikipedia talk:WikiProject Programming languages/Renaming poll]]
 
[[Oberon-1]] → [[Oberon (programming language)]] The first version of Oberon is never referred to as 'Oberon-1', just as 'Oberon' (similarly to Modula and Modula-2). Oberon already exists as a WP entry so Oberon (programming language) is the next best option. This is consistent with other Wikipedia entries for languages that have ambiguous general-usage equivalents (e.g. Lisp). It also helps to distinguish Oberon the programming language from Oberon the operating system [[User:Chris Burrows|Chris Burrows]] ([[User talk:Chris Burrows|talk]]) 02:19, 26 August 2008 (UTC)
 
That's the first time I've ever seen "Oberon-1", and it should go away. Oberon (pl), Oberon-2 (pl), and Oberon (os) should be the names, IMHO, with all three linked directly from the Oberon disabiguity page. [[User:OtterSmith|htom]] ([[User talk:OtterSmith|talk]]) 04:16, 28 August 2008 (UTC)
 
I've been unable to move "Oberon-1" to "Oberon (programming language)" as "Oberon (programming language)" already exists as a redirect page. [[User:Chris Burrows|Chris Burrows]] ([[User talk:Chris Burrows|talk]]) 06:14, 28 August 2008 (UTC)
 
==claim that Oberon is not object oriented ==
A recent edit by Taw included an edit summary noting the article said oberon was not object oriented. As this can be achieved in various ways, including that used by Wirth et al in the design of Oberon, I suggest that this edit is confused as to the underlying facts. And in any case, the article also says plainly the O is object oriented, just not in the C++, Java, or Smalltalk fashion. Comments? [[User:Ww|ww]] 05:22, 20 October 2006 (UTC)
 
:I would say that while Oberon supports the practice of OOP, it also supports Imperative programming. It's a component-orientated language, which gives a lot more expressive freedom to the programmer. If I may go all poetical for a moment, the Copernican revolution in programming was the sudden awareness that algorithms should revolve around data and not data around algorithms - an allusion to the discovery that the earth revolves around the sun. But as modern thinkers we should be aware that in fact the sun and the earth revolve around their common centre of gravity, which turns out to be outside the surface of the sun. Likewise, you can't write a decent large software system without understanding BOTH the data and the algorithms. This is an archetypical Niklaus Wirth view - refer to his ancient book "Algorithms + Data Structures = Programs" (Wirth, 1975, {{ISBN|0-13-022418-9}}). Let us be glad that Oberon is not ONLY an OOP. [[User:OrangUtanUK|OrangUtanUK]] 19:02, 20 October 2006 (UTC)
 
::Oberon-1 wasn't even the slightiest bit object-oriented. In Oberon-2 there's no message passing, not everything is an object (in particular classes are not objects), polymorphism is limited to class hierarchies, and there's no object-based encapsulation. What it really supports is [[abstract data types]] and [[component-oriented]] programming (it is pretty much irrelevant whether it's "better" than oop, it's just not oop). It supports a little OOP, but to call it is too much to call it an "object-oriented programming language". [[User:Taw|Taw]] 17:51, 31 October 2006 (UTC)
 
::: I disagree - certainly as far as Oberon-2 is concerned. According to Hanspeter Mössenböck, the driving force behind Oberon-2, "Type-bound procedures together with type extension make Oberon-2 a true object-oriented language with dynamically-bound messages and strong type checking at compile time." Ref: http://www.statlab.uni-heidelberg.de/projects/oberon/kurs/www/Oberon2.OOP.html I recommend that you argue the case with him if you disagree: his contact details are http://www.ssw.uni-linz.ac.at/General/Staff/HM/. In the meantime, please rectify the changes that you made and discuss before making such changes in future. [[User:Chris Burrows|Chris Burrows]] 23:47, 1 November 2006 (UTC)
 
==Merged Oberon-2 article in==
I merged the Oberon-2 article in, following what looks like consensus and passive acceptance.
Please feel free to vituperate me ... !
[[User:OrangUtanUK|OrangUtanUK]] 18:49, 20 October 2006 (UTC)
 
I think they shouldn't have been merged. The article started with "Oberon is a reflective programming language" (reflection was added in Oberon-2), and then started to mix them randomly. Like here - "The design continued the Wirth tradition/strategy of attempting to simplify without loss of power. Oberon may be thought of as a Modula-2 with full object oriented class/object capabilities". OOP wasn't a design goal of course - it happened (to the extend it even happened, Oberon-2 was more component-oriented than object-oriented) many years later.
 
Maybe an article about both that cleanly separates them would be possible, but it's better to have two articles, than one that mixed things up so much. [[User:Taw|Taw]] 18:01, 31 October 2006 (UTC)
 
:Taw: Please change the name of this page and all Oberon-1 references from Oberon-1 back to Oberon again (I would do it if I knew how). Oberon-1 did not, and does not exist. [[User:Chris Burrows|Chris Burrows]] 00:08, 1 November 2006 (UTC)
::I concur with this request. There is an Oberon Report (for what is here referred to as Oberon-1), but not an Oberon-1 Report. The article is thus in error as to the nomenclature of its subject. An awkward position, that, for a WP article. [[User:Ww|ww]] 00:16, 1 November 2006 (UTC)
:::I have now logged a move request with the administrators for Oberon-1 to be chnaged to Oberon programming language. There are already redirects so I was unable to do it myself.[[User:Chris Burrows|Chris Burrows]] 12:32, 1 November 2006 (UTC)
 
==things HAVE GOTTEN OUT OF HAND!==
 
Noticing the problem (as above) as between Oberon-1 and Oberon-2 and all the merging and renaming and all, user:Mets501 attempted to help us with our confusion. There is now a disambiguation page for Oberon, pointing to the two articles. WP can endure a lot, but surplusage in disambiguation pages is too much.
 
We must delete the disambiguation page, rename the Oberon-1 article to Oberon and, if the merging is complete, delete the Oberon-2 article.
 
Merger folks, where do we stand on the merge...?
 
Ok, folks, let's get going... And, ...let's be careful out there. [[User:Ww|ww]] 03:26, 4 November 2006 (UTC)
 
: The merging work was undone by [[User:taw]]. See the history pages. I'm not particularly concerned whether there is a separate page for Oberon and Oberon-2 (as for Modula and Modula-2), or whether the pages are merged together. But the 'Oberon-1' terminology HAS to go. [[User:Chris Burrows|Chris Burrows]] 22:51, 5 November 2006 (UTC)
 
:: I favour combining the two articles. It was me that merged them - the discussion pages seemed to agree that was the right way to go. [[User:taw]] didn't discuss his un-merging before he went ahead with it. I would like to make the following observations:
:: * Oberon(-1) and Oberon-2 are both known as Oberon. Oberon(-1) is no longer interesting, and needs only a historical footnote.
:: * The example code on the Oberon-1 page is actually Oberon-2.
:: * a reader wishing to understand Oberon-2 would need to refer back to the Oberon-1 page as well.
:: [[User:OrangUtanUK|OrangUtanUK]] 14:53, 7 November 2006 (UTC)
 
==Obliq is from Modula-3, not Oberon==
Obliq is from [[Modula-3]], not Oberon. <small>—Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/24.46.21.229|24.46.21.229]] ([[User talk:24.46.21.229|talk]]) 23:27, 29 September 2007 (UTC)</small><!-- Template:UnsignedIP --> <!--Autosigned by SineBot-->
 
==Merge?==
This has been discussed here and elsewhere, but I'm not sure what came about from the discussion.
Can the Oberon-1 and Oberon-2 pages be merged into just an Oberon page? There wasn't really an "Oberon-1", there was just Oberon, and then Oberon-2, and now Oberon-07. Each of the changes/revisions could just have their own sections.
[[User:Bishopmartin|Bishopmartin]] ([[User talk:Bishopmartin|talk]]) 01:10, 26 August 2008 (UTC)
 
I've logged a move request to rename Oberon-1 back to Oberon (programming language). This is consistent with other Wikipedia entries for languages that have ambiguous general-usage equivalents (e.g. Lisp). It also helps to distinguish Oberon the programming language from Oberon the operating system. [[User:Chris Burrows|Chris Burrows]] ([[User talk:Chris Burrows|talk]]) 02:14, 26 August 2008 (UTC)
 
== Origin of Oberon ==
 
Is it really named after the moon, and not the moon's namesake, the King of Elves?
[[Special:Contributions/88.159.72.252|88.159.72.252]] ([[User talk:88.159.72.252|talk]]) 12:23, 5 March 2010 (UTC)
 
Both. See Page 8 of the Project Oberon book listed in the references. The moons of Uranus and the "king of elfs" are both mentioned.[[User:Chris Burrows|Chris Burrows]] ([[User talk:Chris Burrows|talk]]) 00:11, 6 March 2010 (UTC)
 
: According to prof Wirth, the language is named after the moon. Period. All in all this is a rather silly discussion, started by someone who dislikes anything else than his (or her) own language. [[User:Jan272|Jan272]] ([[User talk:Jan272|talk]]) 06:17, 4 August 2011 (UTC) Jan Verhoeven
 
== Unanswered questions ==
After reading the article through I find myself lacking a lot of elementary information on the language. I don't know what term Oberon uses for functions (proc? function? subroutine?).
I don't know if it has record structures or something comparable. I don't know how its objects differ from those in C++, just that they differ. I don't know whether a language feature must be declared before use, as in Pascal. I don't know whether arrays of different sizes are considered different types, one of the most criticized features of Pascal, and which most other modern languages try to circumvent. I don't know if the language supports JAVA-style interfaces. I don't know what the entry point of the programming is -- a "main" routine as in C? Sample source code would help, but the only sample source code I've seen was on this Talk page, not in the main article. In short, this article needs a lot of work. [[User:CharlesTheBold|CharlesTheBold]] ([[User talk:CharlesTheBold|talk]]) 01:42, 17 June 2012 (UTC)
 
Both procedures and functions that return a result are called procedures.
 
Oberon has record structures. Additionally, unlike Pascal and Modula-2 these are extensible and so variant records are no longer required.
 
Identifiers must be declared before use apart from pointer references.
 
Name-compatibility is used rather than structure-compatibility as in Pascal and Modula-2. However, the dimensionless 'ARRAY OF <type>' can be used to allow arrays of arbitrary size to be passed as procedure parameters.
 
Interfaces are not supported.
 
On a suitably capable operating system (e.g. the Oberon operating system) any parameterless exported procedure may be an entry point - programs are constrained to just one entry point.
 
Note that this is an encyclopedia article not a Language Reference. Refer to the external links for more in-depth information about the language.
[[User:Chris Burrows|Chris Burrows]] ([[User talk:Chris Burrows|talk]]) 11:50, 17 June 2012 (UTC)
==POV==
The article seems to me to have a POV problem. It sounds like a booster of the language wrote it.--[[Special:Contributions/76.169.116.244|76.169.116.244]] ([[User talk:76.169.116.244|talk]]) 03:13, 26 December 2014 (UTC)