🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.oberon
Article #748

A question of languages

#748
From: Eric W. Nikitin
Date: Thu, 08 Feb 1996 17:00
124 lines
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!enikitin

Show 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]