[comp.sys.amiga] Language Wars

mwm@eris.BERKELEY.EDU (Mike (My watch has windows) Meyer) (04/20/87)

In article <672@puff.WISC.EDU> upl@puff.WISC.EDU (Future Unix Gurus)
writes about Modula 2:
>I still recommend it to anybody who, like me, knows and despises C !

Well, I know and despise C, and I don't recommend switching Modula 2,
because I despise it even more. Unless what you despise about C are
the umpteen syntactic quirks, and ambiguities in the language
definition (C: What it lacks in readability, it makes up for with
ambiguity!), there's not much point in switching.

Once you get past those (to a distance of about 4 feet :-), the two
languages are identical, and suffer the same problems:

	1) Typing is broken. In different ways, though.
	2) Dynamic data structure extension isn't transparent.
	3) Functions are second-class citizens.
	4) Types are (at best) third-class citizens.
	5) The languages aren't self-extensible.

Many of these faults can be forgiven, if a language suffers from only
a couple. But _all_ of them are deadly. They combine to make it
painfull to go from an algorithm in my head to a running version. And
that's what a language is supposed to be for.

Like going out a buying a copy of Manx, there aren't enough different
languages to choose from. And in this case, the differences are to
small to make the change seem worthwhile. Especially since you really
need a C compiler to deal with most of the PD software.

	<mike

--
Here's a song about absolutely nothing.			Mike Meyer        
It's not about me, not about anyone else,		ucbvax!mwm        
Not about love, not about being young.			mwm@berkeley.edu  
Not about anything else, either.			mwm@ucbjade.BITNET

ma183say@sdcc3.ucsd.EDU (Lee Fountain) (04/20/87)

In article <3222@jade.BERKELEY.EDU> mwm@eris.BERKELEY.EDU (Mike (My watch has windows) Meyer) writes:
>In article <672@puff.WISC.EDU> upl@puff.WISC.EDU (Future Unix Gurus)
>writes about Modula 2:
>>I still recommend it to anybody who, like me, knows and despises C !
>
>Well, I know and despise C, and I don't recommend switching Modula 2,
>because I despise it even more. Unless what you despise about C are
>the umpteen syntactic quirks, and ambiguities in the language
>definition (C: What it lacks in readability, it makes up for with
>ambiguity!), there's not much point in switching.
>
>Once you get past those (to a distance of about 4 feet :-), the two
>languages are identical, and suffer the same problems:
>
>	1) Typing is broken. In different ways, though.

  Identical? Ha! (excuse me while I finish laughing).  Modula-2 is a
  strongly-typed language compared to C, which has implicit type
  transfer by the compiler.  Modula-2 does not have a preprocessor
  (which I think is neat) as does C. 
  From this chart I am looking at, C's language definition was
  released in ~1974, while Modula-2's was released in ~1980, so M2
  is the newer of the two.  The advantage to M2 is the Module
  construct.  It allows for data hiding and abstraction better than
  any other current method (except for Ada's Package, but who wants
  to discuss Ada?).  Now, we do have the C++ Class construct,
  borrowed from a 1967 language called Simula-67, which does allow a
  level of hiding (Hidden) and abstraction (Protected), and lends
  itself well to Object-Oriented programming.  But neither have we
  C++ nor Ada for the Amiga, so whatever suits your needs, suit it.

>Many of these faults can be forgiven, if a language suffers from only
>a couple. But _all_ of them are deadly. They combine to make it
>painfull to go from an algorithm in my head to a running version. And
>that's what a language is supposed to be for.

  It really annoys me to see such generic statements, please qualify
  your arguments in the future 8^&. 

>Like going out a buying a copy of Manx, there aren't enough different
>languages to choose from. And in this case, the differences are to
>small to make the change seem worthwhile. Especially since you really
>need a C compiler to deal with most of the PD software.
>
>	<mike
>
  Again, C or Modula-2, you're still going to have to learn C if you
  are to program on the Amiga.
  (uh, yeah, but what about Lisp?  Well son, that's another story,
  now go to bed.)

  John
  7OHN

