comp.lang.ada
 help / color / mirror / Atom feed
From: walth@netcom.com (Walt Howard)
Subject: Re: I use Eiffel! and other "strange tongues"!
Date: 1997/08/02
Date: 1997-08-02T00:00:00+00:00	[thread overview]
Message-ID: <33e4d7ec.1596193@news.deltanet.com> (raw)
In-Reply-To: 33E1B18E.66B4DEC2@docs.uu.se


On Fri, 01 Aug 1997 11:51:10 +0200, Jakob Engblom
<jakob@docs.uu.se> wrote:

>Jon S Anthony wrote:
>> 
>> In article <Pine.SGI.3.95.970730073454.15333B-100000@shellx.best.com> Brian Rogoff <bpr@shellx.best.com> writes:
>> 
>> > On Wed, 30 Jul 1997, Glenn Williamson wrote:
>> > > ... about Eiffel ...
>> >
>> > > However, In my opinion, it is the perfect language to teach the
>> > > principles of Object-Oriented Programming. While C and C++ may dominate
>> >
	I agree. C++ let's you slide. It's up to the programmer to
discipline himself not to break OOP. It's not good to teach OOP
with C++ because you already have to understand OOP to use C++
correctly.

>> > But what if you think that there is far more to programming than OOP? That
>> > functional, constraint, and logic programming are equally important
>> > "paradigms"?
	
	I think OOP is the terminal paradigm. It is like the wheel.
We're there. We've arrived at the proper way to build software.
We may make some minor adjustments in the future but the paradigm
itself will be our computing core for hundreds, if not thousands
of years. But that's just speculation of course.
 
>> Exactly.  Actually, functional, IMO, is significantly more important
>> than OO.
>> 
>In  my opnion, Eiffel is a wonderful OO language, with a nice syntax and
>some very powerful support for proper Software Engineering built-in.  It
>was designed by people who knew what they were doing, and as a teaching
>language it IS superb, just like PASCAL is a good beginning of
>programming imperative. 
>
>But still OOP is perhaps a paradigm, but I would rather say an
>orthogonal concept to the various calculation models used out there:
>functional, imperative, logical, stackbased, assembler,
>constraint-based.

	Right.

>Another orthogonal concept is parallellism, and its stronger brother
>distribution.

	Distribution is a specialization of OOP, or vice versa, they
are the same thing.

