Article View: comp.lang.oberon
Article #748A question of languages
From: Eric W. Nikitin
Date: Thu, 08 Feb 1996 17:00
Date: Thu, 08 Feb 1996 17:00
124 lines
6291 bytes
6291 bytes
I asked the following question on comp.lang.modula2: "Why should someone learn Modula-2 rather than one of its 'successors' Oberon(-2) or Modula-3?" The few answers I got weren't surprising and I'm grateful to those who took the time to respond. For the most part the answers fell into the following categories. 1) Scarcity of implementations (or lack of an implementation for a particular platform). 2) Lack of a "Standard" (or that implementations do not conform to the Standard). 3) Language features do not support a particular class of applications - like "real-time" applications. 4) The language itself does not meet all the criteria for a "good" language. I could have asked a similar question on any of the comp.lang newsgroups. I must say I was not surprised by the responses - things were pretty much as I expected. I would also include the following as another reason why a person would choose NOT to learn a particular language. 5) Can't get a job programming in that language. Let me address each of these reasons: Implementations - It is generally true that when a language is first developed, there is a scarcity of compilers/tools for it. Over time, this becomes less of an issue as more compilers/ tools are implemented. This is exactly the case with Oberon(-2) and Modula-3. I am more familiar with Oberon, and I *know* that there are loads of compilers/tools for it. (see "http://www.math.tau.ac.il/~laden/Ob-pkgs.html" ) Standards - this is a valid concern for any language. Even when there are "standards" - it is not always true that all implementations conform to them. Conforming to the "standard" implies portability across platforms/ implementations. One always hopes that the choice of language can be made independently of the platform. For me personally, this is the number one issue when it comes to Oberon(-2). The language itself seems to be fairly solidly standardized across implementations - but there is no standard module library. Application types - It is usually possible for any general purpose programming language to be used in almost any type of application. However, some languages are better suited for some applications than others. Oberon(-2), Modula-2 and Modula-3 are similar enough that I find it difficult to believe that there is any HUGE difference in the difficulty of programming any particular type of application. Each language has it's own "style" of course - but that shouldn't stop you from successfully using any one of them . The example that I often see is "real-time" applications. I have no direct experience in using Oberon for this type of application, but my understanding is that it has been used successfully. (see the previously mentioned website and look for D'nia). Language - Any programming languages has its own strengths and weaknesses. Each has different features. But I think that (modern) Pascal, Object Pascal, Modula-2 & 3, and Oberon(-2) are generally more similar than different. They *at the very least* have the same goals of simplicity, safety, readability, efficiency, and portability. I fail to see how a Modula-2 person can say that Oberon has "inferior notation" when Oberon is so much like it. So what that Oberon doesn't have enumerations or separate definition files - you can say it doesn't have the features you "require" - but it's notation isn't any worse than Modula-2's. Jobs - If all I was worried about was getting a job, then I'd stick to C, C++, Java, Visual Basic... and maybe some 4GLs or database languages. I'm sure if I tried hard enough... I would be able to come up with some nice things to say about each of these. But I *firmly* believe that the Algol family of languages are better for not only teaching good programming and software engineering techniques - but also better for developing real world software systems. Now, the only problem is convincing the rest of the world... It is not my purpose to say that a particular language in the Algol family is better than any of the others. However, I am concerned that no one language has seemed to gain any "dominance" over the others. The Modula-2 people still believe Modula-2 is better than Oberon. The Oberon people still believe that Oberon is better than Modula-3. All three of those groups think Ada is too complicated. Meanwhile, major C++ vendors are committing to support Java. The members of the Algol family "fight amongst themselves" while the Java folks dance in the endzone. There are certainly very good reasons to learn more than one programming language. But it is absolutely impossible to learn them all. Programmers should have a variety of tools at their disposal. But again... how can you learn them all? People want to learn C++ so they can get jobs... universities are bowing down to this pressure and teaching C/C++ as a *first* language. They are turning into trade schools. Why aren't Algol family languages chosen for programming projects? Hell... the Algol family themselves can't decide which among them is "best", how can they expect anyone else to decide? I wonder how many good programmers we have lost because they were taught C++ first; and weren't able to see that the problem wasn't that they couldn't understand programming - but that they couldn't understand C++. Is there no way to reconcile the Algol family? As it is, my current choices are either pick my favorite Algol family language - which happens to be Oberon-2 at the moment - OR give in to the pressure and learn Java. I suppose I could compromise and learn Delphi (Object Pascal has GOT to be better than Object Basic)... I'm sure I could get a job doing that (at least for a while). Happy programming, Eric
Technical Details
Message-ID:
<4fda7q$gk6@wariat.wariat.org>Path:
arc1-ca.pugleaf.net!junior.wariat.org!enikitinShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!junior.wariat.org!enikitin From: enikitin@junior.wariat.org (Eric W. Nikitin) Newsgroups: comp.lang.oberon,comp.lang.modula2,comp.lang.modula3,comp.lang.ada,comp.lang.pascal.misc Subject: A question of languages Date: 8 Feb 1996 17:00:42 GMT Organization: Akademia Pana Kleksa, Public Access Uni* Site Message-ID: <4fda7q$gk6@wariat.wariat.org> NNTP-Posting-Host: junior.wariat.org X-Newsreader: TIN [version 1.2 PL2]