mwm@eris.BERKELEY.EDU (Mike (My watch has windows) Meyer) (04/21/87)

In article <3865@sdcc3.ucsd.EDU> ma183say@sdcc3.ucsd.edu.UUCP (Lee Fountain) writes:
>  Identical? Ha! (excuse me while I finish laughing).  Modula-2 is a

Huh? Read what I said, not what you wish I'd said:

>>Once you get past those (to a distance of about 4 feet :-), the two
>>languages are identical, and suffer the same problems:
>>
>>	1) Typing is broken. In different ways, though.

From a _distance_, the languages are identical. I even pointed out
that the Modula ][ and C typing are broken in different ways.

>  From this chart I am looking at, C's language definition was
>  released in ~1974, while Modula-2's was released in ~1980, so M2
>  is the newer of the two. 

Corret; roughly. C is older than that (you're using K&R, right?),
though.

>  The advantage to M2 is the Module
>  construct.  It allows for data hiding and abstraction better than
>  any other current method (except for Ada's Package, but who wants
>  to discuss Ada?).

Uh, CLU clusters are better. So is CLU typing, for that matter. Almost
anything that support inheritance (LOOPS, Flavors, Smalltalk,
Simula-67, C++, etc) is better than the Modula modules.

Of course, if you want, I'll show you how to write C to get most of
the benefits of Modula modules.

>  Now, we do have the C++ Class construct,
>  borrowed from a 1967 language called Simula-67, which does allow a

Simula-67 was almost certainly the original inspiration for the Modula
module, also. Filtered through Xerox PARC and the languages they use
there, of course.

>  itself well to Object-Oriented programming.  But neither have we
>  C++ nor Ada for the Amiga, so whatever suits your needs, suit it.

You want C++ for the Amiga? It can be arranged.

>>Many of these faults can be forgiven, if a language suffers from only
>>a couple. But _all_ of them are deadly. They combine to make it
>>painfull to go from an algorithm in my head to a running version. And
>>that's what a language is supposed to be for.
>
>  It really annoys me to see such generic statements, please qualify
>  your arguments in the future 8^&. 

Ok, how about this:

I have to worry about the details of extending a dynamic data
structure, and usually make sure the memory it's using gets put back
in the free pool later. I have no way of writing control constructs
that reflect what I'm thinking, as opposed to what the machine is
doing (check out the CLU "iterators". Neat things). Even after all
that, the syntax for using new types is kludgy in both languages - it
all looks like function invocations, even if the logical operation
is something that the language has an operator for.

>  Again, C or Modula-2, you're still going to have to learn C if you
>  are to program on the Amiga.

No, _you_ may have to learn C to program the Amiga. I had to learn C
before the 32-bit super-mini's were being sold, I have no reason to
relearn it.

>  (uh, yeah, but what about Lisp?  Well son, that's another story,
>  now go to bed.)

Damn straight, that's another story. LISP has some problems, but it
also gives you the tools to solve them. We talked about this before;
and I decided not to buy the MetaComCo LISP when I found out they were
abandoning their US offices.

	<mike

P.S. - You laughing out the other side of your face yet?
--
Here's a song about absolutely nothing.			Mike Meyer        
It's not about me, not about anyone else,		ucbvax!mwm        
Not about love, not about being young.			mwm@berkeley.edu  
Not about anything else, either.			mwm@ucbjade.BITNET

hatcher@INGRES.BERKELEY.EDU (Doug Merritt) (04/21/87)

In article <3865@sdcc3.ucsd.EDU> ma183say@sdcc3.ucsd.edu.UUCP (Lee Fountain) writes:
In article <3222@jade.BERKELEY.EDU> mwm@eris.BERKELEY.EDU (Mike (My watch has windows) Meyer) writes:
>>Once you get past those (to a distance of about 4 feet :-), the two
>>languages are identical, and suffer the same problems:
>
>  Identical? Ha! (excuse me while I finish laughing).  Modula-2 is a
>  strongly-typed language compared to C, which has implicit type
>  transfer by the compiler.  Modula-2 does not have a preprocessor

Mike is speaking from an abstract point of view. You do not appear to
understand the difference between that and a worms-eye view of a language.
The kind of differences that you point out are pretty obvious, for one
thing, and for another, they are at the level where *all* languages are
different. Thus you trivialize Mike's comments, which actually were
quite valid whether you agree with the editorial side of them or not.

To an average programmer, every language and dialect is importantly
different than all others.

To a language designer, most languages look more similar than different,
because he considers more abstract issues. For example, although Modula-2
is more strongly typed than C, the really important issue is that neither
language allows you to manipulate types as conveniently as you can data.
This is a horrible inconsistency from a highly abstract point of view.

For pragmatic reasons, C and Modula-2 can both be good languages to
implement things in. For theoretical reasons, languages like Smalltalk
and FP are much cleaner.
	Doug Merritt	ucbvax!ingres!hatcher

mwm@eris.UUCP (04/21/87)

In article <8704210744.AA10632@ingres.Berkeley.EDU> hatcher@INGRES.BERKELEY.EDU (Doug Merritt) writes:
>To an average programmer, every language and dialect is importantly
>different than all others.

True. And to a good programmer, those differences are what determines
which one gets used for what jobs.

>To a language designer, most languages look more similar than different,
>because he considers more abstract issues.

Thanx for the words of support, Doug. But I'd like to point out that
the problems I mentioned are things I see as a programmer, not as
"language designer." Never tried GP language design, and probably
won't for a long while. There are still to many language I haven't had
a chance to play with (for instance, anyone got an Occam for the
Amiga? :-). 

>For pragmatic reasons, C and Modula-2 can both be good languages to
>implement things in. For theoretical reasons, languages like Smalltalk
>and FP are much cleaner.

FP is kinda clunky; even major functional programming fans admit that
you need some way to model the passage of time. On the other hand,
smalltalk is slick, and gives one of the three "good" typing models
(any object that supports what we wanna do is of the correct type).

As an example, there's a v8 tool called "mc". It reads in a file
(usually stdin), finds the widest line, and then outputs the result in
a multi-columned format, each column being wide enough to hold the
widest line. I did a version in C, just to play with it.

I then rewrote it in CLU (CLU is to modula/ada/euclid as C is to
pascal/algol/fortran :-). The only real change was to put in the set
of arguments that playing with the first version had indicated were
usefull, and tweaks to the algorithm for handling them. The CLU
version was notably shorter and easier to read. The resulting binary
ran faster, and was more robust.

Now CLU is a language I could see laying out a couple of hundred
dollars for, over and above C. Anyone got one they want to sell?

	<mike
--
Here's a song about absolutely nothing.			Mike Meyer        
It's not about me, not about anyone else,		ucbvax!mwm        
Not about love, not about being young.			mwm@berkeley.edu  
Not about anything else, either.			mwm@ucbjade.BITNET

ma183say@sdcc3.ucsd.EDU (Lee Fountain) (04/21/87)

>Mike is speaking from an abstract point of view. You do not appear to
>understand the difference between that and a worms-eye view of a language.

(*Picture->SteveMartin)WellExcuuuuuuuseMe, but I think I do.  Not
*ABSTRACT* but *GENERIC*.  You see, anyone can claim that a shallow
generalistic statement that does not really say anything one way or
the other is *ABSTRACT*! HA! What a >lame<, passive excuse.  Clearly
when this approach is used, qualification of the facts is not
necessary.  I have written interpreters (compilers->TimeHaveINot)
and completely understand how one could *say* that the worms-eye
view of two languages are similar, but f_cking-A, the machines
are all the *same* at the core level, so this line of reasoning is
total b_ullshit. (please excuse my French).
  The point was the *ABILITY* or method used to achieved possibly
same ends (C/M2), but h_ll, you could say that driving from Ca to
New York is the same in a VW or a Porsche. (I, for one, would rather
the Porsche).  But the point is, if someone is more comfortable and
productive using a particular method, then they should use that
method. (C/M2).

>The kind of differences that you point out are pretty obvious, for one
>thing, and for another, they are at the level where *all* languages are
>different. Thus you trivialize Mike's comments, which actually were
>quite valid whether you agree with the editorial side of them or not.

  If the points are so obvious, then why must you *point out* that
fact!  As per my above, Mike's comments are not useful, nor
persuasive, and thus not productive.  Recuerda, por favor, that the
*WHOLE* ideology of these interplays has been in *USAGE*, not theory
(but Mike statements would not support *any* theory...).

  Don't be such an idiot in defending something that you don't
  wholistically understand.  I, for one, am getting sick and tired
  of people who *think* that they see flaws in one thing or another,
  and go on rambling how they are so right, blah blah blah.
  Clarify, don't exemplify with rubbish. (Although this letter is
  pretty heated, the message is intrinsic).
>
>To an average programmer, every language and dialect is importantly
>different than all others.

  Oh, so I am an average programmer? Why thank you for the deaming,
  *GOD*!
>
>To a language designer, most languages look more similar than different,
>because he considers more abstract issues. For example, although Modula-2
>is more strongly typed than C, the really important issue is that neither
>language allows you to manipulate types as conveniently as you can data.
>This is a horrible inconsistency from a highly abstract point of view.
>
>For pragmatic reasons, C and Modula-2 can both be good languages to
>implement things in. For theoretical reasons, languages like Smalltalk
>and FP are much cleaner.
>	Doug Merritt	ucbvax!ingres!hatcher

  Sh_t! FP? Who the h_ll uses FP? Backus' dusty old language is of
  use in the classroom,(you sound like a comp-prog instructer
  idealist), but not in the real world. (*Picture->SamKinnisen: 
  That is were we *live* you big f_cking idiot).  Currently, I don't
  know anyone who lives in AbstractoLand.(But I'll keep my eyes
  peeled).

  Golly gosh darn, Lisp can be totally functional, but the option is
  up to the programmer.  Shoot, Lisp is about the best thing since
  sliced air.  Smalltalk? Ni.  If I wanted Smalltalk, I'd implement
  it in Lisp.

  Well Doug, I don't know what your Merritts are, but you must be
  one hell of a pragmatic theoretical theoretician language designer
  theorist.  

  Gosh, thanks for pointing out so sharply my shallow, simplistic
  thinking, and for God's sake, for not getting caught up in what
  really matters. 


  Sorry about the afterburners, grandma, but they got me *so* riled.

  I have but one thing to say about all of this:

  Pshhhhaw

  John
  7OHN

ma183say@sdcc3.ucsd.EDU (Lee Fountain) (04/21/87)

Hey Mike, earlier rebuttal (about you)was not totally serious (but to the person
that rubutted my rebuttal to your rebuttal to my rebuttal). Which
brings us back to the *original* issue:

  Programming on the Amiga: To C or not to C, Modula-2 or C.

  That is all, not: Theory Wars.

  I am weary of theory and circumlocution of issues.


  Not I will to any more of this line anyone respond...

  I case my rest.


  John
  7OHN

d@alice.UUCP (04/22/87)

In an article ma183say@sdcc3.ucsd.edu.UUCP flames:
>view of two languages are similar, but f_cking-A, the machines
>are all the *same* at the core level, so this line of reasoning is
>total b_ullshit. (please excuse my French).
 [etc., etc., etc.]
> Thanks for pointing out my shallow, simplistic thinking....
 [etc., etc., etc.]
>  John

With all due respect, I think that 84 lines of stuff like this 
would have been better suited to be in the form of mail,
not a net post.

It wasn't exactly of general interest.

-- 
# Daniel Rosenberg (CE) AT&T Bell Labs, Murray Hill
# disclaimer: These opinions are necessarily mine, not my employer's.     
# UUCP: {ihnp4 || research || allegra}!alice!d  AT&T: 201/582-6455 (work)
# INTERNET: d%alice%btl@csnet-relay or d@alice.att.com

jrusso@topaz.UUCP (04/23/87)

Newsgroups: comp.sys.amiga
Subject: Re: Language Wars
Summary: 
Expires: 
References: <8704210744.AA10632@ingres.Berkeley.EDU> <3868@sdcc3.ucsd.EDU>
Sender: 
Reply-To: jrusso@topaz.rutgers.edu (Jim Russo star@gold)
Followup-To: 
Distribution: 
Organization: Rutgers Univ., New Brunswick, N.J.
Keywords: 

In article <3868@sdcc3.ucsd.EDU> ma183say@sdcc3.ucsd.edu.UUCP (Lee Fountain) writes:
>>Mike is speaking from an abstract point of view. You do not appear to
>>understand the difference between that and a worms-eye view of a language.
>
>(*Picture->SteveMartin)WellExcuuuuuuuseMe, but I think I do.  Not
>*ABSTRACT* but *GENERIC*.  You see, anyone can claim that a shallow
>generalistic statement that does not really say anything one way or
>the other is *ABSTRACT*! HA! What a >lame<, passive excuse.  Clearly
>when this approach is used, qualification of the facts is not
>necessary.
  Sorry, but your coming off like a real idiot: The point that these
people are trying to make is that on the simplest level, Modula-2
code and C code are damn near 90% identical with one word substituted
for another- They represent NO difference in programming psychology-
Smalltalk and C++ ( two examples that were mentioned) are a VERY different
approach to programming- a well written Smalltalk program and a well written
C programming have very little in common- a C program and a Modula program
are extremely similar- Modula is a bit more Modular, but to implement
modules in C is almost trivial. And as far as HOW the code of the
modules and procedures is written, they are almost identical. A "better"
language from the standpoint Mike is backing is totally different, with
the language itself tailoring itself to the application.

>  The point was the *ABILITY* or method used to achieved possibly
>same ends (C/M2), but h_ll, you could say that driving from Ca to
>New York is the same in a VW or a Porsche. (I, for one, would rather
>the Porsche).  
 And if you could take a learjet ( a totally different approach to
travel) that would be preferable to driving 3000 miles in a porsche, and
a LOT less tiring.
>>The kind of differences that you point out are pretty obvious, for one
>>thing, and for another, they are at the level where *all* languages are
>>different. Thus you trivialize Mike's comments, which actually were
>>quite valid whether you agree with the editorial side of them or not.
>
>  If the points are so obvious, then why must you *point out* that
>fact!  
>Recuerda, por favor, that the
>*WHOLE* ideology of these interplays has been in *USAGE*, not theory
>(but Mike statements would not support *any* theory...).
Lets not be insulting here.. state your point and dont insult his point
when it was more well made than yours.
   And the points were obvious, if you had studied anything about
different programming methods. You speak from the viewpoint of someone
who has used nothing but strictly procedural languages, and nothing
else. You dont seem to know what a different TYPE of language is.
Try comparing Modula to prolog. They come from fundamentaly different
ideas of how to program; and if you try to compare them merely as two
procedural languages, prolog will semm horrible, when actually for
certain applications, its FANTASTIC.
>
>  Don't be such an idiot in defending something that you don't
>  wholistically understand.  I, for one, am getting sick and tired
>  of people who *think* that they see flaws in one thing or another,
>  and go on rambling how they are so right, blah blah blah.
>  Clarify, don't exemplify with rubbish.
>>To an average programmer, every language and dialect is importantly
>>different than all others.
>>To a language designer, most languages look more similar than different,
>>because he considers more abstract issues. For example, although Modula-2
>>is more strongly typed than C, the really important issue is that neither
>>language allows you to manipulate types as conveniently as you can data.
>>This is a horrible inconsistency from a highly abstract point of view.
>>
>>For pragmatic reasons, C and Modula-2 can both be good languages to
>>implement things in. For theoretical reasons, languages like Smalltalk
>>and FP are much cleaner.
>>	Doug Merritt	ucbvax!ingres!hatcher
>
>  Sh_t! FP? Who the h_ll uses FP? Backus' dusty old language is of
   Dont be such an ass. I dont know FP, but it MAY be great, if youd
just open your eyes to the possibility of something being DIFFERENT.

>  Golly gosh darn, Lisp can be totally functional, but the option is
>  up to the programmer.  Shoot, Lisp is about the best thing since
>  sliced air.  Smalltalk? Ni.  If I wanted Smalltalk, I'd implement
>  it in Lisp.
  And the option to use something totally beyond your beloved modula2
shouldnt be denied as foolish. Instead of making fun of those guys,
why dont you try listening them without acting as if an attack on C
or Modula-2 was an attack on your own personal ego. They are making
a VERY valid, significant point if only youd open your mind enough
to consider that there are things beyond Niklaus Wirths languages.

>  Gosh, thanks for pointing out so sharply my shallow, simplistic
>  thinking, and for God's sake, for not getting caught up in what
>  really matters. 
  Your are thinking very simplistically! And their points DID matter!
>  John
               Mark C. Carroll

By the way, anyone know where I can find C++ for the Amiga?
Reply to: ...!rutgers!carroll@aim.rutgers.edu

  Crossposted by Jim Russo, since Marks Unirot is down.

ugpete@sunybcs.UUCP (04/24/87)

Newsgroups: comp.sys.amiga
Subject: Re: Language Wars
References: <8704210744.AA10632@ingres.Berkeley.EDU> <3868@sdcc3.ucsd.EDU>
Reply-To: ugpete@joey.UUCP (Peter Theobald)
Organization: SUNY/Buffalo Computer Science

..
The following are small pieces of a pretty abusive article:
>(*Picture->SteveMartin)WellExcuuuuuuuseMe, but I think I do.  Not

>the other is *ABSTRACT*! HA! What a >lame<, passive excuse.  Clearly
>view of two languages are similar, but f_cking-A, the machines
>are all the *same* at the core level, so this line of reasoning is
>total b_ullshit. (please excuse my French).

>  dont be such an idiot in defending something that you don't
>  wholistically understand.  I, for one, am getting sick and tired
>  of people who *think* that they see flaws in one thing or another,
>  and go on rambling how they are so right, blah blah blah.
>  Clarify, don't exemplify with rubbish. (Although this letter is
>  pretty heated, the message is intrinsic).
>  Oh, so I am an average programmer? Why thank you for the deaming,
>  *GOD*!

>  Sh_t! FP? Who the h_ll uses FP? Backus' dusty old language is of
>  use in the classroom,(you sound like a comp-prog instructer
>  idealist), but not in the real world. (*Picture->SamKinnisen: 

>  That is were we *live* you big f_cking idiot).  Currently, I don't
>  know anyone who lives in AbstractoLand.(But I'll keep my eyes
>  peeled).

>  Well Doug, I don't know what your Merritts are, but you must be
>  one hell of a pragmatic theoretical theoretician language designer
>  theorist.  

>  Gosh, thanks for pointing out so sharply my shallow, simplistic
>  thinking, and for God's sake, for not getting caught up in what
>  really matters. 

>  John
>  7OHN

John, you really ought to calm down; Maybe take a vacation, or at
least some valiums. Don't get so uptight about which language you
use.
	-a pragmatic theoretical theoretician language designer theorist.



			Peter Theobald

SUNY/Buffalo Computer Science
csnet:	ugpete@buffalo.CSNET
uucp:	..!{nike|watmath,alegra,decvax}!sunybcs!ugpete
BITNET:	ugpete@sunybcs.BITNET

ma183sef@sdcc3.ucsd.EDU (Carlos Vedovato) (04/29/87)

>John, you really ought to calm down; Maybe take a vacation, or at
>least some valiums. Don't get so uptight about which language you
>use.
>	-a pragmatic theoretical theoretician language designer theorist.
>
>			Peter Theobald

  Sorry, I overdosed on Jolt Cola, speed, and twinkies.  (The haters
  will *love* that)....8^), 8^), 8^), all along, ok?.
  .
  .
  .
  .
  .
  John
  7OHN