>
>A few examples: 
>  Erlang (www.ericsson.se/erlang) is processbased and functional.
>  Ada 95 is OOP, Imperative and parallel
>  CLOS is functinal and OOP
>  Oz (http://www.sics.se/~seif/oz.html) is functional, logical, OOP, 
>     parallel and distributed
>
>I think that a computer science student should be comfortable
>programming everything from assembly language to PROLOG, and be able to
>add concepts like inheritance, object-orientation, parallelism and data
>hiding across the board. 

	It sure would be nice to have that.

>Teaching PROGRAMMING in C or C++ is ridiculous, as you get bogged down
>in silly details. If you're students need it, they will learn it on
>their own. The job of the university is to teach concepts that will
>last, and not todays high-fashion languages. 

	I agree with you up to this point.

	C and C++ are not high-fashion languages. C has had constant
growth since it's creation. C++ looks to be the spearhead that is
getting OOP accepted universally, despite it's problems. Sending
someone out into the real world knowing Pascal instead of C is
like sending a soldier into a battlefield with a BB Gun while
everyone else has an M16.

	I haven't yet seen anyone put their finger on why C is so
popular. I'd like to put forth a possible reason. 

	C and C++ are exploratory languages. C is really a thin shell
over assembly language. Just enough of a language to be portable
to different processors. It's a good balance between too much
detail (assembly) and too little access to the machine (COBOL).

	It has no built in functions. No one decided that there was a
perfect way to do something and forced the programmer to do it
that way. Each programmer is allowed free reign to come up with
new and unlimited uses of the computer.

	The main instrument which expresses this exploratory nature
of C is pointers.  The concept of Pointers (addresses) and a
Stack are arguably probably the most important concepts in
computer programming. Just about everything extends from them. If
a language doesn't let you manipulate these things directly, you
are cut off from 90% of what programming is about.

	C++ adds a little more, but the only radical departure in my
opinion from C, is virtual functions. And once again, C++
provides the MINIMAL compiler machinery to implement these. You
can implement any other high level language polymorphism concept
with C++ or C, but you can't do the reverse.

	What I'm saying is, you can write a Prolog interpreter, a
Smalltalk interpreter, a Fortan Compiler etc etc etc in C! But
you can't do the reverse. This is because these higher level
languages do not let you do certain things which are part and
parcel of the very woop and warf of computer programming.

	No one man, or committee has had the final word on the best
way to do something. Languages that attempt to enforce someone
else's best way don't succeed in the free market as well as those
that do. I don't know how many of my friends who program in
Visual Basic say, "Some day I'm going to have to rewrite this in
C++". I never hear anyone say, "Someday I'm going to have to
rewrite this in Visual Basic".

	I'd say that C and C++ are the BEST way to teach basic
programming. Once someone understands the basics of the computer,

stacks, addresses, linked lists, trees, but implementing them
himself with a language such as C, then he should graduate up to
being able to ignore the details and use a higher level language.

	C is the simplest language there is to learn. If you leave
out the compiler and talk about only the language, it has less
syntax to learn than basic (don't include the standard library in
the definition of C). But it can be made more complex than
anything else once you get good with it. It spans a large range
of complexity.

	This doesn't mean I think C and C++ are the best languages
for every use, I don't.

	Now, I am actually more in favor of people learning a
valuable skill that will make them a living first, then learning
the details. So, if Visual Basic is in demand, learn that first.

	Walt Howard





  reply	other threads:[~1997-08-02  0:00 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-07-11  0:00 Eiffel anyone? - Who uses it? ivory
1997-07-11  0:00 ` Michael Schuerig
1997-07-11  0:00 ` Mike Stark
1997-07-11  0:00 ` Tom M. Chen
1997-07-11  0:00   ` robinsaj
1997-07-11  0:00 ` Richie Bielak
1997-07-14  0:00   ` Don Harrison
1997-07-11  0:00 ` Wes Groleau
1997-07-12  0:00 ` Ian Nelson
     [not found] ` <33CA5E3D.475B@edwardjones.com>
1997-07-14  0:00   ` Robert Dewar
     [not found]     ` <33CB8E75.7CB1@edwardjones.com>
1997-07-16  0:00       ` Robert Dewar
1997-07-16  0:00 ` Paul Johnson
1997-07-18  0:00   ` Robert Dewar
1997-07-25  0:00     ` Jan Bielawski
1997-07-17  0:00 ` Matthew Heaney
1997-07-17  0:00   ` Walt Howard
1997-07-18  0:00     ` Henrik Wist
     [not found]     ` <33CF6C0E.4983@edwardjones.com>
1997-07-18  0:00       ` Walt Howard
1997-07-18  0:00     ` Technical Professionals and the humnaities ( Was: Re: Eiffel anyone? - Who uses it?) Chris Kuan
1997-07-18  0:00       ` Paul Johnson
1997-07-20  0:00         ` Thaddeus L. Olczyk
1997-07-22  0:00           ` Joseph M. Saur
1997-07-21  0:00   ` Eiffel anyone? - Who uses it? Don Harrison
     [not found]   ` <01bc94e6$9ced0820$287b7b7a@tlo2>
1997-07-19  0:00     ` Frieder Monninger
1997-07-22  0:00     ` Joachim Durchholz
1997-07-30  0:00     ` Glenn Williamson
1997-07-30  0:00       ` Brian Kimball
1997-07-31  0:00         ` Why I didn't like Eiffel Glenn Williamson
1997-08-02  0:00           ` Ian Nelson
1997-07-30  0:00       ` Eiffel anyone? - Who uses it? Brian Rogoff
1997-07-30  0:00         ` Jon S Anthony
1997-08-01  0:00           ` I use Eiffel! and other "strange tongues"! Jakob Engblom
1997-08-02  0:00             ` Walt Howard [this message]
1997-08-02  0:00               ` Ian Nelson
1997-08-02  0:00                 ` Robert Dewar
1997-08-03  0:00                 ` Matt Kennel (Remove 'NOSPAM' to reply)
1997-08-03  0:00                   ` Robert Dewar
1997-08-07  0:00                 ` Andrew Semprebon
1997-08-08  0:00                   ` W. Wesley Groleau x4923
1997-08-08  0:00                     ` Walt Howard
1997-08-11  0:00                       ` Jeff Brown
1997-08-13  0:00                       ` quadrafeline
1997-08-09  0:00                 ` Adam Beneschan
1997-08-04  0:00               ` W. Wesley Groleau x4923
     [not found]                 ` <dewar.870872376@merv>
1997-08-09  0:00                   ` Heribert Slama
     [not found]               ` <5s8bsh$mo0@alumni.rpi.edu>
1997-08-06  0:00                 ` C/C++ is the best teaching language??!? HARRY R. ERWIN
1997-08-08  0:00                 ` Tom Valesky
1997-08-02  0:00           ` Eiffel anyone? - Who uses it? Nick Payne
1997-08-02  0:00             ` Walt Howard
1997-08-02  0:00           ` Sean Case
1997-07-31  0:00       ` Don Harrison
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox