comp.lang.ada
 help / color / mirror / Atom feed
* Why is Ada NOT a good choice for a beginner to programming?
@ 2002-12-21  3:30 David Wright
  2002-12-21  5:44 ` sk
                   ` (13 more replies)
  0 siblings, 14 replies; 109+ messages in thread
From: David Wright @ 2002-12-21  3:30 UTC (permalink / raw)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 2576 bytes --]

Hello from DownUnder...

I would appreciate some general advice from experienced Ada programmers,
particularly (but not only) those using it as a teaching vehicle for
Computer Science courses etc.

As a young adult investigating learning programming as a hobby
(self-teaching on PC, Windows 98), I�ve been lurking for a while and have
looked at some relevant Ada sites. My purpose is to gradually and thoroughly
learn  computing constructs and ultimately to apply same and see how far I
can take this interest. I'm not making a career of it... well not yet
anyway.

To this end, I obviously need to commit to a particular language programming
environment (not necessarily a GUI development interface); yet there seem to
be several hurdles to even this crucial initial step.  It seems that there
are three essential threshold requirements, namely:

1) A free (preferably) downloadable programming environment that is installs
without fuss and instability
2) Good online and hardcopy support (tutorials and textbooks) for a BEGINNER
PROGRAMMER per se, not just beginners with that LANGUAGE
3) An online community that has a tradition of supporting such beginners to
programming.

BASIC and PASCAL very!! clearly fulfill these criteria and I am tempted to
start with one of them. However the posts of Richard Riehle and others on
this and other newsgroups speak so highly of Ada�s functionality and syntax
clarity that it�s hard to overlook this as a possibility.

On the other hand, and with the best will in the world, I can�t see that Ada
satisfies ANY of the three criteria above, though I am willing/wanting to be
convinced otherwise.

Specific Questions:
1) Am I not giving Ada sufficient credit for being a suitable entry-level
language for a BEGINNING PROGRAMMER?

2) Would you recommend that I immerse myself in either BASIC (QBasic) or
PASCAL (Borland TP7) for a couple of years (yes, OK... forget BASIC ;D) and
THEN springboard to Ada?

3) If you were to opt for Ada as an entry point, which particular dialect or
environment would be the most user friendly from a set up and
�learning-the-fundamentals� point of view. Since I have a choice, I�d like
an Ada encounter that is a FUN experience, rather than marred by
gratuitious, buggy FRUSTRATION (which is why I'm not keen on beginning with
C, C++ or Java, even though others do).

Please accept that I am not trying to offend anyone; it�s just that this
initial phase is somewhat forbidding to a neophyte and I need to be a
critical, hype-detecting, cynic ;D.

Many thanks in advance.

David.








^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-21  3:30 Why is Ada NOT a good choice for a beginner to programming? David Wright
@ 2002-12-21  5:44 ` sk
  2002-12-23 14:29   ` Wes Groleau
  2002-12-21  8:39 ` arvids lemchens
                   ` (12 subsequent siblings)
  13 siblings, 1 reply; 109+ messages in thread
From: sk @ 2002-12-21  5:44 UTC (permalink / raw)


Hi,

Since the topic is "... NOT a good choice ...", here is a
primary reason not to choose Ada, it is antisocial.

You will alienate yourself from your colleagues because, whilst
they are pulling their hair out, getting ulcers and generally
shortening their lives by debugging at 2AM, you will be at home
with several hours of sleep already completed. This is not a
good position to be in, it causes resentment. Do not choose
Ada as your programming language if you wish to gain the
respect of your (prematurely old) peers.

 > 3) ... dialect ...

Other than experimental efforts and what ifs, there is only Ada,
no dialects. The vendor provided auxilary libraries are about
the only variations, but not to the language itself.

Since you profess to being a beginner and you are working
with Win'98, I would play with the supplied (I think) QBasic
to get a feel for programming.

Once you have a better feel for what you would like to try,
learned the limitations and strengths of Basic, choose a
language most suitable for your goals based on its strength
and weaknesses.

That said, Win'98, an MS-DOS window (set at 80x52) and your
favorite editor and GNAT installed is all you need. Also
the RR Software line is targeted for Wintel platforms and
you might look at it.

-- 
--
-- Merge vertically for real address
--
------------------------------------
-- s n p @ t . o
--  k i e k c c m
------------------------------------




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-21  3:30 Why is Ada NOT a good choice for a beginner to programming? David Wright
  2002-12-21  5:44 ` sk
@ 2002-12-21  8:39 ` arvids lemchens
  2002-12-21  8:53 ` Gautier
                   ` (11 subsequent siblings)
  13 siblings, 0 replies; 109+ messages in thread
From: arvids lemchens @ 2002-12-21  8:39 UTC (permalink / raw)


Hi David,

davidw@uq.net.au am 21.12.02 um 13:30 in comp.lang.ada:
> 1) A free (preferably) downloadable programming environment that is installs
> without fuss and instability

GNAT, ...

Take a look at:

http://www.ada95.ch/compiler/compiler.html

> 2) Good online and hardcopy support (tutorials and textbooks) for a BEGINNER
> PROGRAMMER per se, not just beginners with that LANGUAGE

There are plenty of Ada-tutorials on the web at different
difficultylevels. Try google.

Also there are books, real Paper, for real Beginners.

e.g.:

"Ada 95 Problem Solving and Program Design" Feldman/Koffman
ISBN: 0-201-36123-X

"Ada 95 From the Beginning" Skansholm
ISBN: 0-201-40376-5

and may be some others I don't know of.

Try google and/or amazon.

> 3) An online community that has a tradition of supporting such beginners to
> programming.

May be, comp.lang.ada?

> Specific Questions:
> 1) Am I not giving Ada sufficient credit for being a suitable entry-level
> language for a BEGINNING PROGRAMMER?

Yes.

> 2) Would you recommend that I immerse myself in either BASIC (QBasic) or
> PASCAL (Borland TP7) for a couple of years (yes, OK... forget BASIC ;D) and
> THEN springboard to Ada?

No, Ada should be ok, as in the beginning you do not need to use all
features but can start with a subset of the possibilities..

MvfG,

Arvids




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-21  3:30 Why is Ada NOT a good choice for a beginner to programming? David Wright
  2002-12-21  5:44 ` sk
  2002-12-21  8:39 ` arvids lemchens
@ 2002-12-21  8:53 ` Gautier
  2002-12-21  9:42 ` Craig Carey
                   ` (10 subsequent siblings)
  13 siblings, 0 replies; 109+ messages in thread
From: Gautier @ 2002-12-21  8:53 UTC (permalink / raw)


David Wright:

> 1) A free (preferably) downloadable programming environment that is installs
> without fuss and instability

Download GNAT and AdaGIDE, install them (clicking Yes and OK several times)
and it works.
  http://libre.act-europe.fr/GNAT/
  http://www.usafa.af.mil/dfcs/bios/mcc_html/adagide.html

> 2) Good online and hardcopy support (tutorials and textbooks) for a BEGINNER
> PROGRAMMER per se, not just beginners with that LANGUAGE

The Briefest Introduction to Ada
  http://cs.nyu.edu/courses/fall98/G22.2130-001/adaintro.html
Quick Ada tutorial
  http://goanna.cs.rmit.edu.au/~dale/ada/aln.html
Lovelace
  http://www.adahome.com/Tutorials/Lovelace/lovelace.html

Books: http://www.AdaPower.com/

> 3) An online community that has a tradition of supporting such beginners to
> programming.

:-)

If you have TP7 under hand it is a very good start for a few months.
But:
  - AdaGIDE is now globally an much easier environment than TP7
  - some of the Borland extensions to Pascal are very unhappy,
    don't get trapped in that dialect; on the other hand Ada has
    certainly the lowest dialect problematic among the language fauna.

HTH
________________________________________________________
Gautier  --  http://www.mysunrise.ch/users/gdm/gsoft.htm

NB: For a direct answer, e-mail address on the Web site!



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-21  3:30 Why is Ada NOT a good choice for a beginner to programming? David Wright
                   ` (2 preceding siblings ...)
  2002-12-21  8:53 ` Gautier
@ 2002-12-21  9:42 ` Craig Carey
  2002-12-21 10:44 ` Dale Stanbrough
                   ` (9 subsequent siblings)
  13 siblings, 0 replies; 109+ messages in thread
From: Craig Carey @ 2002-12-21  9:42 UTC (permalink / raw)




The message (Mr Wirght's) is unclear on how Pascal is better.

The language Pascal was given as an alternative. If a person used Pascal then
the program could later be ported over to Ada 95 using NewP2Ada, that is
available from here:

NewP2Ada: http://www.mysunrise.ch/users/gdm/gsoft.htm#p2ada

NewP2Ada got substantially improved in the last week. The program is based on
ayacc (an Ada Yacc) and now it can very effectively port the bodies of Pascal
programs out to Ada 95. I just ported 342 spec+body files of German software,
from Modula 2/3 out to Ada 95. That led to enhancements being made to NewP2Ada.

The message I reply to, seems to not specifically say what is wrong with Ada 95.

The webpage sports a nice pithy [terse and full of meaning or substance]
description of what coding in Ada 95 is really able to be like:

|   Ada: An army-green Mercedes-Benz staff car. Power steering, power brakes,
|   and automatic transmission are standard. No other colors or options are
|   available. If it's good enough for generals, it's good enough for you.

    From:  http://www.workjoke.com/projoke20.htm  ; More:

|   Java: All-terrain very slow vehicle. 

The page is basically not mentioning Ada 95.


On Sat, 21 Dec 2002 13:30:34 +1000, "David Wright" <davidw@uq.net.au> wrote:
...
>To this end, I obviously need to commit to a particular language programming
>environment (not necessarily a GUI development interface); yet there seem to
>be several hurdles to even this crucial initial step.  It seems that there
>are three essential threshold requirements, namely:
>

A beginner might expect to have a quality text editor that can put the cursor
onto each syntax error and allow them to be corrected rapidly.

Someone using ObjectAda was aiming to get the default GUI replaced with
Codewright (and if that can be used then Slickedit could too):

At 02\12\16 08:10 -0800 Monday, S.H. wrote to intel-objectada@sf.aonix.com:
| This is from intel-objectada. Please reply to the list rather than the sender.
...
| [...] To redirect both standard and error output:
| 
|       adacomp test.ada > err.txt 2>&1

With a quality text editor. the structural reserved words of Ada 95 can be
coloured a Military green.

>1) A free (preferably) downloadable programming environment that installs
>without fuss and instability

The implicitly presented question is imprecisely posed.

>2) Good online and hardcopy support (tutorials and textbooks) for a BEGINNER
>PROGRAMMER per se, not just beginners with that LANGUAGE

The Internet has a grab bag of Ada 95 documents. Whisking them down can
take up 0.5GB of disk space.

The rest was on frustration. A person in Switzerland have been honing up a
solution for that: complaints can be diverted to forums on Pascal, and later
the source code (source and boyd files) can be ported back to Ada 95 with
great ease.

Another block structured language is Algol 60: it has the rudiments of a
successful language, e.g. the ability to have nested procedures inside of
procedures. There is an Algol 60 to C compiler here: 
   http://www.gnu.org/software/marst/

to go even further back in time, there is the B/C/C++ languages.
In a document that one would hope would briefly detail the rationale, there
is none at all:

   http://cm.bell-labs.com/cm/cs/who/dmr/chist.html :

>The Development of the C Language* 
>Dennis M. Ritchie
>Bell Labs/Lucent Technologies
...
>BCPL, B and C differ syntactically in many details, but broadly
>they are similar. Programs consist of a sequence of global
>declarations and function (procedure) declarations. Procedures can
>be nested in BCPL, but may not refer to non-static objects defined
>in containing procedures. B and C avoid this restriction by
>imposing a more severe one: no nested procedures at all. Each of the
>languages (except for earliest versions of B) recognizes separate
>compilation
...
>C has become successful to an extent far surpassing any early
>expectations. 

Just like error messages of C compilers, the problems are maybe slight, but
finding out what they are is a problem.


G. A. Craig Carey







^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-21  3:30 Why is Ada NOT a good choice for a beginner to programming? David Wright
                   ` (3 preceding siblings ...)
  2002-12-21  9:42 ` Craig Carey
@ 2002-12-21 10:44 ` Dale Stanbrough
  2002-12-21 15:47   ` Alfred Hilscher
  2002-12-21 10:51 ` Why is Ada a good choice for an ambitious beginner to programming Wojtek Narczynski
                   ` (8 subsequent siblings)
  13 siblings, 1 reply; 109+ messages in thread
From: Dale Stanbrough @ 2002-12-21 10:44 UTC (permalink / raw)


David Wright wrote:


> 
> 1) A free (preferably) downloadable programming environment that is installs
> without fuss and instability

Gnat does this (and has the best error messages i've ever seen from
a compiler).

> 2) Good online and hardcopy support (tutorials and textbooks) for a BEGINNER
> PROGRAMMER per se, not just beginners with that LANGUAGE

There is lots of Ada stuff, but i'm not sure how much is devoted to a
novice.

> 3) An online community that has a tradition of supporting such beginners to
> programming.

Don't know. I don't think we get many of them...



> Specific Questions:
> 1) Am I not giving Ada sufficient credit for being a suitable entry-level
> language for a BEGINNING PROGRAMMER?

Ada is better than Pascal as an intro language. You can just learn a 
subset that is cleaner than Pascal.

I taught Ada to first year students for several years quite successfully.

Dale



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2002-12-21  3:30 Why is Ada NOT a good choice for a beginner to programming? David Wright
                   ` (4 preceding siblings ...)
  2002-12-21 10:44 ` Dale Stanbrough
@ 2002-12-21 10:51 ` Wojtek Narczynski
  2002-12-22 14:40   ` Bill Findlay
  2002-12-21 11:57 ` Why is Ada NOT a good choice for a beginner to programming? David Marceau
                   ` (7 subsequent siblings)
  13 siblings, 1 reply; 109+ messages in thread
From: Wojtek Narczynski @ 2002-12-21 10:51 UTC (permalink / raw)


David,

The advantage of starting in Ada is that you won't acquire bad habits.
This is really important.

The disadvantage is is that Ada is difficult. Some people may tell you
otherwise, they are geniuses creating software for devices that fly to
cosmos for a few years now. There are tons of tools and books, so this
is not a disadvantage, just google for them.

This tutorial is excellent IMHO:
http://www.swcp.com/~dodrill/controlled/a95doc/ada95tutor.html

I suggest that you get a textbook, for example "Rendezvous With Ada
95", and use it without skipping the excersises.

For an ide you can use GRASP or AdaGIDE. Your compiler of choice is
GNAT, debugger GVD. Alternatively you can grab an excellent (really)
Integrated DE from Aonix, it has limitations that shouldn't be
important for learning.

Your choice - red or blue pill. 

Finally, you should learn a few languages and specialize in one ;-).


Regards,
Wojtek



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-21  3:30 Why is Ada NOT a good choice for a beginner to programming? David Wright
                   ` (5 preceding siblings ...)
  2002-12-21 10:51 ` Why is Ada a good choice for an ambitious beginner to programming Wojtek Narczynski
@ 2002-12-21 11:57 ` David Marceau
  2002-12-21 15:59 ` Alfred Hilscher
                   ` (6 subsequent siblings)
  13 siblings, 0 replies; 109+ messages in thread
From: David Marceau @ 2002-12-21 11:57 UTC (permalink / raw)


First off I am not a great programmer.  I'm more average than anything
else.

Secondly for anybody who wants to be a programmer and reach the zen of
programming I have two suggestions I want to make before answering your
Mr. Wright's questions:  a wanna-be programmer needs to have some basic
human traits and needs to buy some basic core equipment improving
working endurance capability.

Needed Human Traits:
--------------------
1)patience(I've got this)
2)perseverance(I've got this)
3)organization(I'm pretty much human, sometimes I brain fart like
everybody else and don't use an agenda/engineering log when I should).
PSP(Personal Softare Process by Watts S. Humphrey)/CMM standards are a
good habit to develop to help you reach zen ASAP.  I'm not a fan of
extreme programming and I don't want to start a debate on this. 
Eventually you will realize you have to develop Project Manager skills
to just manage yourself :)  Learning project management sofware/CMM/PSP
support software is a good idea.
4)like being in front of a computer because that's where you'll be.
5)Sensitivity to your entourage and self-awareness.  To help you with
this you might want to read a bood on Emotional Intelligence.  If you've
got some personal issues to deal with, you won't be able to focus on the
programming tasks at hand.  Again I'm human and sometimes I brain fart
like everybody else but these kinds of books prevent me from doing it as
often.

Needed Basic Core Equipment Improving Working Endurance Capability
------------------------------------------------------------------
To save you wasting any energy in your efforts with any languages you do
learn in your career path,
1)get quality glasses
2)get a quality monitor, my eyes think color lcd panels are ten million
times better than Cathode Ray Tube types.  Trust me if you do get an LCD
color monitor you will be able to stay in front of your computer for
longer periods of time without getting as much eye fatigue.  A solid
example of this:  I can barely make it through 7.5 hours in front of an
Envision CRT because it leaves a pinching pain in my left eye after the
whole day.  On the other hand a ViewSonic LCD Color Flat Panel Display,
I can stay in front of the computer for about two days straight without
going to bed no problem.  I can't be any clearer than that.
3)Once you discover you have a nice rythm when playing a particular
keyboard for your computer, buy a couple of the same brand name mark and
model number and keep them in storage.  In this way you can have one
keyboard you're used to at home and another keyboard you're used to at
work.  This makes a huge difference in productivity.  I haven't detected
significant quality problems with keyboards but IMHO ergonomic weird
shaped keyboards are not for me.  The standard IBM keyboard is hard to
beat.  My current keyboard that I love is a Future Power KB-FPPC2001/E
but with no special web buttons because I don't like all the extra
value-added crap.  I just want a keyboard that resembles the old
mechanical typewriter keyboards that I learned keyboarding on.  Having
two keyboards like this avoids the frustration of going at work and
working on a keyboard that you doesn't exactly match the keyboard layout
that you're used to.

David Wright wrote:
> Specific Questions:
> 1) Am I not giving Ada sufficient credit for being a suitable entry-level
> language for a BEGINNING PROGRAMMER?
I think if you have patience, learning Ada95 is a good start.  I didn't
always have that opinion considering c/C++/asm/basic have smaller
vocabularies.  IMHO Ada95 was not intended for having smooth learning
curve.  It was mainly intended of helping build large applications and
helping to maintain them more easily to be blunt.  There are a lot of
other design goals for the language but that's the gist.

Mr. Wright I am thirty-five years old and I no longer have any time and
energy to waste.  I have gone through learning basic, asm, prolog,
c/c++, perl, odl/idl, ada95, java, javacard and j2me in about their
respective order along with compiler tools/grammar.  I've done
OLE/COM/DCOM/JNI.
I'm sorry for all the buzzwords but I need to back up that I believe my
opinion should be valuable considering the experience that I bring to
discussion.

All these thingamajig language buzzwords to do something of concrete
value to society.  Some don't break easily.  Some don't seem to protoype
a gui very quickly.  Some seem to compile very quickly.  Some seem to
execute quickly.  Some seem to be maintained easily.  Some seem to build
the executable more easily.  Some have a larger vocabulary and not as
easy to remember.  Ada95 is all the best of these IMHO.  I love
compiling Ada95 code knowing it has a better chance of working first
shot on many operating systems and passing all the unit tests than
c/c++/java/j2me...
Why because all the harder concurrency/multitasking stuff that most
people want to do while networking/gui-ing/databasing is all there in
the ada95 vocabulary with tried and tested recipes.  All you have to do
is learn these Ada95 recipes.  It takes time learning the language but
at least you won't have to struggle against the coding concepts in any
other language that are not necessarily guaranteed to compile and work
on many targets.  Ada95 was intended to jump over all those hurdles for
you in order for you to concentrate on the problem that you are trying
to solve.  From what I have understood a good bunch of these recipes are
in Ada95 books by the following authors:  Barnes, Cohen, Burns,
Wellings.  IMHO that's the order that I would learn these books too if I
were you.

> 2) Would you recommend that I immerse myself in either BASIC (QBasic) or
> PASCAL (Borland TP7) for a couple of years (yes, OK... forget BASIC ;D) and
> THEN springboard to Ada?
I would recommend investing all your time in Ada95 permitting you to
save time developing the systems you want to make as soon as possible.
I would also recommend compiling your Ada95 on at least two different
platforms i.e. win32 and linux to understand its power.

With time you will probably end up trying to do the same thing with
basic, vb, c, java, j2me, tcl and perl.  After doing so I believe you
will come to the same conclusion as I have: All languages have there
place but if you want something that needs to work on any target Ada95
rules :)

> 
> 3) If you were to opt for Ada as an entry point, which particular dialect or
> environment would be the most user friendly from a set up and
> ?learning-the-fundamentals? point of view. Since I have a choice, I?d like
> an Ada encounter that is a FUN experience, rather than marred by
> gratuitious, buggy FRUSTRATION (which is why I'm not keen on beginning with
> C, C++ or Java, even though others do).
-emacs as a programmer's editor.  It may seem hard to learn but it has
some strong points like Ada95 in its favor that many people don't
appreciate because they haven't taken the time to look closely into the
software.
-gnat Ada95 compiler

Don't let the sleek first impression that msvc/msvb/java gui's give you
fool you.  Learn the language without thinking about gui's right away. 
Thinking about gui's is like opening a can of worms when you want to
learn something.  Stick to just doing command-line, file input output
stuff.
With just this, you'll have plenty of learning here to keep you busy. 
Note the last book I recommended you Burns and Wellings is how to do
concurrency stuff.  Again learn about doing this stuff without guis
first then when you're solid here start learning about any gui sdk you
want.  That's where all the different operating systems differ the most
so avoid it like the plague for now.
As a last step when you're solid with ada95 and concurrency(that'll keep
you busy for quite some time), then I suggest gtk as a gui sdk which
goes well with gnat.
I've done work with Motif/win32/xview/swing/awt so IMHO if you want to
hit all targets in one sweep,  I believe gtk is a good direction for
many reasons which I have discussed in previous CLA postings but to be
frank I haven't invested much time in gtk yet.  I've only compiled and
looked at the source code for the examples and liked what I saw.

REALITY CHECK
-------------
That said reality hits and if you want a job you will have to adapt to
other languages/gui's/sdk's whenever you change jobs with other
companies.  My reality is I change companies often.  Not because I want
to but just because that's the way it is.  One thing is for certain
you're ada95 concepts will follow you everywhere and you will be able to
apply those strong concepts to minimize the damage of using some other
language as much as possible.

Hey if I'm wrong about anything I have said in the above please feel
free to criticize me.  I'm all ears :)

I hope this helps.

You average human,
David Marceau



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-21 10:44 ` Dale Stanbrough
@ 2002-12-21 15:47   ` Alfred Hilscher
  2002-12-21 19:01     ` tmoran
  2002-12-22  0:34     ` James S. Rogers
  0 siblings, 2 replies; 109+ messages in thread
From: Alfred Hilscher @ 2002-12-21 15:47 UTC (permalink / raw)




Dale Stanbrough schrieb:
> 
> David Wright wrote:
> 
> >
> > 1) A free (preferably) downloadable programming environment that is installs
> > without fuss and instability
> 
> Gnat does this (and has the best error messages i've ever seen from
> a compiler).

But sometimes it should produce some warnings. See the thread
"CONSTRAINT_ERROR - why?"



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-21  3:30 Why is Ada NOT a good choice for a beginner to programming? David Wright
                   ` (6 preceding siblings ...)
  2002-12-21 11:57 ` Why is Ada NOT a good choice for a beginner to programming? David Marceau
@ 2002-12-21 15:59 ` Alfred Hilscher
  2002-12-21 17:48 ` Britt Snodgrass
                   ` (5 subsequent siblings)
  13 siblings, 0 replies; 109+ messages in thread
From: Alfred Hilscher @ 2002-12-21 15:59 UTC (permalink / raw)




David Wright schrieb:
> As a young adult investigating learning programming as a hobby
> (self-teaching on PC, Windows 98), I’ve been lurking for a while and have
> looked at some relevant Ada sites. My purpose is to gradually and thoroughly
> learn  computing constructs and ultimately to apply same and see how far I
> can take this interest. I'm not making a career of it... well not yet
> anyway.
> 
> To this end, I obviously need to commit to a particular language programming
> environment (not necessarily a GUI development interface); yet there seem to
> be several hurdles to even this crucial initial step.  It seems that there
> are three essential threshold requirements, namely:
> 
> 1) A free (preferably) downloadable programming environment that is installs
> without fuss and instability

Use GNAT, AdaGide and GVD. The links are shown in Gautiers post. First
install GNAT and then install AdaGide (not the other way round). GVD
should be installed automatically with GNAT.

> 2) Good online and hardcopy support (tutorials and textbooks) for a BEGINNER
> PROGRAMMER per se, not just beginners with that LANGUAGE

You find links for download on www.adapower.com or on www.adaic.org but
books in a bookstore could be a problem -  most of them have only the
"hypes" (C#, Java).


> 3) An online community that has a tradition of supporting such beginners to
> programming.

What's about comp.lang.ada ?
 
> BASIC and PASCAL very!! clearly fulfill these criteria and I am tempted to
> start with one of them. However the posts of Richard Riehle and others on
> this and other newsgroups speak so highly of Ada’s functionality and syntax
> clarity that it’s hard to overlook this as a possibility.

When I was studying, we started with Fortran and Pascal, but I think
this was only because there was no Ada then (1980). Ada is a good start
- from a technical point of view. But - don't tell your friends. They do
C or C++ and you will be a stranger for them.
 
> On the other hand, and with the best will in the world, I can’t see that Ada
> satisfies ANY of the three criteria above,

Open your eyes ;-)

> Specific Questions:
> 1) Am I not giving Ada sufficient credit for being a suitable entry-level
> language for a BEGINNING PROGRAMMER?

Yes, i think. But -you're not the only one.


> 2) Would you recommend that I immerse myself in either BASIC (QBasic) or
No.

> PASCAL (Borland TP7) for a couple of years (yes, OK... forget BASIC ;D) and

Pascal, ok. But keep in mind that TP is _not_ Pascal.

 
> 3) If you were to opt for Ada as an entry point, which particular dialect or
> environment would be the most user friendly from a set up and

No "dialects" in Ada.

> Please accept that I am not trying to offend anyone; it’s just that this
> initial phase is somewhat forbidding to a neophyte and I need to be a
> critical, hype-detecting, cynic ;D.
> 
> Many thanks in advance.

You're welcome ;-)
 
> David.

Alfred



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-21  3:30 Why is Ada NOT a good choice for a beginner to programming? David Wright
                   ` (7 preceding siblings ...)
  2002-12-21 15:59 ` Alfred Hilscher
@ 2002-12-21 17:48 ` Britt Snodgrass
  2002-12-21 20:05 ` Peter Hend�n
                   ` (4 subsequent siblings)
  13 siblings, 0 replies; 109+ messages in thread
From: Britt Snodgrass @ 2002-12-21 17:48 UTC (permalink / raw)


"David Wright" <davidw@uq.net.au> wrote in message
news:au0nld$b0$1@bunyip.cc.uq.edu.au...
> Hello from DownUnder...
>
> I would appreciate some general advice from experienced Ada programmers,
> particularly (but not only) those using it as a teaching vehicle for
> Computer Science courses etc.
>
> As a young adult investigating learning programming as a hobby
> (self-teaching on PC, Windows 98), I've been lurking for a while and have
> looked at some relevant Ada sites.

From this statement I assume you have looked at some of the following:
http://www.adapower.com
http://www.adaic.org
http://www.acm.org/sigada
ftp://ftp.cs.nyu.edu/pub/gnat/3.15p/winnt/
http://www.usafa.af.mil/dfcs/bios/mcc_html/adagide.html
http://www.rrsoftware.com
http://www.aonix.com/content/products/objectada/windows.html
http://libre.act-europe.fr/GtkAda/
http://www.cmis.brighton.ac.uk/staff/je/jewl/
http://www.crystalcode.com/codemage/MainMenu/Coding/Ada/IntroducingAda.php

>My purpose is to gradually and thoroughly
> learn  computing constructs and ultimately to apply same and see how far I
> can take this interest. I'm not making a career of it... well not yet
> anyway.
>
> To this end, I obviously need to commit to a particular language
programming
> environment (not necessarily a GUI development interface); yet there seem
to
> be several hurdles to even this crucial initial step.  It seems that there
> are three essential threshold requirements, namely:
>
> 1) A free (preferably) downloadable programming environment that is
installs
> without fuss and instability

GNAT, AdaGIDE, and ObjectAda SE are free and install easily.  There is also
a free subset of the CLAW GUI library available.

> 2) Good online and hardcopy support (tutorials and textbooks) for a
BEGINNER
> PROGRAMMER per se, not just beginners with that LANGUAGE

There are many Ada 95 textbooks available, must published in 1995 thru 1999.
For beginners I recommend "Rendezvous with Ada 95" by David Naiditch or one
of the Ada 95 college texts by Feldman, McCormick, or Barnes. See
http://www.seas.gwu.edu/~mfeldman/ada95books.html and
http://www.adaic.org/free/freebook.html

> 3) An online community that has a tradition of supporting such beginners
to
> programming.

comp.lang.ada provides this (as long as you are not simply trying to get us
to do your homework).

>
> BASIC and PASCAL very!! clearly fulfill these criteria and I am tempted to
> start with one of them. However the posts of Richard Riehle and others on
> this and other newsgroups speak so highly of Ada's functionality and
syntax
> clarity that it's hard to overlook this as a possibility.
>
> On the other hand, and with the best will in the world, I can't see that
Ada
> satisfies ANY of the three criteria above, though I am willing/wanting to
be
> convinced otherwise.
>
> Specific Questions:
> 1) Am I not giving Ada sufficient credit for being a suitable entry-level
> language for a BEGINNING PROGRAMMER?

No you are not. Although Ada supports many advanced features, it is easy to
pick out a simple, PASCAL-like subset and start with that.  I think its a
particulary good first languge. Its not case sensitive and ugly like Java.

>
> 2) Would you recommend that I immerse myself in either BASIC (QBasic) or
> PASCAL (Borland TP7) for a couple of years (yes, OK... forget BASIC ;D)
and
> THEN springboard to Ada?

No, start with Ada and look at other languages later (they may not impress
you much by then).  I came to Ada after using Basic, Fortran 77, and C.  I'd
now like to learn a "functional" language for comparison.

>
> 3) If you were to opt for Ada as an entry point, which particular dialect
or
> environment would be the most user friendly from a set up and
> 'learning-the-fundamentals' point of view. Since I have a choice, I'd like
> an Ada encounter that is a FUN experience, rather than marred by
> gratuitious, buggy FRUSTRATION (which is why I'm not keen on beginning
with
> C, C++ or Java, even though others do).

Start with both GNAT 3.15p for Windows and Aonix ObjectAda 7.2.2 Special
Edition.  Ada is a relatively picky language (intentionally so) but GNAT
provides great error messages.  AdaGIDE is a free Ada editor for use with
GNAT. ObjectAda provides a very good Ada editor and provides a second
compiler so you can try your programs with two different compilers.

>
> Please accept that I am not trying to offend anyone; it's just that this
> initial phase is somewhat forbidding to a neophyte and I need to be a
> critical, hype-detecting, cynic ;D.
>
> Many thanks in advance.

You're welcome.

>
> David.
>

Britt (in Iowa, USA)





^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-21 15:47   ` Alfred Hilscher
@ 2002-12-21 19:01     ` tmoran
  2002-12-22  1:06       ` Robert C. Leif
  2002-12-23 11:05       ` Alfred Hilscher
  2002-12-22  0:34     ` James S. Rogers
  1 sibling, 2 replies; 109+ messages in thread
From: tmoran @ 2002-12-21 19:01 UTC (permalink / raw)


> > Gnat does this (and has the best error messages i've ever seen from
> > a compiler).
>
> But sometimes it should produce some warnings. See the thread
> "CONSTRAINT_ERROR - why?"
  Right, you need to include the command line switch so it compiles the
Ada you might expect, the one with overflow checking.  IMHO, you also
need to include the stuff to get a symbolic traceback on an unhandled
exception.  I would alternatively suggest Janus Ada for the quality
of its run-time error messages.  (www.rrsoftware.com)  That's the
compiler I learned Ada from.



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-21  3:30 Why is Ada NOT a good choice for a beginner to programming? David Wright
                   ` (8 preceding siblings ...)
  2002-12-21 17:48 ` Britt Snodgrass
@ 2002-12-21 20:05 ` Peter Hend�n
  2002-12-22  1:54 ` faust
                   ` (3 subsequent siblings)
  13 siblings, 0 replies; 109+ messages in thread
From: Peter Hend�n @ 2002-12-21 20:05 UTC (permalink / raw)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 721 bytes --]

"David Wright" <davidw@uq.net.au> wrote:

> I would appreciate some general advice from experienced Ada programmers,
> particularly (but not only) those using it as a teaching vehicle for
> Computer Science courses etc.

I teach Java and C++ at university level here in Sweden, and I frequently
turn to
Ada to illustrate remedies for the dangers and pitfalls of programming. I
put a lot
of effort into persuading the powers that be that Ada should be used as a
vehicle
for teaching programming concepts and techniques. With all too little
success.
I might add. At least my students know what Ada is - and that it really
should
be used instead of the horrors they have to learn - C++ and Java.

Regards
Peter Hend�n





^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-21 15:47   ` Alfred Hilscher
  2002-12-21 19:01     ` tmoran
@ 2002-12-22  0:34     ` James S. Rogers
  2002-12-23 11:11       ` Alfred Hilscher
  1 sibling, 1 reply; 109+ messages in thread
From: James S. Rogers @ 2002-12-22  0:34 UTC (permalink / raw)


"Alfred Hilscher" <Alfred.Hilscher@t-online.de> wrote in message
news:3E048CF5.EC92DE29@t-online.de...
>
>
> Dale Stanbrough schrieb:
> >
> > David Wright wrote:
> >
> > >
> > > 1) A free (preferably) downloadable programming environment that is
installs
> > > without fuss and instability
> >
> > Gnat does this (and has the best error messages i've ever seen from
> > a compiler).
>
> But sometimes it should produce some warnings. See the thread
> "CONSTRAINT_ERROR - why?"

Constraint_Error is a run time exception. The compiler cannot detect all
possible errors. Some are detectable only at run time. The GNAT
compiler identifies the location in the code where a Constraint_Error
was raised. It is up to the programmer to the trace through the code
to determine the initial cause of the error. Often the initial cause is
improper logic some distance from the location where the exception
is raised. In the case of the thread mentioned above, the error was
caused primarily by unfounded assumptions made by the OP.
According to the RM the compiler and run time system behaved
properly.

Jim Rogers





^ permalink raw reply	[flat|nested] 109+ messages in thread

* RE: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-21 19:01     ` tmoran
@ 2002-12-22  1:06       ` Robert C. Leif
  2002-12-23 14:56         ` Wes Groleau
  2002-12-23 11:05       ` Alfred Hilscher
  1 sibling, 1 reply; 109+ messages in thread
From: Robert C. Leif @ 2002-12-22  1:06 UTC (permalink / raw)


The one point in favor of Ada that has only been mentioned in this
discussion by Tom Moran is the quality of the error messages. This is
crucial to all developers, who are not language gurus. I have found the
error messages in GNAT to be very useful. The subset of Ada that is the
equivalent of Pascal with the addition of packages, generics, bounded
strings, and child libraries is both powerful and simple. In fact, this
should be a good market for professionals like me who work in other areas
and use Ada as a tool to do their work.
Bob Leif

-----Original Message-----
From: comp.lang.ada-admin@ada.eu.org [mailto:comp.lang.ada-admin@ada.eu.org]
On Behalf Of tmoran@acm.org
Sent: Saturday, December 21, 2002 11:02 AM
To: comp.lang.ada@ada.eu.org
Subject: Re: Why is Ada NOT a good choice for a beginner to programming?

> > Gnat does this (and has the best error messages i've ever seen from
> > a compiler).
>
> But sometimes it should produce some warnings. See the thread
> "CONSTRAINT_ERROR - why?"
  Right, you need to include the command line switch so it compiles the
Ada you might expect, the one with overflow checking.  IMHO, you also
need to include the stuff to get a symbolic traceback on an unhandled
exception.  I would alternatively suggest Janus Ada for the quality
of its run-time error messages.  (www.rrsoftware.com)  That's the
compiler I learned Ada from.




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-22  1:54 ` faust
@ 2002-12-22  1:28   ` Hyman Rosen
  2002-12-22  2:11     ` Larry Kilgallen
  2002-12-22 22:49     ` faust
  0 siblings, 2 replies; 109+ messages in thread
From: Hyman Rosen @ 2002-12-22  1:28 UTC (permalink / raw)


faust wrote:
> Faster than C++, fast as C in many areas

This does not make any sense, since with minor changes,
any C code is also C++.




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-21  3:30 Why is Ada NOT a good choice for a beginner to programming? David Wright
                   ` (9 preceding siblings ...)
  2002-12-21 20:05 ` Peter Hend�n
@ 2002-12-22  1:54 ` faust
  2002-12-22  1:28   ` Hyman Rosen
       [not found] ` <u7m2ua.qk3.ln@beastie.ix.netcom.com>
                   ` (2 subsequent siblings)
  13 siblings, 1 reply; 109+ messages in thread
From: faust @ 2002-12-22  1:54 UTC (permalink / raw)


 "David Wright" <davidw@uq.net.au> ,  emitted these fragments:

>1) A free (preferably) downloadable programming environment that is installs
>without fuss and instability
>2) Good online and hardcopy support (tutorials and textbooks) for a BEGINNER
>PROGRAMMER per se, not just beginners with that LANGUAGE
>3) An online community that has a tradition of supporting such beginners to
>programming.

Check out Ocaml.

http://www.ocaml.org/

Faster than C++, fast as C in many areas, it has objects and
functional programming.



--------------------------------------------------------
Come see,
real flowers
of this pain-filled world.

(from Basho)



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-22  1:28   ` Hyman Rosen
@ 2002-12-22  2:11     ` Larry Kilgallen
  2002-12-22 22:49     ` faust
  1 sibling, 0 replies; 109+ messages in thread
From: Larry Kilgallen @ 2002-12-22  2:11 UTC (permalink / raw)


In article <uz8N9.61119$_S2.40889@nwrddc01.gnilink.net>, Hyman Rosen <hyrosen@mail.com> writes:
> faust wrote:
>> Faster than C++, fast as C in many areas
> 
> This does not make any sense, since with minor changes,
> any C code is also C++.

Mentally insert a couple of "typical existing code written in" phrases.



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2002-12-21 10:51 ` Why is Ada a good choice for an ambitious beginner to programming Wojtek Narczynski
@ 2002-12-22 14:40   ` Bill Findlay
  2002-12-22 15:08     ` Bill Findlay
                       ` (3 more replies)
  0 siblings, 4 replies; 109+ messages in thread
From: Bill Findlay @ 2002-12-22 14:40 UTC (permalink / raw)


On 21/12/02 10:51, in article
5ad0dd8a.0212210251.63b87aba@posting.google.com, "Wojtek Narczynski"
<wojtek@power.com.pl> wrote:

> David,
> 
> The advantage of starting in Ada is that you won't acquire bad habits.
> This is really important.
> The disadvantage is is that Ada is difficult. Some people may tell you
> otherwise, they are geniuses creating software for devices that fly to
> cosmos for a few years now.

400 not-especially-endowed-with-genius CS1 students have
learned to program using Ada 95 at Glasgow University
every year since 1996.

> I suggest that you get a textbook, for example "Rendezvous With Ada
> 95", and use it without skipping the excersises.

Good advice.

> For an ide you can use GRASP or AdaGIDE. Your compiler of choice is
> GNAT, debugger GVD. Alternatively you can grab an excellent (really)
> Integrated DE from Aonix, it has limitations that shouldn't be
> important for learning.

This assumes submission to the Wintel hegemony.
If you have a decent Mac, MacOS X GNAT runs under Apple's
Project Builder IDE.

-- 
Bill-Findlay chez blue-yonder.co.uk ("-" => "")





^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2002-12-22 14:40   ` Bill Findlay
@ 2002-12-22 15:08     ` Bill Findlay
  2002-12-22 23:02       ` David Wright
  2002-12-23 11:52     ` Wojtek Narczynski
                       ` (2 subsequent siblings)
  3 siblings, 1 reply; 109+ messages in thread
From: Bill Findlay @ 2002-12-22 15:08 UTC (permalink / raw)


On 22/12/02 14:40, in article BA2B7F6D.15B9%yaldnifw@blueyonder.co.uk, "Bill
Findlay" <yaldnifw@blueyonder.co.uk> wrote:

> On 21/12/02 10:51, in article
> 5ad0dd8a.0212210251.63b87aba@posting.google.com, "Wojtek Narczynski"
> <wojtek@power.com.pl> wrote:
> 
>> For an ide you can use GRASP or AdaGIDE. Your compiler of choice is
>> GNAT, debugger GVD. Alternatively you can grab an excellent (really)
>> Integrated DE from Aonix, it has limitations that shouldn't be
>> important for learning.
> 
> This assumes submission to the Wintel hegemony.
> If you have a decent Mac, MacOS X GNAT runs under Apple's
> Project Builder IDE.

Actually, if the interest is in learning to program,
rather than learning to use a specific toolset,
then neither IDEs nor debuggers are necessary,
or even particularly useful to a beginner.

-- 
Bill-Findlay chez blue-yonder.co.uk ("-" => "")





^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-22  1:28   ` Hyman Rosen
  2002-12-22  2:11     ` Larry Kilgallen
@ 2002-12-22 22:49     ` faust
  1 sibling, 0 replies; 109+ messages in thread
From: faust @ 2002-12-22 22:49 UTC (permalink / raw)


 Hyman Rosen <hyrosen@mail.com> ,  emitted these fragments:

>faust wrote:
>> Faster than C++, fast as C in many areas
>
>This does not make any sense, since with minor changes,
>any C code is also C++.

For trivial application, yes the differences are minimal.

However, write a ray tracer in C++, write another in C and see how
similar  the source code is.

--------------------------------------------------------
Come see,
real flowers
of this pain-filled world.

(from Basho)



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2002-12-22 15:08     ` Bill Findlay
@ 2002-12-22 23:02       ` David Wright
  2002-12-23  1:36         ` Bill Findlay
  0 siblings, 1 reply; 109+ messages in thread
From: David Wright @ 2002-12-22 23:02 UTC (permalink / raw)



"Bill Findlay" <yaldnifw@blueyonder.co.uk> wrote >
>
> Actually, if the interest is in learning to program,
> rather than learning to use a specific toolset,
> then neither IDEs nor debuggers are necessary,
> or even particularly useful to a beginner.
>

Hi Bill,

Of all the extremely useful advice to date (thanks everyone!) this concise
remark reached out and grabbed me by the throat! If by this you are
suggesting that 'programming' should mean more than the ability to know and
use the elements of  'a' language and an IDE, but rather should subsume a
thorough understanding the central abstractions or constructs (e.g.,
looping, arrays, recursion, pointers etc) which characterise the various
language 'genres' (e.g., logical, imperative, functional, object oriented
etc), then we are very much on the same wave length.

Perhaps I am a perverse recalcitrant but it has always bemused me to read
well meaning contributors in various newsgroups tell self-teaching newcomers
to "just choose a language and learn it thoroughly". I would have thought
that a preliminary step would be to delve broadly but thoroughly into the
particular 'personalities' of the available generic styles of programming
(logical, imperative...) before choosing and committing to a specific genre,
language and IDE.

Do we ever marry without dating several different people first? ;P

How can the average C++ programmer intelligently discuss (or deride) Prolog
(for example) if they don't know its underlying premises?

I wonder whether this comparative approach means that we have moved beyond
programming into the domain of computer science. But if that is true, I am
unaware of any formal courses that have as their principal raison d'etre a
'thorough' (not cursory or introductory) exposition of the comparative
differences and merits of the main styles of programming. I stand to be
correct here.

I detect the mutterings of those who (rightly) propound the educational
theories of  'active learning', 'constructivism', 'hands on, minds on' etc:
"To learn how to program, they need to program, they need to code and code
some more!" Correct. But that's not my point.  First, we (I) need to explore
the nature of programming and its different styles. This can be done
'actively' by thinking 'actively', by reading 'actively' and by actively
discussing these issues with likeminded searchers.

So yes Bill, "neither IDEs nor debuggers are necessary, or even particularly
useful to a beginner". First things first.  However, I have yet to encounter
any comprehensive and comprehensible resources treating the comparisons
outlined above. Judging from the abundance of erudite minds starring in this
newsgroup alone, this (seeming) paucity cannot be due to insufficient
cross-generic mastery.

It seems that for many if not most, learning to code, like the prospect of
consummation, causes one to be lose patience and rush in; both ventures,
perhaps, have a certain mindless sex appeal.

Bill, do correct me if I have misconstrued what you had intended to say. I
would also be keen to hear any elaborations you may have.

Thanks for being there. ;P

David Wright

Nice tweak of the topic. I had tried to minimise the waffle and hype that
can contaminate advocational rants.






^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2002-12-22 23:02       ` David Wright
@ 2002-12-23  1:36         ` Bill Findlay
  2002-12-23  2:13           ` David Wright
  2002-12-23 14:40           ` Wes Groleau
  0 siblings, 2 replies; 109+ messages in thread
From: Bill Findlay @ 2002-12-23  1:36 UTC (permalink / raw)


On 22/12/02 23:02, in article au5gnq$f3f$1@bunyip.cc.uq.edu.au, "David
Wright" <davidw@uq.net.au> wrote:

> 
> "Bill Findlay" <yaldnifw@blueyonder.co.uk> wrote >
>> 
>> Actually, if the interest is in learning to program,
>> rather than learning to use a specific toolset,
>> then neither IDEs nor debuggers are necessary,
>> or even particularly useful to a beginner.
>> 
> 
> Hi Bill,
> 
> Of all the extremely useful advice to date (thanks everyone!) this concise
> remark reached out and grabbed me by the throat! If by this you are
> suggesting that 'programming' should mean more than the ability to know and
> use the elements of  'a' language and an IDE, but rather should subsume a
> thorough understanding the central abstractions or constructs (e.g.,
> looping, arrays, recursion, pointers etc)

That is the valid subject matter of beginners' programming courses.

> which characterise the various
> language 'genres' (e.g., logical, imperative, functional, object oriented
> etc), then we are very much on the same wave length.

Well, I don't want to dampen your enthusiasm,
but perhaps you read rather more into my posting than I intended.

To begin with, I'll clarify what I did mean.

Beginners to programming have a great deal of detail to absorb.
They do not need to be burdened by learning merely contingent
factoids, such as how to operate the not-necessarily-intuitive
user interface of an IDE. They do need an effortless text editor,
and a trivial means of invoking a compile-and-run cycle.
A very simple IDE (e.g. AdaGIDE) can provide these facilities
with no harm done. Anything more can easily become a distraction
from the real issues.

As for using a debugger, the not-necessarily-intuitive
user interface argument applies there too, even more strongly.
More importantly, it is almost never necessary (at beginner level anyway)
to use a debugger when learning in a supportive language like Ada 95.
This is because debuggers are mainly useful for gathering circumstantial
evidence to support working hypotheses about obscure errors.
Beginners in Ada 95 will rarely experience the kind of obscure error I have
in mind. Even if they do, they will seldom have the conceptual framework
necessary to develop and exploit debugger-provided evidence.

I would go further and say that resorting to a debugger focuses
attention on the miniutiae of individual statements, when beginners
need to develop skill in seeing the bigger picture - i.e. the overall
program structure, with its pre- and post-conditions and invariants
(not that they need to think in formalistic terms, just that they need
to be aware of their program as a cumulatively logical construction).

In other words, they most need to develop the skill of debugging programs
by critical reading. This is crucial, because it develops the very skills
that will enable them to avoid creating bugs in the future.

> Perhaps I am a perverse recalcitrant but it has always bemused me to read
> well meaning contributors in various newsgroups tell self-teaching newcomers
> to "just choose a language and learn it thoroughly". I would have thought
> that a preliminary step would be to delve broadly but thoroughly into the
> particular 'personalities' of the available generic styles of programming
> (logical, imperative...) before choosing and committing to a specific genre,
> language and IDE.

Merely learning 'a language' is absolutely not a worthwhile goal,
but I have to stop short of agreeing with all you say here.
The comparative study you recommend has its place, but that
place is not in a course for complete beginners.  Very few can read a
theoretical treatment and see through it to its practical ramifications.
The comparative studies you suggest begin to have value for sophomores,
but for only a very few, atypical, beginners.

> I wonder whether this comparative approach means that we have moved beyond
> programming into the domain of computer science. But if that is true, I am
> unaware of any formal courses that have as their principal raison d'etre a
> 'thorough' (not cursory or introductory) exposition of the comparative
> differences and merits of the main styles of programming. I stand to be
> correct here.

Such courses certainly exist in CS curricula.

David Watt's series of programming language books (especially "Programming
Language Concepts and Paradigms", to which I was a contributor) covers the
sort of ground you have in mind.

In the Honours curriculum (read CS major in the US) that I am
most familiar with, a deep comparative study of the fundamental semantics of
programming is a Junior level course, assuming an intuitive familiarity
with the basic ideas that is founded on 2 years of theory and lab classes.

> I detect the mutterings of those who (rightly) propound the educational
> theories of  'active learning', 'constructivism', 'hands on, minds on' etc:
> "To learn how to program, they need to program, they need to code and code
> some more!"

Count me among them. That's not enough, of course.

>Correct. But that's not my point.  First, we (I) need to explore
> the nature of programming and its different styles. This can be done
> 'actively' by thinking 'actively', by reading 'actively' and by actively
> discussing these issues with likeminded searchers.

If you are a beginner in programming, you are an unusual one.
If that approach works for you, great.
I could not recommend it for most of the 400 freshers I used to help teach
"Programming for Beginners" (in Ada 95).

> It seems that for many if not most, learning to code, like the prospect of
> consummation, causes one to be lose patience and rush in; both ventures,
> perhaps, have a certain mindless sex appeal.

Indeed, much of a first course is dedicated to persuading those who are
prepared to listen that programming and coding are not the same thing.
But this is not to say that even the more receptive beginners are ready for
an elaborate meta-discussion about the semantic nuances of concepts they
have only begun to master.

> Bill, do correct me if I have misconstrued what you had intended to say. I
> would also be keen to hear any elaborations you may have.
> 
> Thanks for being there. ;P

You're welcome!

-- 
Bill-Findlay chez blue-yonder.co.uk ("-" => "")




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2002-12-23  1:36         ` Bill Findlay
@ 2002-12-23  2:13           ` David Wright
  2002-12-23 14:40           ` Wes Groleau
  1 sibling, 0 replies; 109+ messages in thread
From: David Wright @ 2002-12-23  2:13 UTC (permalink / raw)



"Bill Findlay" <yaldnifw@blueyonder.co.uk> wrote in message
news:BA2C190E.15E6%yaldnifw@blueyonder.co.uk...
> On 22/12/02 23:02, in article au5gnq$f3f$1@bunyip.cc.uq.edu.au, "David
> Wright" <davidw@uq.net.au> wrote:
>
> >
> > "Bill Findlay" <yaldnifw@blueyonder.co.uk> wrote >
> >>
> >> Actually, if the interest is in learning to program,
> >> rather than learning to use a specific toolset,
> >> then neither IDEs nor debuggers are necessary,
> >> or even particularly useful to a beginner.
> >>
> >
> > Hi Bill,
> >
> > Of all the extremely useful advice to date (thanks everyone!) this
concise
> > remark reached out and grabbed me by the throat! If by this you are
> > suggesting that 'programming' should mean more than the ability to know
and
> > use the elements of  'a' language and an IDE, but rather should subsume
a
> > thorough understanding the central abstractions or constructs (e.g.,
> > looping, arrays, recursion, pointers etc)
>
> That is the valid subject matter of beginners' programming courses.
>
> > which characterise the various
> > language 'genres' (e.g., logical, imperative, functional, object
oriented
> > etc), then we are very much on the same wave length.
>
> Well, I don't want to dampen your enthusiasm,
> but perhaps you read rather more into my posting than I intended.
>
>

Indeed I did! I think in Lit Theory 101 they call this an instance of the
reader bringing as much (if not more) to the text as the author. My neurons
must have been siezed by a post-modern virus.

Thank you for the lucid clarification, however. It's sometimes a good idea
to think about HOW to approach a domain rather than just focus on the WHAT
that needs to be osmosed.

I also appreciated the remarks about Ada being a supportive language, the
commentry about debugging and the habit of debugging by critically reading
code.

I will pursue the text references.

Thanks again for your thought provoking (to say the least!) post.

David Wright





^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-21 19:01     ` tmoran
  2002-12-22  1:06       ` Robert C. Leif
@ 2002-12-23 11:05       ` Alfred Hilscher
  1 sibling, 0 replies; 109+ messages in thread
From: Alfred Hilscher @ 2002-12-23 11:05 UTC (permalink / raw)




tmoran@acm.org schrieb:
> 
> > > Gnat does this (and has the best error messages i've ever seen from
> > > a compiler).
> >
> > But sometimes it should produce some warnings. See the thread
> > "CONSTRAINT_ERROR - why?"
>   Right, you need to include the command line switch so it compiles the
> Ada you might expect, the one with overflow checking.  IMHO, you also
> need to include the stuff to get a symbolic traceback on an unhandled
> exception.  I would alternatively suggest Janus Ada for the quality
> of its run-time error messages.  (www.rrsoftware.com)  That's the
> compiler I learned Ada f

No, you misunderstood. Aonix tells me at COMPILE TIME "this will raise
an exception", GNAT compiles WITHOUT a message, but raises the exception
during runtime. I prefer to be informed at an early time.



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-22  0:34     ` James S. Rogers
@ 2002-12-23 11:11       ` Alfred Hilscher
  2002-12-23 14:32         ` Wes Groleau
  2002-12-23 19:54         ` tmoran
  0 siblings, 2 replies; 109+ messages in thread
From: Alfred Hilscher @ 2002-12-23 11:11 UTC (permalink / raw)




"James S. Rogers" schrieb:
> 
> 
> Constraint_Error is a run time exception. The compiler cannot detect all
> possible errors. Some are detectable only at run time. 

Sure, but there are some sort of statements where the compiler KNOWS
that there an exception will be raised. So - why not give a warning at
compile time? The Aonix compiler do so!!!

> The GNAT
> compiler identifies the location in the code where a Constraint_Error
> was raised. It is up to the programmer to the trace through the code
> to determine the initial cause of the error. Often the initial cause is
> improper logic some distance from the location where the exception
> is raised. In the case of the thread mentioned above, the error was
> caused primarily by unfounded assumptions made by the OP.

Nevertheeless the compiler could give a hint during compilation,
couldn`t it?

> According to the RM the compiler and run time system behaved
> properly.

Yes, yes. The behaviour is correct, but it could be more supportive.
Don`t you think it's good to be informed early? Ok, then lets switch
back to C (_all_ errors will be detected during runtime).



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2002-12-22 14:40   ` Bill Findlay
  2002-12-22 15:08     ` Bill Findlay
@ 2002-12-23 11:52     ` Wojtek Narczynski
  2002-12-23 14:12       ` Bill Findlay
  2002-12-23 20:07     ` chris.danx
  2003-01-02 10:04     ` John McCabe
  3 siblings, 1 reply; 109+ messages in thread
From: Wojtek Narczynski @ 2002-12-23 11:52 UTC (permalink / raw)


Bill Findlay <yaldnifw@blueyonder.co.uk> wrote in message news:<BA2B7F6D.15B9%yaldnifw@blueyonder.co.uk>...
> On 21/12/02 10:51, in article
> 5ad0dd8a.0212210251.63b87aba@posting.google.com, "Wojtek Narczynski"
> <wojtek@power.com.pl> wrote:
> 
> > David,
> > 
> > The advantage of starting in Ada is that you won't acquire bad habits.
> > This is really important.
> > The disadvantage is is that Ada is difficult. Some people may tell you
> > otherwise, they are geniuses creating software for devices that fly to
> > cosmos for a few years now.
> 
> 400 not-especially-endowed-with-genius CS1 students have
> learned to program using Ada 95 at Glasgow University
> every year since 1996.
 
Well, if you asked them, "Where does 'new' allocate memory?", 50%
would answer "stack", 45% - "heap", 5% would give you the correct
answer. At least this is the result I get with graduates that claim
that they know C++.

But this has been discussed in too much detail on team-ada mailing
list.



Regards,
Wojtek



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2002-12-23 11:52     ` Wojtek Narczynski
@ 2002-12-23 14:12       ` Bill Findlay
  2002-12-23 20:15         ` Wojtek Narczynski
  2002-12-23 20:52         ` Wojtek Narczynski
  0 siblings, 2 replies; 109+ messages in thread
From: Bill Findlay @ 2002-12-23 14:12 UTC (permalink / raw)


On 23/12/02 11:52, in article
5ad0dd8a.0212230352.11f8b886@posting.google.com, "Wojtek Narczynski"
<wojtek@power.com.pl> wrote:

> Bill Findlay <yaldnifw@blueyonder.co.uk> wrote in message
> news:<BA2B7F6D.15B9%yaldnifw@blueyonder.co.uk>...
>> On 21/12/02 10:51, in article
>> 5ad0dd8a.0212210251.63b87aba@posting.google.com, "Wojtek Narczynski"
>> <wojtek@power.com.pl> wrote:
>>> The advantage of starting in Ada is that you won't acquire bad habits.
>>> This is really important.
>>> The disadvantage is is that Ada is difficult. Some people may tell you
>>> otherwise, they are geniuses creating software for devices that fly to
>>> cosmos for a few years now.
>> 
>> 400 not-especially-endowed-with-genius CS1 students have
>> learned to program using Ada 95 at Glasgow University
>> every year since 1996.
> 
> Well, if you asked them, "Where does 'new' allocate memory?", 50%
> would answer "stack", 45% - "heap", 5% would give you the correct
> answer. At least this is the result I get with graduates that claim
> that they know C++.

What is the relevance to beginners in Ada of your experience with
graduates who 'know' C++ and are confused about it (unsurprisingly)?
This is a strange basis for claiming that *Ada* is difficult!
(Especially since the C++ answer is different from the Ada answer.)
-- 
Bill-Findlay chez blue-yonder.co.uk ("-" => "")




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-21  5:44 ` sk
@ 2002-12-23 14:29   ` Wes Groleau
  2002-12-23 17:36     ` sk
  2002-12-24  0:50     ` Craig Carey
  0 siblings, 2 replies; 109+ messages in thread
From: Wes Groleau @ 2002-12-23 14:29 UTC (permalink / raw)



> Since you profess to being a beginner and you are working
> with Win'98, I would play with the supplied (I think) QBasic
> to get a feel for programming.

He professes to be a beginner, and yet he has enough
insight to see that C, C++, and Java invite "buggy
frustration"  :-)

Actually, as much as I detest the unjustified hype
surrounding Java, it might be considered a good
_compromise_ between C/C++ and Ada.  It prevents
_some_ of the badness of the former, but it doesn't
have all the power of the latter.  And, like it or not,
it DOES have a big set of libraries.




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-23 11:11       ` Alfred Hilscher
@ 2002-12-23 14:32         ` Wes Groleau
  2002-12-23 19:54         ` tmoran
  1 sibling, 0 replies; 109+ messages in thread
From: Wes Groleau @ 2002-12-23 14:32 UTC (permalink / raw)



> Yes, yes. The behaviour is correct, but it could be more supportive.
> Don`t you think it's good to be informed early? Ok, then lets switch
> back to C (_all_ errors will be detected during runtime).

OR, detected by a human noticing that the outputs
don't seem quite right.

Or, not detected at all!!  :-)

(You could say this about _any_ language, but
some languages do it more _often_)




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2002-12-23  1:36         ` Bill Findlay
  2002-12-23  2:13           ` David Wright
@ 2002-12-23 14:40           ` Wes Groleau
  2002-12-27 21:25             ` Randy Brukardt
  1 sibling, 1 reply; 109+ messages in thread
From: Wes Groleau @ 2002-12-23 14:40 UTC (permalink / raw)



> Beginners to programming have a great deal of detail to absorb.
> They do not need to be burdened by learning merely contingent
> factoids, such as how to operate the not-necessarily-intuitive
> user interface of an IDE. They do need an effortless text editor,

Especially not one like JBuilder (and every other GUI builder
I have ever seen) that not only generates code for you, but
generates really BAD code (from a readability/maintainability
perspective).

> In other words, they most need to develop the skill of debugging programs
> by critical reading. This is crucial, because it develops the very skills
> that will enable them to avoid creating bugs in the future.

As Hoare said, debuggers promote carelessness--they
work against the attitude of 'get it right the first
time' (not his exact words).




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
       [not found] ` <u7m2ua.qk3.ln@beastie.ix.netcom.com>
@ 2002-12-23 14:55   ` Wes Groleau
  0 siblings, 0 replies; 109+ messages in thread
From: Wes Groleau @ 2002-12-23 14:55 UTC (permalink / raw)


Dennis Lee Bieber wrote:

[comparison of Ada and Delphi]

You exaggerated the differences.  Try this:

> {GNAT hello.adb}
> 
> with Text_IO; use Text_IO;
> procedure hello is
> 
> begin
>   put_line("Hello, mis-begotten world");
> end;
> 
> {Kylix Delphi [Object-Pascal] console application}
> 
> program Hello;
> 
> begin
>   writeln('Hello, mis-begotten world');
> end.

And doesn't "standard" Pascal require some sort
of thing similar to the context clause
(in parens following the name of the program)?




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-22  1:06       ` Robert C. Leif
@ 2002-12-23 14:56         ` Wes Groleau
  0 siblings, 0 replies; 109+ messages in thread
From: Wes Groleau @ 2002-12-23 14:56 UTC (permalink / raw)


> The one point in favor of Ada that has only been mentioned in this
> discussion by Tom Moran is the quality of the error messages. This is

That is not a point for Ada, it's a point for GNAT.
I have seen compilers with USELESS error messages,
and most are mediocre.




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-23 14:29   ` Wes Groleau
@ 2002-12-23 17:36     ` sk
  2002-12-23 18:24       ` David Wright
  2002-12-24  0:50     ` Craig Carey
  1 sibling, 1 reply; 109+ messages in thread
From: sk @ 2002-12-23 17:36 UTC (permalink / raw)


wesgroleau@despammed.com:
 > He professes to be a beginner, and yet he has enough
 > insight to see that C, C++, and Java invite "buggy
 > frustration"  :-)

Yes, I sensed a touch of fishing in the OP hence the
"antisocial" comments.

I still think a true begginer cannot do anything
but learn by taking already available tools (QBasic
on a Win platform).

Investing a lot of time and/or money in a more
complex setup could lead to frustration aggravation
and eventual alienation especially if fundamentals
(loops, arrays etc) are not understood and the OP
is not part of a structured/formal educational
environment.

Until someone knows what undeclared variables are,
they cannot understand the value of a language that
will not allow them.



-- 
--
-- Merge vertically for real address
--
------------------------------------
-- s n p @ t . o
--  k i e k c c m
------------------------------------




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-23 17:36     ` sk
@ 2002-12-23 18:24       ` David Wright
  2002-12-23 19:16         ` sk
                           ` (2 more replies)
  0 siblings, 3 replies; 109+ messages in thread
From: David Wright @ 2002-12-23 18:24 UTC (permalink / raw)



"sk" <sk@noname.com> wrote in message
news:mailman.1040664961.4038.comp.lang.ada@ada.eu.org...
> wesgroleau@despammed.com:
>  > He professes to be a beginner, and yet he has enough
>  > insight to see that C, C++, and Java invite "buggy
>  > frustration"  :-)
>
> Yes, I sensed a touch of fishing in the OP hence the
> "antisocial" comments.

> Since you profess to being a beginner
>


Mom used to say, "If you can't say anything nice..."

I said I was a beginner to programming; I didn't say I was brain dead or
illiterate. It doesn't take Mensa affiliate to read the C, C++, Java
newsgroups and see that beginners are soon befuddled by non-intuitive
syntactical clutter and compiler catastrophes.

This was precisely the purpose of my original post - to see if the Ada
language and community was a congenial place to commit to my learning curve,
yet it's precisely your sort of undergraduate snottiness that puts visitors
off. Happily, I've found that there are some inspiring adults here,
possessed of a generous spirit.  Read and learn boys since I assume from
your tone that you both must be about 15 years old.

David Wright






^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-23 18:24       ` David Wright
@ 2002-12-23 19:16         ` sk
  2002-12-23 19:48           ` David Wright
  2002-12-23 21:17           ` Robert A Duff
  2002-12-23 21:30         ` Wes Groleau
  2002-12-30 16:22         ` Mark
  2 siblings, 2 replies; 109+ messages in thread
From: sk @ 2002-12-23 19:16 UTC (permalink / raw)


Hi,


 > Mom used to say, "If you can't say anything nice..."

If you read what I said, I genuinelly beleive you would
be better off looking at readily available tools rather
than posting provocative messages in the comp.* news
groups.

 > ... see that beginners are soon befuddled by non-intuitive
 > syntactical clutter and compiler catastrophes.

Basic is a very valuable learning tool to get a
feel for what programming is. My comments concerning
BASIC were not meant to be a snide remarks.

 > Read and learn boys since I assume from your tone that
 > you both must be about 15 years old.

I cannot speak for Wes Grouleau, but I suspect that I
was programming in BASIC (which lead me to appreciate
the value of a language such as Ada) before you were
even born.

Congtatulations, I have risen to your trollish, provocative
and childish comment :-)

-- 
--
-- Merge vertically for real address
--
------------------------------------
-- s n p @ t . o
--  k i e k c c m
------------------------------------




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-23 19:16         ` sk
@ 2002-12-23 19:48           ` David Wright
  2002-12-23 21:33             ` Wes Groleau
  2002-12-23 21:17           ` Robert A Duff
  1 sibling, 1 reply; 109+ messages in thread
From: David Wright @ 2002-12-23 19:48 UTC (permalink / raw)



"sk" <sk@noname.com> wrote in message
news:mailman.1040671026.6867.comp.lang.ada@ada.eu.org...

<<<
I suspect that I was programming in BASIC before you were even born.
<<<

Golly, that really put me in my place didn't it?

If what you say is true (...before you were even born), don't even dream you
can have the last word!!!

The days when children were seen and not heard is long gone. And don't you
just hate that!

All these young, loud, enthusiastic, articulate, brash, switched on,
unstoppable, totally resiliant (take note) kids who are potentially smarter
at 13 than you have ever been or will ever be. That's gotta hurt.

Have a nice life, or what's left of it. Or better still, try to be nicer. We
won't accept anything less.

DW
PS SK don't bother directing any additional programming advice to me; you
lost all credibility with your first response to my post.








^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-23 11:11       ` Alfred Hilscher
  2002-12-23 14:32         ` Wes Groleau
@ 2002-12-23 19:54         ` tmoran
  1 sibling, 0 replies; 109+ messages in thread
From: tmoran @ 2002-12-23 19:54 UTC (permalink / raw)


> Sure, but there are some sort of statements where the compiler KNOWS
> that there an exception will be raised. So - why not give a warning at
> compile time? The Aonix compiler do so!!!
  Do you think other compilers don't?

procedure testerr is
  a : positive;
begin
  a := 0;
end testerr;

Gnat
testerr.adb:4:08: warning: value not in range of type "Standard.positive"
testerr.adb:4:08: warning: "constraint_error" will be raised at run time

Aonix
testerr.adb: Warning: line 4 col 8 LRM:11.5(17), Value outside range, Constraint_Error will be raised
*****Warning: At line 4 in ..\testerr.adb.  Constraint_Error will be raised here if executed [value outside range].

Janus
In File E:\claw133\finder\TESTERR.ADB at line 4
--------------
    3:  begin
    4:    a := 0;
---------------^
*WARNING* Expression is always out of range (6.5.1)

(The Janus manual 6.5.1 says "An expression has an unchanging value that
is not within the appropriate range bounds.  This will always raise
Constraint Error."  The Janus error messages have a short sentence,
a reference to a short paragraph in the Janus manual, and usually, though
not in this case, an ARM reference.)

OTOH, none of the three detected at compile time that an exception
would be raised by

procedure testerr is
  a : positive := 2;
begin
  for i in 1 .. 2 loop
    a := a-1;
  end loop;
end testerr;



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2002-12-22 14:40   ` Bill Findlay
  2002-12-22 15:08     ` Bill Findlay
  2002-12-23 11:52     ` Wojtek Narczynski
@ 2002-12-23 20:07     ` chris.danx
  2003-01-02 10:04     ` John McCabe
  3 siblings, 0 replies; 109+ messages in thread
From: chris.danx @ 2002-12-23 20:07 UTC (permalink / raw)


Bill Findlay wrote:
> 
> 400 not-especially-endowed-with-genius CS1 students have
> learned to program using Ada 95 at Glasgow University
> every year since 1996.

This is true, I'm one of them :)



Danx
-- 
for personal replies change spamoff to chris




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2002-12-23 14:12       ` Bill Findlay
@ 2002-12-23 20:15         ` Wojtek Narczynski
  2002-12-24 19:29           ` Bill Findlay
  2002-12-23 20:52         ` Wojtek Narczynski
  1 sibling, 1 reply; 109+ messages in thread
From: Wojtek Narczynski @ 2002-12-23 20:15 UTC (permalink / raw)


Bill Findlay <yaldnifw@blueyonder.co.uk> wrote in message news:<BA2CCA4B.1617%yaldnifw@blueyonder.co.uk>...
> On 23/12/02 11:52, in article
> 5ad0dd8a.0212230352.11f8b886@posting.google.com, "Wojtek Narczynski"
> <wojtek@power.com.pl> wrote:
> 
> > Bill Findlay <yaldnifw@blueyonder.co.uk> wrote in message
> > news:<BA2B7F6D.15B9%yaldnifw@blueyonder.co.uk>...
> >> On 21/12/02 10:51, in article
> >> 5ad0dd8a.0212210251.63b87aba@posting.google.com, "Wojtek Narczynski"
> >> <wojtek@power.com.pl> wrote:
> >>> The advantage of starting in Ada is that you won't acquire bad habits.
> >>> This is really important.
> >>> The disadvantage is is that Ada is difficult. Some people may tell you
> >>> otherwise, they are geniuses creating software for devices that fly to
> >>> cosmos for a few years now.
> >> 
> >> 400 not-especially-endowed-with-genius CS1 students have
> >> learned to program using Ada 95 at Glasgow University
> >> every year since 1996.
> > 
> > Well, if you asked them, "Where does 'new' allocate memory?", 50%
> > would answer "stack", 45% - "heap", 5% would give you the correct
> > answer. At least this is the result I get with graduates that claim
> > that they know C++.
> 
> What is the relevance to beginners in Ada of your experience with
> graduates who 'know' C++ and are confused about it (unsurprisingly)?
> This is a strange basis for claiming that *Ada* is difficult!
> (Especially since the C++ answer is different from the Ada answer.)

Bill,

You may have not noticed that this question also applies to Ada, but
the answer is even harder than in C++.

Regards,
Wojtek



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2002-12-23 14:12       ` Bill Findlay
  2002-12-23 20:15         ` Wojtek Narczynski
@ 2002-12-23 20:52         ` Wojtek Narczynski
  1 sibling, 0 replies; 109+ messages in thread
From: Wojtek Narczynski @ 2002-12-23 20:52 UTC (permalink / raw)


Bill Findlay <yaldnifw@blueyonder.co.uk> wrote in message news:<BA2CCA4B.1617%yaldnifw@blueyonder.co.uk>...
> On 23/12/02 11:52, in article
> 5ad0dd8a.0212230352.11f8b886@posting.google.com, "Wojtek Narczynski"
> <wojtek@power.com.pl> wrote:
> 
> > Bill Findlay <yaldnifw@blueyonder.co.uk> wrote in message
> > news:<BA2B7F6D.15B9%yaldnifw@blueyonder.co.uk>...
> >> On 21/12/02 10:51, in article
> >> 5ad0dd8a.0212210251.63b87aba@posting.google.com, "Wojtek Narczynski"
> >> <wojtek@power.com.pl> wrote:
> >>> The advantage of starting in Ada is that you won't acquire bad habits.
> >>> This is really important.
> >>> The disadvantage is is that Ada is difficult. Some people may tell you
> >>> otherwise, they are geniuses creating software for devices that fly to
> >>> cosmos for a few years now.
> >> 
> >> 400 not-especially-endowed-with-genius CS1 students have
> >> learned to program using Ada 95 at Glasgow University
> >> every year since 1996.
> > 
> > Well, if you asked them, "Where does 'new' allocate memory?", 50%
> > would answer "stack", 45% - "heap", 5% would give you the correct
> > answer. At least this is the result I get with graduates that claim
> > that they know C++.
> 
> (...)
> (Especially since the C++ answer is different from the Ada answer.)

Oops, you have noticed - sorry.

Regards,
Wojtek



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-23 19:16         ` sk
  2002-12-23 19:48           ` David Wright
@ 2002-12-23 21:17           ` Robert A Duff
  2002-12-24 19:22             ` faust
  1 sibling, 1 reply; 109+ messages in thread
From: Robert A Duff @ 2002-12-23 21:17 UTC (permalink / raw)


sk <sk@noname.com> writes:

> Basic is a very valuable learning tool to get a
> feel for what programming is.

I disagree.  Basic is a poor language to learn first.
Much better would be Ada or some dialect of ML.

- Bob



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-23 18:24       ` David Wright
  2002-12-23 19:16         ` sk
@ 2002-12-23 21:30         ` Wes Groleau
  2002-12-23 22:11           ` David Wright
  2002-12-30 16:22         ` Mark
  2 siblings, 1 reply; 109+ messages in thread
From: Wes Groleau @ 2002-12-23 21:30 UTC (permalink / raw)


>> > He professes to be a beginner, and yet he has enough
>> > insight to see that C, C++, and Java invite "buggy
>> > frustration"  :-)
>>
>>Yes, I sensed a touch of fishing in the OP hence the
>>"antisocial" comments.

> Mom used to say, "If you can't say anything nice..."

"If you ain't got nuttin to say, don't say nuttin at all"
       (My son's rephrasing of that proverb)

> I said I was a beginner to programming; I didn't say I was brain dead or
> illiterate. It doesn't take Mensa affiliate to read the C, C++, Java
> newsgroups and see that beginners are soon befuddled by non-intuitive
> syntactical clutter and compiler catastrophes.

I did not mean to imply you aren't a beginner.
I was just hinting that you apparently know more
than some folks assumed you know.

> possessed of a generous spirit.  Read and learn boys since I assume from
> your tone that you both must be about 15 years old.

I haven't a clue of sk's age.  _I_ am pushing fifty.
As for "spirit" - well, I am generally fairly helpful,
however, I also have a "talent" for offending folks
without intending to.  (But nobody noticed, right?)

I guess the problem is "beginner" means different things
to different people.




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-23 19:48           ` David Wright
@ 2002-12-23 21:33             ` Wes Groleau
  0 siblings, 0 replies; 109+ messages in thread
From: Wes Groleau @ 2002-12-23 21:33 UTC (permalink / raw)


David, should you choose to accept it, my advice to you is:

1. Never attribute to malice that which can be
    adequately explained by stupidity.

2. Never attribute to stupidity that which can be
    adequately explained by ignorance.

3. Never attribute to ignorance that which can be
    adequately explained by miscommunication.




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-23 21:30         ` Wes Groleau
@ 2002-12-23 22:11           ` David Wright
  0 siblings, 0 replies; 109+ messages in thread
From: David Wright @ 2002-12-23 22:11 UTC (permalink / raw)


A very classy and admirable reconciliation Mr G.

Thanks ;P

DW







^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-24 19:22             ` faust
@ 2002-12-24  0:46               ` Robert A Duff
  2002-12-24  9:41                 ` Pascal Obry
                                   ` (3 more replies)
  0 siblings, 4 replies; 109+ messages in thread
From: Robert A Duff @ 2002-12-24  0:46 UTC (permalink / raw)


faust <urfaust@optushome.com.au> writes:

> Remember what Dijkstra said:
> 
> "It is practically impossible to teach good programming style to
> students that have had prior exposure to BASIC; as potential
> programmers they are mentally mutilated beyond hope of regeneration."
> ( Professor Edsger Dijkstra )

I don't much like Dijkstra's style.  I mean, if you're trying to
convince someone who only knows BASIC that there are better languages,
the above hyperbole would just annoy the person.  If usenet had existed,
it would start a silly flame war.  (Didn't Dijkstra's also say teaching
BASIC should require a prison sentence?  Or was that some other
language?  I used to think it was a pretty clever way of speaking.)

It's also the case that BASIC has changed a lot since he said that.
Or should I say, BASICs, plural?  ;-)

One should learn *many* programming languages, if one is serious about
programming.  But one should not start with BASIC (or C, or assembly).

- Bob



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-23 14:29   ` Wes Groleau
  2002-12-23 17:36     ` sk
@ 2002-12-24  0:50     ` Craig Carey
  2002-12-29 14:44       ` Colin Paul Gloster
  1 sibling, 1 reply; 109+ messages in thread
From: Craig Carey @ 2002-12-24  0:50 UTC (permalink / raw)



On Mon, 23 Dec 2002 09:29:17 -0500, Wes Groleau <wesgroleau@despammed.com> wrote:
...
>> with Win'98, I would play with the supplied (I think) QBasic
>> to get a feel for programming.
>
>He professes to be a beginner, and yet he has enough
>insight to see that C, C++, and Java invite "buggy
>frustration"  :-)
>
>Actually, as much as I detest the unjustified hype
>surrounding Java, it might be considered a good
>_compromise_ between C/C++ and

In all my time browsing around valueless Java websites, I never saw
the point made that companies and developers who use Java, get
complaints about Java, and an very interesting thing about the
complaints is how every user can spot the fact that Java is worse.

Some open source projects use Java because they want the top programmer
to learn it. That faulty thinking can go sour when it turns out that
the software does not run excellently, and the end users want to
criticise Java and it is worse. Instead of bug reports the first
program is close to never being used again. Criticisms of the decision
to use Java tend to appear. Problems with Java can be serious.

I had a problem my self in December 2002: previously I could browse
to the download page and copy the URL off a console window running a
proxy, and then enter that URL into Fastget. But Sun Microsystems has
shut that down and a webbrowser really has to be used. Presumably
persons in the jungles of Asia would still have to use a webbrowser
after bloats up to be 98MB in size or whatever. It is complaints
from Asia and China and all around the world that help make Java
programmers and Java project leaders (and certainly not university
staff who are kept excluded) as unable to defend Sun as we currently
believe them to be.

I see that in the MS trial, a Gosling (?) memo was produced and it
said that Java had instability. Instability seems to described a
far advanced hard to reverse state of averaging evidence of bugs.
Sun Microsystems maybe is a leader in bug concealment. I presume the
first prime technique is to make it look like the end programmers
are at fault.

I am waiting for the day that Sun hits bankruptcy (e.g. forces by
some anti-trust split up) and a judge requires they start imposing
royalty fees on companies like IBM. 


Craig Carey
http://www.ijs.co.nz/ada_95.htm



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-24  0:46               ` Robert A Duff
@ 2002-12-24  9:41                 ` Pascal Obry
  2002-12-25  4:43                 ` faust
                                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 109+ messages in thread
From: Pascal Obry @ 2002-12-24  9:41 UTC (permalink / raw)



Robert A Duff <bobduff@shell01.TheWorld.com> writes:

> One should learn *many* programming languages, if one is serious about
> programming.  But one should not start with BASIC (or C, or assembly).

Easy to say. My first "computer" was a ZX81 and the only language available
was BASIC! My second computer was an Amstrad CPC464 and the only language
available at this time was BASIC... well Turbo Pascal was ported to this
computer but it was costing a lot, I bought it, I know!

Of course today there is many more options and one can avoid BASIC.

Pascal.
  who started programming with BASIC.

-- 

--|------------------------------------------------------
--| Pascal Obry                           Team-Ada Member
--| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE
--|------------------------------------------------------
--|         http://perso.wanadoo.fr/pascal.obry
--| "The best way to travel is by means of imagination"
--|
--| gpg --keyserver wwwkeys.pgp.net --recv-key C1082595



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-21  3:30 Why is Ada NOT a good choice for a beginner to programming? David Wright
                   ` (11 preceding siblings ...)
       [not found] ` <u7m2ua.qk3.ln@beastie.ix.netcom.com>
@ 2002-12-24 14:01 ` W D Tate
  2002-12-24 20:06   ` Rod Haper
  2002-12-25  0:37   ` noone
  2003-01-13 12:18 ` John English
  13 siblings, 2 replies; 109+ messages in thread
From: W D Tate @ 2002-12-24 14:01 UTC (permalink / raw)


"David Wright" <davidw@uq.net.au> wrote in message news:<au0nld$b0$1@bunyip.cc.uq.edu.au>...
> Hello from DownUnder...
> 
> I would appreciate some general advice from experienced Ada programmers,
> particularly (but not only) those using it as a teaching vehicle for
> Computer Science courses etc.

I have a few suggestions for you - Ada and Python.
Python is an object-oriented script language with easy on the eyes
syntax, a ton of libraries out there and a very very friendly
discussion groups.

If you programming for just the fun of it, then Python is hard to
beat, but IF your working on something that helps pay the bills or
keeps your business afloat then I would advise asking yourself this
question.  How much money are you prepared to flush down the toilet on
such activities as debugging or trying to decipher something conceived
by a kid named Garth?

If that's appealing to you then by all means take the C/C++ route, the
historical evidence points to a good probability that a state of
entropy will have firmly set in by the 2nd or 3rd generation of your
product.  However, if you want to make an honest attempt at avoiding
that and using your time more productively then I would advise looking
at Ada as one alternative.



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-23 21:17           ` Robert A Duff
@ 2002-12-24 19:22             ` faust
  2002-12-24  0:46               ` Robert A Duff
  0 siblings, 1 reply; 109+ messages in thread
From: faust @ 2002-12-24 19:22 UTC (permalink / raw)


 Robert A Duff <bobduff@shell01.TheWorld.com> ,  emitted these
fragments:

 
>. Basic is a poor language to learn first.
>Much better would be Ada or some dialect of ML.

Definitely !
Avoid Basic like the plague.

Remember what Dijkstra said:

"It is practically impossible to teach good programming style to
students that have had prior exposure to BASIC; as potential
programmers they are mentally mutilated beyond hope of regeneration."
( Professor Edsger Dijkstra )

--------------------------------------------------------
Come see,
real flowers
of this pain-filled world.

(from Basho)



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2002-12-23 20:15         ` Wojtek Narczynski
@ 2002-12-24 19:29           ` Bill Findlay
  2002-12-24 22:56             ` Wojtek Narczynski
  2002-12-25  8:23             ` Hyman Rosen
  0 siblings, 2 replies; 109+ messages in thread
From: Bill Findlay @ 2002-12-24 19:29 UTC (permalink / raw)


On 23/12/02 20:15, in article
5ad0dd8a.0212231215.6ae81bf7@posting.google.com, "Wojtek Narczynski"
<wojtek@power.com.pl> wrote:

> Bill Findlay <yaldnifw@blueyonder.co.uk> wrote in message
> news:<BA2CCA4B.1617%yaldnifw@blueyonder.co.uk>...
>> On 23/12/02 11:52, in article
>> 5ad0dd8a.0212230352.11f8b886@posting.google.com, "Wojtek Narczynski"
>> <wojtek@power.com.pl> wrote:
>> 
>>> Well, if you asked them, "Where does 'new' allocate memory?", 50%
>>> would answer "stack", 45% - "heap", 5% would give you the correct
>>> answer. At least this is the result I get with graduates that claim
>>> that they know C++.
>> 
>> What is the relevance to beginners in Ada of your experience with
>> graduates who 'know' C++ and are confused about it (unsurprisingly)?
>> This is a strange basis for claiming that *Ada* is difficult!
>> (Especially since the C++ answer is different from the Ada answer.)
> 
> Bill,
> 
> You may have not noticed that this question also applies to Ada, but
> the answer is even harder than in C++.

Wojtek, we are talking about beginners here.

C++ beginners just *might* have to learn about placement new,
to let them do things that are trivially easy in Ada;
but, never having taught C++ to beginners, I could be wrong.

Ada beginners do not have any need to learn about storage pools
(if their instructor is sane at ay rate).

-- 
Bill-Findlay chez blue-yonder.co.uk ("-" => "")





^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-24 14:01 ` W D Tate
@ 2002-12-24 20:06   ` Rod Haper
  2002-12-25  0:37   ` noone
  1 sibling, 0 replies; 109+ messages in thread
From: Rod Haper @ 2002-12-24 20:06 UTC (permalink / raw)


W D Tate wrote:
> "David Wright" <davidw@uq.net.au> wrote in message news:<au0nld$b0$1@bunyip.cc.uq.edu.au>...
> 
>>Hello from DownUnder...
>>
>>I would appreciate some general advice from experienced Ada programmers,
>>particularly (but not only) those using it as a teaching vehicle for
>>Computer Science courses etc.
> 
> 
> I have a few suggestions for you - Ada and Python.
> Python is an object-oriented script language with easy on the eyes
> syntax, a ton of libraries out there and a very very friendly
> discussion groups.
> 
> If you programming for just the fun of it, then Python is hard to
> beat, but IF your working on something that helps pay the bills or
> keeps your business afloat then I would advise asking yourself this
> question.  How much money are you prepared to flush down the toilet on
> such activities as debugging or trying to decipher something conceived
> by a kid named Garth?
> 
> If that's appealing to you then by all means take the C/C++ route, the
> historical evidence points to a good probability that a state of
> entropy will have firmly set in by the 2nd or 3rd generation of your
> product.  However, if you want to make an honest attempt at avoiding
> that and using your time more productively then I would advise looking
> at Ada as one alternative.

I've been waiting to see if anyone was going to suggest the combination 
of Python and Ada.  I want to add my enthusiastic support for this 
combination.  For programming beginners, I don't think Python can be 
beat as an intial programming language.  [Long list of benefits and 
pluses omitted.]  An added plus is that Python is full-featured and 
powerfull enough that you won't outgrow it and have to leave it behind 
as your programming expertise grows.  Python is a great blend of 
simplicity, clarity and power that will serve you long and well.  By all 
means, David, take a look at Python.

Then, if you need/want to move on to a programming regime that requires 
industrial strength, robust, compiled programs, you can't beat Ada as 
your choice.  And you'll find that the programming foundations and 
habits that you build with Python will serve you well with Ada.  We may 
live in a C/C++ world awash with poorly designed and implemented code 
but I urge you to consider the less travelled Ada road as a way to avoid 
some of those headaches.

-- 
Rod

+----------------------------------+
|     There is a better way ...    |
|   LAP => Linux + Ada95 + Python  |
+----------------------------------+




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2002-12-24 19:29           ` Bill Findlay
@ 2002-12-24 22:56             ` Wojtek Narczynski
  2002-12-24 23:31               ` Bill Findlay
  2002-12-24 23:36               ` Adrian Knoth
  2002-12-25  8:23             ` Hyman Rosen
  1 sibling, 2 replies; 109+ messages in thread
From: Wojtek Narczynski @ 2002-12-24 22:56 UTC (permalink / raw)


Bill Findlay <yaldnifw@blueyonder.co.uk> wrote in message news:<BA2E6605.168E%yaldnifw@blueyonder.co.uk>...
> On 23/12/02 20:15, in article
> 5ad0dd8a.0212231215.6ae81bf7@posting.google.com, "Wojtek Narczynski"
> <wojtek@power.com.pl> wrote:
> 
> > Bill Findlay <yaldnifw@blueyonder.co.uk> wrote in message
> > news:<BA2CCA4B.1617%yaldnifw@blueyonder.co.uk>...
> >> On 23/12/02 11:52, in article
> >> 5ad0dd8a.0212230352.11f8b886@posting.google.com, "Wojtek Narczynski"
> >> <wojtek@power.com.pl> wrote:
> >> 
> >>> Well, if you asked them, "Where does 'new' allocate memory?", 50%
> >>> would answer "stack", 45% - "heap", 5% would give you the correct
> >>> answer. At least this is the result I get with graduates that claim
> >>> that they know C++.
> >> 
> >> What is the relevance to beginners in Ada of your experience with
> >> graduates who 'know' C++ and are confused about it (unsurprisingly)?
> >> This is a strange basis for claiming that *Ada* is difficult!
> >> (Especially since the C++ answer is different from the Ada answer.)
> > 
> > Bill,
> > 
> > You may have not noticed that this question also applies to Ada, but
> > the answer is even harder than in C++.
> 
> Wojtek, we are talking about beginners here.
> 
> C++ beginners just *might* have to learn about placement new,
> to let them do things that are trivially easy in Ada;
> but, never having taught C++ to beginners, I could be wrong.
> 
> Ada beginners do not have any need to learn about storage pools
> (if their instructor is sane at ay rate).

Bill,

Looks like Ada is hard for me because I am a too curious and
impatient. All those generic formal parameters and levels of generic
instantiation, storage pools, requeues, task dependencies,
discriminants, unchecked conversions, freezing and finally some
syntactic weirdness that can only be explained with the evolution of
the standard in time, is too much for somebody coming from Java world.

Thanks for your time,
Wojtek



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2002-12-24 22:56             ` Wojtek Narczynski
@ 2002-12-24 23:31               ` Bill Findlay
  2002-12-24 23:36               ` Adrian Knoth
  1 sibling, 0 replies; 109+ messages in thread
From: Bill Findlay @ 2002-12-24 23:31 UTC (permalink / raw)


On 24/12/02 22:56, in article
5ad0dd8a.0212241456.502b994@posting.google.com, "Wojtek Narczynski"
<wojtek@power.com.pl> wrote:
>> Ada beginners do not have any need to learn about storage pools
>> (if their instructor is sane at ay rate).
> 
> Bill,
> 
> Looks like Ada is hard for me because I am a too curious and
> impatient. All those generic formal parameters and levels of generic
> instantiation, storage pools, requeues, task dependencies,
> discriminants, unchecked conversions, freezing and finally some

And this has - what? - to do with beginners to programming?

> syntactic weirdness that can only be explained with the evolution of
> the standard in time, is too much for somebody coming from Java world.

An advocate of Java is on thin ice when complaining of evolving standards
and syntactic weirdness in other languages.

> Thanks for your time,

Well, you've had all of it that you are going to get.
Merry Xmas.

-- 
Bill-Findlay chez blue-yonder.co.uk ("-" => "")




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2002-12-24 22:56             ` Wojtek Narczynski
  2002-12-24 23:31               ` Bill Findlay
@ 2002-12-24 23:36               ` Adrian Knoth
  1 sibling, 0 replies; 109+ messages in thread
From: Adrian Knoth @ 2002-12-24 23:36 UTC (permalink / raw)


Wojtek Narczynski <wojtek@power.com.pl> wrote:

> Looks like Ada is hard for me because I am a too curious and
> impatient. All those generic formal parameters and levels of generic
> instantiation, storage pools, requeues, task dependencies,
> discriminants, unchecked conversions, freezing and finally some
> syntactic weirdness that can only be explained with the evolution of
> the standard in time, is too much for somebody coming from Java world.

By putting some emphasis to the last two words can we judge this
paragraph as "Java is a very limited language"? :) SCNR


-- 
mail: adi@thur.de  	http://adi.thur.de	PGP: v2-key via keyserver

Bei "Megatitten" erwartet ja auch niemand, dass die Dame da 1 Mio. St�ck
von hat.                (Ralph Angenendt zur KiB/KB-SI-Einheiten-Diskussion)



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-24 14:01 ` W D Tate
  2002-12-24 20:06   ` Rod Haper
@ 2002-12-25  0:37   ` noone
  2002-12-26 13:23     ` W D Tate
  1 sibling, 1 reply; 109+ messages in thread
From: noone @ 2002-12-25  0:37 UTC (permalink / raw)


On 24 Dec 2002 06:01:00 -0800, billtate@usermail.com (W D Tate) wrote:
> How much money are you prepared to flush down the toilet on
>such activities as debugging or trying to decipher something conceived
>by a kid named Garth?
>
>If that's appealing to you then by all means take the C/C++ route, 

In my experience, there are a lot of libraries available for C/C++
that the only counterpart for Ada (often only a binding to the C/C++
library) was, um, "conceived by a kid named Garth".

>the
>historical evidence points to a good probability that a state of
>entropy will have firmly set in by the 2nd or 3rd generation of your
>product.  

Does historical evidence really make much distinction between
languages here? Ada makes "you are not supposed to understand this"
parts less likely, but it won't eliminate them, nor will it make well
designed, named and commented functions and variables. (Ada wouldn't
have stopped the original "you are not supposed to understand this"
comment; according to the writings of one of Unix's creators, the only
thing that would have stopped that would have been actually fully
understanding what they were doing there.)




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-24  0:46               ` Robert A Duff
  2002-12-24  9:41                 ` Pascal Obry
@ 2002-12-25  4:43                 ` faust
  2002-12-27 17:54                   ` Warren W. Gay VE3WWG
  2002-12-25  7:24                 ` AG
  2003-01-02 13:47                 ` Wes Groleau
  3 siblings, 1 reply; 109+ messages in thread
From: faust @ 2002-12-25  4:43 UTC (permalink / raw)


  
>it would start a silly flame war.  (Didn't Dijkstra's also say teaching
>BASIC should require a prison sentence?  Or was that some other
>language?  

""The use of COBOL cripples the mind; its teaching should, therefore,
be regarded as a criminal offense."
Edsger Dijkstra "

>One should learn *many* programming languages, if one is serious about
>programming.  But one should not start with BASIC (or C, or assembly).

I plan to teach my 12 year old son to program.
I am vacillating between Ada and Scheme.
I'll probably go with Scheme since there is an excellent and powerful
free envirnoment for it ( Dr Scheme ) 

--------------------------------------------------------
Come see,
real flowers
of this pain-filled world.

(from Basho)



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-24  0:46               ` Robert A Duff
  2002-12-24  9:41                 ` Pascal Obry
  2002-12-25  4:43                 ` faust
@ 2002-12-25  7:24                 ` AG
  2003-01-02  9:56                   ` John McCabe
  2003-01-02 13:47                 ` Wes Groleau
  3 siblings, 1 reply; 109+ messages in thread
From: AG @ 2002-12-25  7:24 UTC (permalink / raw)



"Robert A Duff" <bobduff@shell01.TheWorld.com> wrote in message
news:wccfzso9rbb.fsf@shell01.TheWorld.com...

> One should learn *many* programming languages, if one is serious about
> programming.  But one should not start with BASIC (or C, or assembly).

I agree with the rest of the [snipped] post. But, why not assembly?
After all, it does allow a person to try and experiment with any
programming approach physically possible on the target system.

Sure, using assembly for any sort of production or even student
work these days may be impractical, but we're talking about
learning here, correct?

So, assuming assembly does allow you to address a small problem
at hand, what's wrong with that as a learning tool?

And [to be a little bit naughty :)]  isn't it true that the people who
developed the higher-level languages originaly started in assembly,
if not downright machine binary code, some time back in the past?





^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2002-12-24 19:29           ` Bill Findlay
  2002-12-24 22:56             ` Wojtek Narczynski
@ 2002-12-25  8:23             ` Hyman Rosen
  2002-12-27 17:27               ` Kevin Cline
  1 sibling, 1 reply; 109+ messages in thread
From: Hyman Rosen @ 2002-12-25  8:23 UTC (permalink / raw)


Bill Findlay wrote:
> C++ beginners just *might* have to learn about placement new,
> to let them do things that are trivially easy in Ada;

What's the Ada equivalent? Is it something like

     for v'address use (some expression)

C++ "placement new" is somewhat more general - it's a way of
passing parameters to (and thereby also selecting by overload
resolution) a storage allocator. But it is trivially easy to
use - it looks something like

     Type *ptr = new(ap1, ap2, ap3) Type(tp1, tp2, tp3);

The apn arguments are passed to the allocator selected by
overload resolution on them, and the tpn arguments are then
passed to the constructor of Type, which is built in the
space returned by the allocator.

I don't think beginners need to learn about this, though.




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-25  0:37   ` noone
@ 2002-12-26 13:23     ` W D Tate
  2002-12-26 20:37       ` David Starner
  0 siblings, 1 reply; 109+ messages in thread
From: W D Tate @ 2002-12-26 13:23 UTC (permalink / raw)


> In my experience, there are a lot of libraries available for C/C++
> that the only counterpart for Ada (often only a binding to the C/C++
> library) was, um, "conceived by a kid named Garth".

Suffice it to say that I'm referring to the mentality that says the
hack/debug is a perfectly fine expression of creativity especially
when its not your money you spending (aka wasting).  It's that form of
discipline I wish to discourage.  Methinks there are far too many of
these folks running around.

> Does historical evidence really make much distinction between
> languages here?  

Not always, but I also don't think I'm out on a limb alone on my
original assertion either.



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-26 13:23     ` W D Tate
@ 2002-12-26 20:37       ` David Starner
  2002-12-27 14:02         ` W D Tate
  0 siblings, 1 reply; 109+ messages in thread
From: David Starner @ 2002-12-26 20:37 UTC (permalink / raw)


On 26 Dec 2002 05:23:59 -0800, billtate@usermail.com (W D Tate) wrote:
> It's that form of
>discipline I wish to discourage.  Methinks there are far too many of
>these folks running around.

But you aren't going to escape it by going to Ada - you can program
that way in any language, excluding the most evil. In many cases, you
will be going from a carefully designed and debugged library in C/C++
to the same library, but with a quickly written binding between you. 




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-26 20:37       ` David Starner
@ 2002-12-27 14:02         ` W D Tate
  0 siblings, 0 replies; 109+ messages in thread
From: W D Tate @ 2002-12-27 14:02 UTC (permalink / raw)


David Starner <starner@okstate.edu> wrote in message news:<3vpm0v8j05v3k07qarh8aa7ac5op0utqh9@4ax.com>...
> >discipline I wish to discourage.  Methinks there are far too many of
> >these folks running around.
> 
> But you aren't going to escape it by going to Ada - you can program
> that way in any language, excluding the most evil.... 

I agree but the one's that want "full license" to express their
creative juices don't tend to think "Ada" as their first choice.  I
rather work with the one's that think Ada first, second and last.

>In many cases, you
> will be going from a carefully designed and debugged library in C/C++
> to the same library, but with a quickly written binding between you.

I don't have any issues with Ada wrappers around "good" C/C++ code.



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2002-12-25  8:23             ` Hyman Rosen
@ 2002-12-27 17:27               ` Kevin Cline
  2002-12-28  1:56                 ` Bill Findlay
  0 siblings, 1 reply; 109+ messages in thread
From: Kevin Cline @ 2002-12-27 17:27 UTC (permalink / raw)


Hyman Rosen <hyrosen@mail.com> wrote in message news:<7WdO9.115704$4W1.35198@nwrddc02.gnilink.net>...
> Bill Findlay wrote:
> > C++ beginners just *might* have to learn about placement new,
> > to let them do things that are trivially easy in Ada;
> 
> What's the Ada equivalent? Is it something like
> 
>      for v'address use (some expression)
> 
> C++ "placement new" is somewhat more general - it's a way of
> passing parameters to (and thereby also selecting by overload
> resolution) a storage allocator. But it is trivially easy to
> use - it looks something like
> 
>      Type *ptr = new(ap1, ap2, ap3) Type(tp1, tp2, tp3);
> 
> The apn arguments are passed to the allocator selected by
> overload resolution on them, and the tpn arguments are then
> passed to the constructor of Type, which is built in the
> space returned by the allocator.
> 
> I don't think beginners need to learn about this, though.

With the STL it's possible to write a lot of interesting
and efficient C++ code without using new at all.



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-25  4:43                 ` faust
@ 2002-12-27 17:54                   ` Warren W. Gay VE3WWG
  2003-01-02 13:50                     ` Wes Groleau
  0 siblings, 1 reply; 109+ messages in thread
From: Warren W. Gay VE3WWG @ 2002-12-27 17:54 UTC (permalink / raw)


faust wrote:
>>it would start a silly flame war.  (Didn't Dijkstra's also say teaching
>>BASIC should require a prison sentence?  Or was that some other
>>language?  
> 
> ""The use of COBOL cripples the mind; its teaching should, therefore,
> be regarded as a criminal offense."
> Edsger Dijkstra "

I don't believe that Dijkstra had much nice to say about any
language, including the predecessor to Ada.

For my $0.02, I don't think it really matters what they start in.
It is true however, that early experience _can_ be habit forming,
but this does not necessarily mean the result is predetermined.

I think that being "self taught" can be one of the limiting
factors however. If no one ever pushed you in the direction
of Ada, you might never see the reason why it was worth the
effort. This is where you need a selling job to be done, and
on top of that, the beginner's experience needs to be smoother
than it currently is.

The sad reality is (for beginners) is that if it is hard to use,
and you see no "benefit for me" in this difficulty, then you'll
stick with what you know, or try something else.

>>One should learn *many* programming languages, if one is serious about
>>programming.  But one should not start with BASIC (or C, or assembly).
> 
> I plan to teach my 12 year old son to program.
> I am vacillating between Ada and Scheme.
> I'll probably go with Scheme since there is an excellent and powerful
> free envirnoment for it ( Dr Scheme ) 
...
> (from Basho)

Like writing a book, you must "know your audience". If I ever
attempted to teach Ada to my teen-aged daughter, her eyes would
just glaze over and she would say "sure, dad!"

Yet she was able to learn a "tich" of programming by using Qbasic
that was shipped free with Windows95 (you have to hunt for it on
the CD and install it manually). There QBasic acted as both the
run environment and the IDE for her, keeping things very simple.

She'll not likely ever become a professional, but at least she
has some concept now of how things work.

Now your response might be that I did a poor job of selling Ada
to her, and I'd have to say you were right. But how do you sell
difficult concepts to a young audience that is already numbed by
the complexity of the computer world as they initially see it?
Even we get "numbed" by it, ourselves (or I get increasingly
numbed as I age each new year ;-) )

What concerns me much more is that when she graduated from high
school, only 2 out of 260 kids announced that they were going to
persue a career in computer science/programming. I expect that
out of those 2, at least one of them will quickly want to move
into management.  Who then, over the next decade, is going to do
all the grunt work of programming? Maybe this sample is not
representative of the trend, but I find this statistical
sample rather disturbing. :-(

-- 
Warren W. Gay VE3WWG
http://home.cogeco.ca/~ve3wwg




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2002-12-23 14:40           ` Wes Groleau
@ 2002-12-27 21:25             ` Randy Brukardt
  0 siblings, 0 replies; 109+ messages in thread
From: Randy Brukardt @ 2002-12-27 21:25 UTC (permalink / raw)


Wes Groleau wrote in message ...
>
>> Beginners to programming have a great deal of detail to absorb.
>> They do not need to be burdened by learning merely contingent
>> factoids, such as how to operate the not-necessarily-intuitive
>> user interface of an IDE. They do need an effortless text editor,
>
>Especially not one like JBuilder (and every other GUI builder
>I have ever seen) that not only generates code for you, but
>generates really BAD code (from a readability/maintainability
>perspective).


That was one of the goals of the Claw Builder: to generate readable Ada
code for the GUI. I think we've come reasonably close. A big help to
readability is that the Claw Builder allows the programmer to chose the
identifier names for items. In most cases, the Claw Builder generates
the same code that I would have written by hand. (There are some things
I would do differently today, but nothing major). The only real lack is
that there are no application-specific comments -- but those aren't
usually needed in the GUI. (User-defined code is built with their own
GUI and accessed by subprogram calls. We didn't want to try to write a
complete IDE in the Claw Builder.)

                   Randy Brukardt.






^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2002-12-27 17:27               ` Kevin Cline
@ 2002-12-28  1:56                 ` Bill Findlay
  2002-12-28  2:13                   ` Bill Findlay
  2002-12-29  6:07                   ` Hyman Rosen
  0 siblings, 2 replies; 109+ messages in thread
From: Bill Findlay @ 2002-12-28  1:56 UTC (permalink / raw)


"Kevin Cline" <kcline17@hotmail.com> wrote:

> Hyman Rosen <hyrosen@mail.com> wrote in message
> news:<7WdO9.115704$4W1.35198@nwrddc02.gnilink.net>...
>> Bill Findlay wrote:
>>> C++ beginners just *might* have to learn about placement new,
>>> to let them do things that are trivially easy in Ada;
>> 
>> What's the Ada equivalent? Is it something like
>> 
>>      for v'address use (some expression)

Yes, for the placement pure and simple.

What I really had in mind was using it with the additional
mechanisms Hyman mentions below ...

>> C++ "placement new" is somewhat more general - it's a way of
>> passing parameters to (and thereby also selecting by overload
>> resolution) a storage allocator.
[snip]
>> I don't think beginners need to learn about this, though.

... specifically to create local (i.e. not heap) dynamic arrays.
As I said, I don't know whether C++ beginners need to do that.

Declaring dynamic local arrays in Ada 95 is trivial, of course.

> 
> With the STL it's possible to write a lot of interesting
> and efficient C++ code without using new at all.

I realize that "arrays are evil" (and how!) in C++,
and that using the STL would normally be preferred.

-- 
Bill-Findlay chez blue-yonder.co.uk ("-" => "")




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2002-12-28  1:56                 ` Bill Findlay
@ 2002-12-28  2:13                   ` Bill Findlay
  2002-12-29  6:07                   ` Hyman Rosen
  1 sibling, 0 replies; 109+ messages in thread
From: Bill Findlay @ 2002-12-28  2:13 UTC (permalink / raw)


On 28/12/02 01:56, in article BA32B53B.16E8%yaldnifw@blueyonder.co.uk, "Bill
Findlay" <yaldnifw@blueyonder.co.uk> wrote:

> "Kevin Cline" <kcline17@hotmail.com> wrote:
> 
>> Hyman Rosen <hyrosen@mail.com> wrote in message
>> news:<7WdO9.115704$4W1.35198@nwrddc02.gnilink.net>...
>>> Bill Findlay wrote:
>>>> C++ beginners just *might* have to learn about placement new,
>>>> to let them do things that are trivially easy in Ada;
>>> 
>>> What's the Ada equivalent? Is it something like
>>> 
>>>      for v'address use (some expression)
> 
> Yes, for the placement pure and simple.

Oops! I should have been more clear ...

> What I really had in mind was using it with the additional
> mechanisms Hyman mentions below ...
>
>>> C++ "placement new" is somewhat more general - it's a way of
>>> passing parameters to (and thereby also selecting by overload
>>> resolution) a storage allocator.

... you would do this (^) kind of thing with storage pools in Ada 95.

-- 
Bill-Findlay chez blue-yonder.co.uk ("-" => "")




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2002-12-28  1:56                 ` Bill Findlay
  2002-12-28  2:13                   ` Bill Findlay
@ 2002-12-29  6:07                   ` Hyman Rosen
  1 sibling, 0 replies; 109+ messages in thread
From: Hyman Rosen @ 2002-12-29  6:07 UTC (permalink / raw)


Bill Findlay wrote:
> ... specifically to create local (i.e. not heap) dynamic arrays.
> As I said, I don't know whether C++ beginners need to do that.

I've never actually seen placement new used for this. After all,
in C++, how would you get the local storage in which to place the
object? There are two common uses for placement new that I'm aware
of. One looks like new(nothrow)Type, and selects a storage allocator
which returns null if it can not allocate the requested memory (the
default one throws an exception when this happens). The other looks
like new(pointer)Type, and that allocator simply returns its argument,
which must be properly aligned and sized storage for holding the
object (and this latter one is like Ada's for x'address use).

That second form decouples allocation of storage from initialization
of objects. It's not used often in user code, but figures heavily in
some library implementation code. For example, std::vector maintains
a size and a capacity. The former represents the number of elements
being held in the vector, and the latter represents the amount of
storage available. While capacity exceeds storage, new elements are
appended to the vector by using placement new to put them in the
unused space.




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-24  0:50     ` Craig Carey
@ 2002-12-29 14:44       ` Colin Paul Gloster
  0 siblings, 0 replies; 109+ messages in thread
From: Colin Paul Gloster @ 2002-12-29 14:44 UTC (permalink / raw)


In article news:kf8f0vgs5fj08vkgtkg2juq5d2rcgjqr0g@4ax.com Craig Carey
said:
"[..] Sun Microsystems maybe is a leader in bug concealment. [..]"

It is quite clear that bugs contribute to how many of Sun's own API
methods and classes are deprecated by Sun.



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-23 18:24       ` David Wright
  2002-12-23 19:16         ` sk
  2002-12-23 21:30         ` Wes Groleau
@ 2002-12-30 16:22         ` Mark
  2 siblings, 0 replies; 109+ messages in thread
From: Mark @ 2002-12-30 16:22 UTC (permalink / raw)




On Tue, 24 Dec 2002, David Wright wrote:

>
> "sk" <sk@noname.com> wrote in message
> news:mailman.1040664961.4038.comp.lang.ada@ada.eu.org...
> > wesgroleau@despammed.com:
> >  > He professes to be a beginner, and yet he has enough
> >  > insight to see that C, C++, and Java invite "buggy
> >  > frustration"  :-)
> >
> > Yes, I sensed a touch of fishing in the OP hence the
> > "antisocial" comments.
>
> > Since you profess to being a beginner
> >
>
>
> Mom used to say, "If you can't say anything nice..."
>
> I said I was a beginner to programming; I didn't say I was brain dead or
> illiterate. It doesn't take Mensa affiliate to read the C, C++, Java
> newsgroups and see that beginners are soon befuddled by non-intuitive
> syntactical clutter and compiler catastrophes.
>
> This was precisely the purpose of my original post - to see if the Ada
> language and community was a congenial place to commit to my learning curve,
> yet it's precisely your sort of undergraduate snottiness that puts visitors
> off. Happily, I've found that there are some inspiring adults here,
> possessed of a generous spirit.  Read and learn boys since I assume from
> your tone that you both must be about 15 years old.
>
> David Wright
>
>
>
>

Well, lets see, I have recently taken up ada and with the reading of a
small text called "Ada as a second language" I cant say I have had much of
a problem taking it up. If you have enough brain power to read around that
which is not immediatly clear then I cannot personally see why you would
have any difficulty whatsoever.

If you can understand "programming" as a whole you wont have any
difficulty picking up the majority of languages out there.

just my t'pence worth.

Mark




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-25  7:24                 ` AG
@ 2003-01-02  9:56                   ` John McCabe
  0 siblings, 0 replies; 109+ messages in thread
From: John McCabe @ 2003-01-02  9:56 UTC (permalink / raw)


On Tue, 24 Dec 2002 23:24:02 -0800, "AG" <ang@xtra.co.nz> wrote:

>I agree with the rest of the [snipped] post. But, why not assembly?
>After all, it does allow a person to try and experiment with any
>programming approach physically possible on the target system.

>So, assuming assembly does allow you to address a small problem
>at hand, what's wrong with that as a learning tool?

Assuming you *are* being serious, assembly language is wrong as a
learning tool because it is device dependent and you would more than
likely end up learning more about the device itself than the general
techniques of programming. 

Best Regards
John McCabe

To reply by email replace 'nospam' with 'assen'



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2002-12-22 14:40   ` Bill Findlay
                       ` (2 preceding siblings ...)
  2002-12-23 20:07     ` chris.danx
@ 2003-01-02 10:04     ` John McCabe
  2003-01-02 21:32       ` Bill Findlay
  3 siblings, 1 reply; 109+ messages in thread
From: John McCabe @ 2003-01-02 10:04 UTC (permalink / raw)


On Sun, 22 Dec 2002 14:40:45 +0000, Bill Findlay
<yaldnifw@blueyonder.co.uk> wrote:

>On 21/12/02 10:51, in article
>5ad0dd8a.0212210251.63b87aba@posting.google.com, "Wojtek Narczynski"
><wojtek@power.com.pl> wrote:
>
>> David,
>> 
>> The advantage of starting in Ada is that you won't acquire bad habits.
>> This is really important.
>> The disadvantage is is that Ada is difficult. Some people may tell you
>> otherwise, they are geniuses creating software for devices that fly to
>> cosmos for a few years now.
>
>400 not-especially-endowed-with-genius CS1 students have
>learned to program using Ada 95 at Glasgow University
>every year since 1996.

Coming from the (presumably) the bloke who co-wrote one of the
definitive Pascal manuals of the late '70s, early '80s, I would
suggest this is quite an endorsement for Ada over Pascal.

For what it's worth, I was taught Pascal at Glasgow University in
around 1983 (as part of an Electronics Engineering degree).

Best Regards
John McCabe

To reply by email replace 'nospam' with 'assen'



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-24  0:46               ` Robert A Duff
                                   ` (2 preceding siblings ...)
  2002-12-25  7:24                 ` AG
@ 2003-01-02 13:47                 ` Wes Groleau
  2003-01-08 19:39                   ` faust
  3 siblings, 1 reply; 109+ messages in thread
From: Wes Groleau @ 2003-01-02 13:47 UTC (permalink / raw)



>>Remember what Dijkstra said:
>>"It is practically impossible to teach good programming style to
>>students that have had prior exposure to BASIC; as potential
>>programmers they are mentally mutilated beyond hope of regeneration."
>>( Professor Edsger Dijkstra )
> 
> I don't much like Dijkstra's style.  I mean, if you're trying to
> convince someone who only knows BASIC that there are better languages,
> the above hyperbole would just annoy the person.  If usenet had existed,
> it would start a silly flame war.  (Didn't Dijkstra's also say teaching
> BASIC should require a prison sentence?  Or was that some other

Dijkstra was also the guy who condemned various features of
Ada--features that have since been shown to be very valuable.
And finished his comments by accusing the designers of
incompetence and dishonesty.




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-27 17:54                   ` Warren W. Gay VE3WWG
@ 2003-01-02 13:50                     ` Wes Groleau
  0 siblings, 0 replies; 109+ messages in thread
From: Wes Groleau @ 2003-01-02 13:50 UTC (permalink / raw)



> It is true however, that early experience _can_ be habit forming,
> but this does not necessarily mean the result is predetermined.

Indeed.  I started with BASIC, both on PDP-8 and on TRS-80.
It was _such_ a pain that I did nothing serious until Pascal
came along.




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to   programming
  2003-01-02 10:04     ` John McCabe
@ 2003-01-02 21:32       ` Bill Findlay
  2003-01-04 22:55         ` David Wright
  2003-01-06 10:05         ` John McCabe
  0 siblings, 2 replies; 109+ messages in thread
From: Bill Findlay @ 2003-01-02 21:32 UTC (permalink / raw)


On 2/1/03 10:04, in article 3e140e05.3654845@news.demon.co.uk, "John McCabe"
<john@nospam.demon.co.uk> wrote:

> On Sun, 22 Dec 2002 14:40:45 +0000, Bill Findlay
> <yaldnifw@blueyonder.co.uk> wrote:

>> 400 not-especially-endowed-with-genius CS1 students have
>> learned to program using Ada 95 at Glasgow University
>> every year since 1996.
> 
> Coming from the (presumably) the bloke who co-wrote one of the
> definitive Pascal manuals of the late '70s, early '80s, I would

C'est moi. (Blushes.)

> suggest this is quite an endorsement for Ada over Pascal.

Ada is easier for beginners than Pascal, because its syntax and semantics
are much more consistent. In fact, it's just a better language, full stop.
The Hoare/Dijkstra barb about Pascal being an improvement on its successors
is nonsense. Hoare's list (in "The Emperor's Old Clothes") of the supposed
advantages of Pascal can be seen, in retrospect, as a catalogue of the
reasons for Pascal's demise.

> For what it's worth, I was taught Pascal at Glasgow University in
> around 1983 (as part of an Electronics Engineering degree).

It took ten years for EE to switch from FORTRAN to Pascal. Fifteen years
further on, when CS adopted Ada 95, they tried to take EE with them, but
without success. AFAIK they are still stuck with Pascal. (In fairness to EE,
they did see through C, and did not want it taught to their beginners.)

It was interesting to stand in the lab and watch CS (Ada) and EE (Pascal)
beginners working side by side. One day, about week 6 of term, the CS
students (using GNAT and AdaGraph) had nearly all successfully written a
program that animated balls bouncing around in a box. The EE students (using
Turbo) were nearly all grappling unsuccessfully with a trivial text-oriented
read-process-output loop.

-- 
Bill-Findlay chez blue-yonder.co.uk ("-" => "")





^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2003-01-02 21:32       ` Bill Findlay
@ 2003-01-04 22:55         ` David Wright
  2003-01-05  0:50           ` Bill Findlay
  2003-01-06 10:05         ` John McCabe
  1 sibling, 1 reply; 109+ messages in thread
From: David Wright @ 2003-01-04 22:55 UTC (permalink / raw)



"Bill Findlay" <yaldnifw@blueyonder.co.uk> wrote in
message
news:BA3A5BF1.177F%yaldnifw@blueyonder.co.uk...:


: It was interesting to stand in the lab and watch CS
(Ada) and EE (Pascal)
: beginners working side by side. One day, about week 6
of term, the CS
: students (using GNAT and AdaGraph) had nearly all
successfully written a
: program that animated balls bouncing around in a box.
The EE students (using
: Turbo) were nearly all grappling unsuccessfully with
a trivial text-oriented
: read-process-output loop.
:


Hi Bill,

You've convinced me; but the CS students (using GNAT
and AdaGraph) were enrolled in a formal course and
could be streamed in interesting graphical directions
(balls bouncing in a box) by an all-knowing mentor.

How can the self-learner find such interesting
graphical programming projects in Ada?

NB!! Is there a particular text that you would
recommend for this particular ball/box exercise and
similarly engaging graphical forays?

Incidentally, graphics programming is immediately
engaging for a beginner for obvious reasons. Until I
saw your post I was leaning strongly toward committing
to LogoMation (NOT LOGO!!), an extremely user friendly
and immediately accessible environment for both
learning to program generally and programming animated
graphics for display on web pages. You may know the
software already. If not, the site is:

http://www.magicsquare.com

There is a fully functional downloadble IDE and the
Introductory Tutorials and Reference Manual are
excellent.

This is not a plug for LM and I would like to stay with
Pascal or Ada if I can get to grips with some exercises
that inject some colour and fun into the process of
learning (e.g., the ball/box graphics exercises).

Can you help?

Thanks again, in advance.

David





^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2003-01-04 22:55         ` David Wright
@ 2003-01-05  0:50           ` Bill Findlay
  2003-01-05  2:18             ` David Wright
  0 siblings, 1 reply; 109+ messages in thread
From: Bill Findlay @ 2003-01-05  0:50 UTC (permalink / raw)


On 4/1/03 22:55, in article av7olt$gh9$1@bunyip.cc.uq.edu.au, "David Wright"
<davidw@uq.net.au> wrote:

> 
> "Bill Findlay" <yaldnifw@blueyonder.co.uk> wrote in message
> news:BA3A5BF1.177F%yaldnifw@blueyonder.co.uk...:
> 
> : It was interesting to stand in the lab and watch CS (Ada) and EE (Pascal)
> : beginners working side by side. One day, about week 6 of term, the CS
> : students (using GNAT and AdaGraph) had nearly all successfully written a
> : program that animated balls bouncing around in a box. The EE students (using
> : Turbo) were nearly all grappling unsuccessfully with a trivial text-oriented
> : read-process-output loop.
>
> Hi Bill,
> 
> You've convinced me; but the CS students (using GNAT
> and AdaGraph) were enrolled in a formal course ...

So were the EE students.
In fact, they were enrolled in a programming module taught by CS.
(I was not teaching either group BTW).

But I don't want to make too much of this.
Certainly there were other significant differences between the groups that
accounted for much of the disparity, but I'm quite sure the EE group would
have made better progress with the easier language (i.e. Ada).
That's the irony.

> How can the self-learner find such interesting
> graphical programming projects in Ada?

Well there is nothing Ada-specific about them.
The same exercise could have been done in Pascal.

> NB!! Is there a particular text that you would
> recommend for this particular ball/box exercise and
> similarly engaging graphical forays?

I'm not a graphics expert, so I would just look to a basic computer graphics
text as a source of ideas. Others may be offer a more concrete suggestion.
Why not look at LOGO and LogoMotion(?) to see what's done there & try to
reproduce it?

> Incidentally, graphics programming is immediately
> engaging for a beginner for obvious reasons.

So is audio (especially music) processing, although the APIs are not well
supported in beginner-friendly software.

> This is not a plug for LM and I would like to stay with
> Pascal or Ada if I can get to grips with some exercises
> that inject some colour and fun into the process of
> learning (e.g., the ball/box graphics exercises).

If you are using GNAT on a Wintel system, all you need to get going is the
AdaGIDE IDE and the AdaGraph library package (and some neat ideas 8-).

-- 
Bill-Findlay chez blue-yonder.co.uk ("-" => "")




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2003-01-05  0:50           ` Bill Findlay
@ 2003-01-05  2:18             ` David Wright
  2003-01-05  3:57               ` John R. Strohm
  2003-01-06  9:43               ` John McCabe
  0 siblings, 2 replies; 109+ messages in thread
From: David Wright @ 2003-01-05  2:18 UTC (permalink / raw)



"Bill Findlay" <yaldnifw@blueyonder.co.uk> wrote in
message news:BA3D31C9.1840%yaldnifw@blueyonder.co.uk...
: On 4/1/03 22:55, in article
av7olt$gh9$1@bunyip.cc.uq.edu.au, "David Wright"
: <davidw@uq.net.au> wrote:
:
: >
: > "Bill Findlay" <yaldnifw@blueyonder.co.uk> wrote in
message
: > news:BA3A5BF1.177F%yaldnifw@blueyonder.co.uk...:
: >
: > : It was interesting to stand in the lab and watch
CS (Ada) and EE (Pascal)
: > : beginners working side by side. One day, about
week 6 of term, the CS
: > : students (using GNAT and AdaGraph) had nearly all
successfully written a
: > : program that animated balls bouncing around in a
box. The EE students (using
: > : Turbo) were nearly all grappling unsuccessfully
with a trivial text-oriented
: > : read-process-output loop.
: >
: > Hi Bill,
: >
: > You've convinced me; but the CS students (using
GNAT
: > and AdaGraph) were enrolled in a formal course ...
:
: So were the EE students.
: In fact, they were enrolled in a programming module
taught by CS.
: (I was not teaching either group BTW).
:
: But I don't want to make too much of this.
: Certainly there were other significant differences
between the groups that
: accounted for much of the disparity, but I'm quite
sure the EE group would
: have made better progress with the easier language
(i.e. Ada).
: That's the irony.
:
: > How can the self-learner find such interesting
: > graphical programming projects in Ada?
:
: Well there is nothing Ada-specific about them.
: The same exercise could have been done in Pascal.
:
: > NB!! Is there a particular text that you would
: > recommend for this particular ball/box exercise and
: > similarly engaging graphical forays?
:
: I'm not a graphics expert, so I would just look to a
basic computer graphics
: text as a source of ideas. Others may be offer a more
concrete suggestion.
: Why not look at LOGO and LogoMotion(?) to see what's
done there & try to
: reproduce it?


++++++++++++++++++++++++++++++++++++++++++++++++++

** LogoMATion! You're thinking of the 70's dance hit
LocoMOTion! 8-) **

Do look at the site when you're not in so much of a
hurry. I
guarantee you'll be impressed by its potential (if not
by the clunky site design).

Yes, good idea about reproduction in Ada. Discovery
learning.

++++++++++++++++++++++++++++++++++++++++++++++++++

:
: > Incidentally, graphics programming is immediately
: > engaging for a beginner for obvious reasons.
:
: So is audio (especially music) processing, although
the APIs are not well
: supported in beginner-friendly software.
:
: > This is not a plug for LM and I would like to stay
with
: > Pascal or Ada if I can get to grips with some
exercises
: > that inject some colour and fun into the process of
: > learning (e.g., the ball/box graphics exercises).
:
: If you are using GNAT on a Wintel system, all you
need to get going is the
: AdaGIDE IDE and the AdaGraph library package (and
some neat ideas 8-).



+++++++++++++++++++++++++++++++++++++++++++++++++++

I've downloaded the Aonix Object Ada IDE, which seems
very cool on first impression. I haven't looked at its
graphics potential yet, but I imagine I can do some
interesting graphical things with this software. It
has, among its online helpfile texts, a complete
version of the famous "Ada 95 Problem Solving and
Program Design" M. B. Feldman and E. B. Koffman. So
there is much to be getting on with.

I think that the difficulty is being paralysed by too
many options. When you're self-learning, especially
when it's a hobby, there's no compulsion or even
pressure to adopt any particular programming language
and, because each language camp claims to be 'better
than...', it's relatively easy (for me, at least) to be
seduced away from a prior commitment. It's like being
stuck in dating mode when one's peers have mortgages
and 2 kids. That's why it's important to get some
feedback early on (producing cool, fun things) that one
has made a good choice and that's the language chosen
is worth persisting with.

For example, a very recent newbie post in
comp.programming, asking about which language to start
with, received a reply suggesting Common Lisp! How
ridiculous! A beginning programmer and Lisp! Where are
the *beginner* resources for such a language. Of
course, it's possible - anything is, but I think
experienced programmers forget what a *newcomer* needs
to stay motivated. Sure, Lisp as a second programming
language, but for heavens sake!

I'm risking straying far from the issue so I'll
terminate here.

Bill, thanks again. I really appreciate the lack of
hype in your messages. It kind of adds to your
credibility, if you know what I mean.

David
Down with one-eyed language evangelists and other
misleading sprookers

++++++++++++++++++++++++++++++++++++++++++++++++++++








^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2003-01-05  2:18             ` David Wright
@ 2003-01-05  3:57               ` John R. Strohm
  2003-01-10  2:51                 ` Richard Riehle
  2003-01-06  9:43               ` John McCabe
  1 sibling, 1 reply; 109+ messages in thread
From: John R. Strohm @ 2003-01-05  3:57 UTC (permalink / raw)



"David Wright" <davidw@uq.net.au> wrote in message
news:av84j8$lef$1@bunyip.cc.uq.edu.au...
> For example, a very recent newbie post in
> comp.programming, asking about which language to start
> with, received a reply suggesting Common Lisp! How
> ridiculous! A beginning programmer and Lisp! Where are
> the *beginner* resources for such a language. Of
> course, it's possible - anything is, but I think
> experienced programmers forget what a *newcomer* needs
> to stay motivated. Sure, Lisp as a second programming
> language, but for heavens sake!

Common LISP is not such a good choice: it is baroque and barnacle-encrusted.
Scheme, on the other hand, is small, clean, and a quite reasonable choice
for a first language.

MIT uses Scheme in the first-semester freshman programming course.  See
"Structure and Interpretation of Computer Programs", by Abelson and Sussman.






^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2003-01-05  2:18             ` David Wright
  2003-01-05  3:57               ` John R. Strohm
@ 2003-01-06  9:43               ` John McCabe
  1 sibling, 0 replies; 109+ messages in thread
From: John McCabe @ 2003-01-06  9:43 UTC (permalink / raw)


On Sun, 5 Jan 2003 12:18:35 +1000, "David Wright" <davidw@uq.net.au>
wrote:

>I've downloaded the Aonix Object Ada IDE, which seems
>very cool on first impression. I haven't looked at its
>graphics potential yet, but I imagine I can do some
>interesting graphical things with this software. It
>has, among its online helpfile texts, a complete
>version of the famous "Ada 95 Problem Solving and
>Program Design" M. B. Feldman and E. B. Koffman. So
>there is much to be getting on with.

As long as it's not a project-size limited version of ObjectAda you
should be fine. I used that a while back and one of the guys I worked
with did quite nice torpedo simulation using the OpenGL libraries
through ObjectAda.


Best Regards
John McCabe

To reply by email replace 'nospam' with 'assen'



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2003-01-02 21:32       ` Bill Findlay
  2003-01-04 22:55         ` David Wright
@ 2003-01-06 10:05         ` John McCabe
  2003-01-06 11:13           ` Bill Findlay
  2003-01-10  2:58           ` Richard Riehle
  1 sibling, 2 replies; 109+ messages in thread
From: John McCabe @ 2003-01-06 10:05 UTC (permalink / raw)


On Thu, 02 Jan 2003 21:32:26 GMT, Bill Findlay
<yaldnifw@blueyonder.co.uk> wrote:

>>> 400 not-especially-endowed-with-genius CS1 students have
>>> learned to program using Ada 95 at Glasgow University
>>> every year since 1996.
 
>> Coming from the (presumably) the bloke who co-wrote one of the
>> definitive Pascal manuals of the late '70s, early '80s, I would

>C'est moi. (Blushes.)

No need - it was a very good book in its time. I think I used the
second edition (that would be the one availabel in 1983) and found it
very readable. Having used Ada for so long now, it's quite funny going
back and seeing how different Pascal really is (and how limited the
early ISO standard Pascal was)!

For what it's worth, one of the main reasons there are so many
dialects of Pascal (I've used at least 3 - VAX, Tektronix and Turbo)
is due to the fact that it was really created as a teaching language,
so the standard features were *extremely* limited. Not so with Ada
which covers pretty much everything you could possibly want to do as a
learner, or an advanced programmer. Funnily enough, VAX Pascal had
many nice features that are essentially inherent in Ada - one in
particular I remember is being able to determine the size and limits
of arrays that have been passed in to a subprogram (this may be in
Turbo Pascal as well).

>> suggest this is quite an endorsement for Ada over Pascal.

>Ada is easier for beginners than Pascal, because its syntax and semantics
>are much more consistent.

I agree with this, but you definitely need to go for one of the books
written especially for teaching Ada *and* programming together. Norman
Cohen's book, "Ada as a second language", for example is not designed
to do that yet is (IMO) one of the best Ada books around. Ada comes
across as being such a large language that, without a good reference
guide to what you *need* to know, it could be very easy for a
beginning programmer to get lost in all the stuff you don't need to
know.

>> For what it's worth, I was taught Pascal at Glasgow University in
>> around 1983 (as part of an Electronics Engineering degree).

>It took ten years for EE to switch from FORTRAN to Pascal. Fifteen years
>further on, when CS adopted Ada 95, they tried to take EE with them, but
>without success. AFAIK they are still stuck with Pascal. (In fairness to EE,
>they did see through C, and did not want it taught to their beginners.)

That's interesting. I would have thought that after Prof. Lamb's
demise they would have a new leader who would be keen to make his
mark, e.g. by following progress :-)

>It was interesting to stand in the lab and watch CS (Ada) and EE (Pascal)
>beginners working side by side. One day, about week 6 of term, the CS
>students (using GNAT and AdaGraph) had nearly all successfully written a
>program that animated balls bouncing around in a box. The EE students (using
>Turbo) were nearly all grappling unsuccessfully with a trivial text-oriented
>read-process-output loop.

Interesting, but not really a very good example of why Ada is better
than Pascal. It could easily just be a mindset issue - people
generally don't enter EE courses to learn (or advance their)
programming skills. I would bet that most of your CS students have
done significantly more computer programming than the EE students
prior to starting their university courses.

Sometimes I wish I had done CS rather than EE - apart from the fact
the CS lot got far more interesting programming projects to do, there
were far more girls on the course :-)


Best Regards
John McCabe

To reply by email replace 'nospam' with 'assen'



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to     programming
  2003-01-06 10:05         ` John McCabe
@ 2003-01-06 11:13           ` Bill Findlay
  2003-01-10  2:58           ` Richard Riehle
  1 sibling, 0 replies; 109+ messages in thread
From: Bill Findlay @ 2003-01-06 11:13 UTC (permalink / raw)


On 6/1/03 10:05, in article 3e195055.2269693@news.demon.co.uk, "John McCabe"
<john@nospam.demon.co.uk> wrote:
 
> Having used Ada for so long now, it's quite funny going
> back and seeing how different Pascal really is (and how limited the
> early ISO standard Pascal was)! [...] Funnily enough, VAX Pascal had
> many nice features that are essentially inherent in Ada - one in
> particular I remember is being able to determine the size and limits
> of arrays that have been passed in to a subprogram (this may be in
> Turbo Pascal as well).

Actually this feature was introduced by ISO (ex-BSI) standard Pascal.
It was the sole piece of new language designed by the (excessively!) purist
BSI group, and was included only because both Wirth and Hoare wanted it.

>> Ada is easier for beginners than Pascal, because its syntax and semantics
>> are much more consistent.
> 
> I agree with this, but you definitely need to go for one of the books
> written especially for teaching Ada *and* programming together. Norman
> Cohen's book, "Ada as a second language", for example is not designed
> to do that yet is (IMO) one of the best Ada books around. Ada comes
> across as being such a large language that, without a good reference
> guide to what you *need* to know, it could be very easy for a
> beginning programmer to get lost in all the stuff you don't need to know.

That's spot-on.
 
>> It was interesting to stand in the lab and watch CS (Ada) and EE (Pascal)
>> beginners working side by side. [...]
> 
> Interesting, but not really a very good example of why Ada is better
> than Pascal. It could easily just be a mindset issue - people
> generally don't enter EE courses to learn (or advance their)
> programming skills. I would bet that most of your CS students have
> done significantly more computer programming than the EE students
> prior to starting their university courses.

Perhaps, but even if they have done programming at school it is not
necessarily a help to them (8-). As I said in another reply:

"... I don't want to make too much of this.
Certainly there were other significant differences between the groups that
accounted for much of the disparity, but I'm quite sure the EE group would
have made better progress with the easier language (i.e. Ada).
That's the irony."

-- 
Bill-Findlay chez blue-yonder.co.uk ("-" => "")





^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2003-01-08 19:39                   ` faust
@ 2003-01-08  2:44                     ` Jeffrey Creem
  2003-01-08 18:54                       ` Wes Groleau
                                         ` (2 more replies)
  0 siblings, 3 replies; 109+ messages in thread
From: Jeffrey Creem @ 2003-01-08  2:44 UTC (permalink / raw)


I hate to feed the trolls (ok maybe not)...But even if Ada were to vanish
off the face of the Earth, many of the concepts that I have heard others
complain about over the years have been adopted by the current "popular"
languages...

I am not sure about Dijkstra's complaints (here are some
http://www.cs.utexas.edu/users/EWD/ewd06xx/EWD663.PDF
but they do not seem to be real attacks on the language but more the
style of the spec. They also seem pretty valid)

Common ones I have heard over the years from others were

1) "Too complicated" (hmm, and C++ is easy)
2) "Exceptions, yuck, I want to return a status." (hmm, C++, C# and Java
seem to like them)
3) "Too slow." (hmm, and we all know what a speed freak Java is...)


There are others, some may even be true.
This is now two posts in two days for me. One replying to the classic VHS
v.s. BETA where Ada played the roll of Beta (better but still lost) and now
this one (worse and should have lost)....

It seems to me the #1 reason that Ada does not grow is much more simple.
People choose languages and
polititians the same way they pick teams in a Superbowl gambling pool. They
are more worried about picking the winner so they can be "right" then they
are about applying critical thinking and making an intellegent selection.




"faust" <urfaust@optushome.com.au> wrote in message
news:8ivo1vo5ir3piqsck4ondj0cuo47g426kf@4ax.com...
> Wes Groleau <wesgroleau@despammed.com> ,  emitted these fragments:
>
> >Dijkstra was also the guy who condemned various features of
> >Ada--features that have since been shown to be very valuable.
>
> Shown by whom ?
>
> The rapidly growing Ada community ?





^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2003-01-09  0:59                       ` faust
@ 2003-01-08 13:14                         ` Ted Dennison
  2003-01-08 17:41                         ` Warren W. Gay VE3WWG
  1 sibling, 0 replies; 109+ messages in thread
From: Ted Dennison @ 2003-01-08 13:14 UTC (permalink / raw)


faust wrote:
> On the other hand, if you are a hobbyist , an academic or a government
> contractor, well you can ignore the market place.

If you are writing something that has to be around a while, it in fact 
would be *wise* to ignore the marketplace. If all your tools have going 
for them is fashion, they will disappear when the direction of the wind 
changes.




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2003-01-09  0:59                       ` faust
  2003-01-08 13:14                         ` Ted Dennison
@ 2003-01-08 17:41                         ` Warren W. Gay VE3WWG
  2003-01-09 16:40                           ` faust
  1 sibling, 1 reply; 109+ messages in thread
From: Warren W. Gay VE3WWG @ 2003-01-08 17:41 UTC (permalink / raw)


faust wrote:
>  "Jeffrey Creem" <jeff@thecreems.com> ,  emitted these fragments:
>>are more worried about picking the winner so they can be "right" then they
>>are about applying critical thinking and making an intellegent selection.
> 
> Since to many, languages are tools that they use in their professional
> lives, being "right" can be important.

Being "right" means being able to deliver, be on time, be reliable
and be able to maintain the result. Usually management will listen to
talented thinking and if you push your viewpoint, being right may
in fact mean doing "the real right thing".

However, if you must work within the confines of a larger team, where
your viewpoint is not shared WRT Ada (which seems rather common),
then unless you are top dog, or have convincing arguments for both
management and your team, you are correct in that the "right" thing
becomes muddied with politics (I will refuse to call it the "right
thing" however ;-)

> On the other hand, if you are a hobbyist , an academic or a government
> contractor, well you can ignore the market place.

I agree with Ted (in a separate post), that it is probably wise
to ignore the market popularity WRT tools. You need to look
at the life cycle of your product and then evaluate if a
waning market may influence your ability to provide support.
To base a new 20-year product on a trendy new tool, is for
example, not wise.

Someone last year (Ted?) was discussing the problem of providing
replacement motherboards for Navy ships, running military apps
on NT (I think it was). Imagine trying to buy the same thoroughly
tested 486 MBs today? Software support is not much different.

-- 
Warren W. Gay VE3WWG
http://home.cogeco.ca/~ve3wwg




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2003-01-08  2:44                     ` Jeffrey Creem
@ 2003-01-08 18:54                       ` Wes Groleau
  2003-01-08 19:48                         ` chris.danx
  2003-01-09  0:59                       ` faust
  2003-01-09  0:59                       ` faust
  2 siblings, 1 reply; 109+ messages in thread
From: Wes Groleau @ 2003-01-08 18:54 UTC (permalink / raw)



> I am not sure about Dijkstra's complaints (here are some
> http://www.cs.utexas.edu/users/EWD/ewd06xx/EWD663.PDF
> but they do not seem to be real attacks on the language but more the
> style of the spec. They also seem pretty valid)

I haven't yet read that one.  A week or so back,
someone posted a similar link in which Dijkstra
said that derived types and subtypes was a stupid
idea.  (And similar comments about other features.)




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2003-01-02 13:47                 ` Wes Groleau
@ 2003-01-08 19:39                   ` faust
  2003-01-08  2:44                     ` Jeffrey Creem
  0 siblings, 1 reply; 109+ messages in thread
From: faust @ 2003-01-08 19:39 UTC (permalink / raw)


 Wes Groleau <wesgroleau@despammed.com> ,  emitted these fragments:

>Dijkstra was also the guy who condemned various features of
>Ada--features that have since been shown to be very valuable.

Shown by whom ?

The rapidly growing Ada community ?


CLU had some nice features too..

-- 
natsu-gusa ya     / tsuwamono-domo-ga / yume no ato
summer grasses / strong ones          / dreams site
 
Summer grasses,
All that remains
Of soldier's dreams
(Basho trans. Stryk)



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2003-01-08 18:54                       ` Wes Groleau
@ 2003-01-08 19:48                         ` chris.danx
  2003-01-08 21:59                           ` Wes Groleau
  2003-01-09 16:52                           ` faust
  0 siblings, 2 replies; 109+ messages in thread
From: chris.danx @ 2003-01-08 19:48 UTC (permalink / raw)


Wes Groleau wrote:
> 
> I haven't yet read that one.  A week or so back,
> someone posted a similar link in which Dijkstra
> said that derived types and subtypes was a stupid
> idea.  (And similar comments about other features.)

Why do people place so much value on what Dijkstra said?  Of course I 
know who he was and of his many contributions, but I don't understand 
the facination some have with what he wrote on Ada (or other languages), 
especially since much of it seems like just his opinions (and like the 
opinions of others are not subject to objectivity but personal 
preference).


Chris
-- 
for personal replies change spamoff to chris




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2003-01-09 16:52                           ` faust
@ 2003-01-08 21:57                             ` Vinzent Hoefler
  0 siblings, 0 replies; 109+ messages in thread
From: Vinzent Hoefler @ 2003-01-08 21:57 UTC (permalink / raw)


faust wrote:

> What do you think the Green Team's leader, Jean Ichbiah is doing these
> days ?
> 
> He is hawking Palm software written in C++.

Probably because there is no Ada-Compiler for PalmOS?


Vinzent.

-- 
When I said "we", officer, I was referring to myself, the four young
ladies, and, of course, the goat.



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2003-01-09 16:40                           ` faust
@ 2003-01-08 21:58                             ` Vinzent Hoefler
  0 siblings, 0 replies; 109+ messages in thread
From: Vinzent Hoefler @ 2003-01-08 21:58 UTC (permalink / raw)


faust wrote:

> When the programmer is likely to have left in less than 2 years to
> join another firm, who cares about "maintaining the result" ?

Me, the maintainer.


Vinzent.

-- 
Steinbach's Guideline for Systems Programming:
        Never test for an error condition you don't know how to
handle.



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2003-01-08 19:48                         ` chris.danx
@ 2003-01-08 21:59                           ` Wes Groleau
  2003-01-09 15:31                             ` Georg Bauhaus
  2003-01-09 16:52                           ` faust
  1 sibling, 1 reply; 109+ messages in thread
From: Wes Groleau @ 2003-01-08 21:59 UTC (permalink / raw)



> Why do people place so much value on what Dijkstra said?  Of course I 
> know who he was and of his many contributions, but I don't understand 
> the facination some have with what he wrote on Ada (or other languages), 
> especially since much of it seems like just his opinions (and like the 
> opinions of others are not subject to objectivity but personal preference).

After reading that report, I don't place any value
on what he said.  I've used derived types, subtypes,
and other abstraction-supporting features of Ada and
I _know_ they're valuable.

A person with an experience is never at the mercy
of a person with an argument.  Not even if the
argument is "but Dijkstra said...."




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2003-01-08  2:44                     ` Jeffrey Creem
  2003-01-08 18:54                       ` Wes Groleau
@ 2003-01-09  0:59                       ` faust
  2003-01-09  0:59                       ` faust
  2 siblings, 0 replies; 109+ messages in thread
From: faust @ 2003-01-09  0:59 UTC (permalink / raw)


 "Jeffrey Creem" <jeff@thecreems.com> ,  emitted these fragments:

>1) "Too complicated" (hmm, and C++ is easy)
>2) "Exceptions, yuck, I want to return a status." (hmm, C++, C# and Java
>seem to like them)

So is C++ the mark to aim for ?

It has been abandoned by the market which moved to Java and may now be
moving on to C#


-- 
natsu-gusa ya     / tsuwamono-domo-ga / yume no ato
summer grasses / strong ones          / dreams site
 
Summer grasses,
All that remains
Of soldier's dreams
(Basho trans. Stryk)



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2003-01-08  2:44                     ` Jeffrey Creem
  2003-01-08 18:54                       ` Wes Groleau
  2003-01-09  0:59                       ` faust
@ 2003-01-09  0:59                       ` faust
  2003-01-08 13:14                         ` Ted Dennison
  2003-01-08 17:41                         ` Warren W. Gay VE3WWG
  2 siblings, 2 replies; 109+ messages in thread
From: faust @ 2003-01-09  0:59 UTC (permalink / raw)


 "Jeffrey Creem" <jeff@thecreems.com> ,  emitted these fragments:

>are more worried about picking the winner so they can be "right" then they
>are about applying critical thinking and making an intellegent selection.

Since to many, languages are tools that they use in their professional
lives, being "right" can be important.

On the other hand, if you are a hobbyist , an academic or a government
contractor, well you can ignore the market place.

-- 
natsu-gusa ya     / tsuwamono-domo-ga / yume no ato
summer grasses / strong ones          / dreams site
 
Summer grasses,
All that remains
Of soldier's dreams
(Basho trans. Stryk)



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2003-01-08 21:59                           ` Wes Groleau
@ 2003-01-09 15:31                             ` Georg Bauhaus
  2003-01-10  3:26                               ` Hyman Rosen
                                                 ` (3 more replies)
  0 siblings, 4 replies; 109+ messages in thread
From: Georg Bauhaus @ 2003-01-09 15:31 UTC (permalink / raw)


Wes Groleau <wesgroleau@despammed.com> wrote:
: 
: After reading that report, I don't place any value
: on what he said.  I've used derived types, subtypes,
: and other abstraction-supporting features of Ada and
: I _know_ they're valuable.


One complaint he had was that it be possible to define a Length
using derived types and still have "*" return values of type Length,
when it should return an area.  He had a point, hadn't he?
OTOH, with only structural equivalence of types, and no way to derive
both an integral length type and an integral area type, that are really
diferent, how can you build areas into your types, such that the compiler
will prevent use of values of the wrong type?

In which languages has this been fixed?

There is also a tutorial on Algol 68, an equally blamed language.
It is written by Andrew Tanenbaum; if you start reading it, you will
immediately note how many misfeatures of Algol 68 were corrected in Ada.
One example is case statements that do not cover the whole set of
values allowable in a type, like is still possible in C++, and Java
(with the addition of "cleverly" treating one value in two or more cases);
this was also critisized by Hoare in his Turing Award Lecture, iirc,
and it is also fixed in Ada.

So it would be more interesting to hear what EWD would have said
about Ada in the 90s. What's more, would we be thinking about a decent
pre/postcondition/invariant mechanism, or the removal thereof after proving
your algorithm correct, as is present in Eiffel .. SPARK,
and to some extent in Ada's types, without EWD insisting?

-- Georg



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2003-01-08 17:41                         ` Warren W. Gay VE3WWG
@ 2003-01-09 16:40                           ` faust
  2003-01-08 21:58                             ` Vinzent Hoefler
  0 siblings, 1 reply; 109+ messages in thread
From: faust @ 2003-01-09 16:40 UTC (permalink / raw)


 "Warren W. Gay VE3WWG" <ve3wwg@cogeco.ca> ,  emitted these fragments:

>Being "right" means being able to deliver, 

Yes.

>be on time,
Sometimes.
I do not see that Ada wins here , if six months has to be spend
creating the tools and bindings first.


>be reliable
That is what Version 2.0 is for ;-)

>and be able to maintain the result.

When the programmer is likely to have left in less than 2 years to
join another firm, who cares about "maintaining the result" ?

-- 
natsu-gusa ya     / tsuwamono-domo-ga / yume no ato
summer grasses / strong ones          / dreams site
 
Summer grasses,
All that remains
Of soldier's dreams
(Basho trans. Stryk)



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2003-01-08 19:48                         ` chris.danx
  2003-01-08 21:59                           ` Wes Groleau
@ 2003-01-09 16:52                           ` faust
  2003-01-08 21:57                             ` Vinzent Hoefler
  1 sibling, 1 reply; 109+ messages in thread
From: faust @ 2003-01-09 16:52 UTC (permalink / raw)


 "chris.danx" <spamoff.danx@ntlworld.com> ,  emitted these fragments:
 
>Why do people place so much value on what Dijkstra said?  Of course I 
>know who he was and of his many contributions, but I don't understand 
>the facination some have with what he wrote on Ada (or other languages), 

Perhaps because he is consistent ?

What do you think the Green Team's leader, Jean Ichbiah is doing these
days ?

He is hawking Palm software written in C++.

-- 
natsu-gusa ya     / tsuwamono-domo-ga / yume no ato
summer grasses / strong ones          / dreams site
 
Summer grasses,
All that remains
Of soldier's dreams
(Basho trans. Stryk)



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2003-01-05  3:57               ` John R. Strohm
@ 2003-01-10  2:51                 ` Richard Riehle
  2003-01-10  9:45                   ` David Wright
  0 siblings, 1 reply; 109+ messages in thread
From: Richard Riehle @ 2003-01-10  2:51 UTC (permalink / raw)


"John R. Strohm" wrote:

> MIT uses Scheme in the first-semester freshman programming course.  See
> "Structure and Interpretation of Computer Programs", by Abelson and Sussman.

UC Cal at Berkeley was doing the same for a while.  Have not checked recently
to see if they still are.

The important idea here is that any respectable computer science program should
ensure that students understand both imperative and functional programming.
Scheme,
Haskell, ML, or some other functional language will do just fine for the
functional
language.  Ada is probably a good choice for the imperative language.

Even so, every computer science program should have a class in comparative
programming languages so students get a strong whiff of Smalltalk, Ada, LISP,
C++, Eiffel, and various other languages.

Richard Riehle







^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to      programming
  2003-01-06 10:05         ` John McCabe
  2003-01-06 11:13           ` Bill Findlay
@ 2003-01-10  2:58           ` Richard Riehle
  2003-01-10  9:29             ` John McCabe
  1 sibling, 1 reply; 109+ messages in thread
From: Richard Riehle @ 2003-01-10  2:58 UTC (permalink / raw)


John McCabe wrote:

> I agree with this, but you definitely need to go for one of the books
> written especially for teaching Ada *and* programming together. Norman
> Cohen's book, "Ada as a second language", for example is not designed
> to do that yet is (IMO) one of the best Ada books around. Ada comes
> across as being such a large language that, without a good reference
> guide to what you *need* to know, it could be very easy for a
> beginning programmer to get lost in all the stuff you don't need to
> know.

One reason I wrote Ada Distilled (downloadable from adaic.org
and adapower.com) was to focus on what the newbie needed to
know to get started with Ada without plowing through a massive
amount of prose and long programs.   I believe everyone should
have a copy of Norm Cohen's book if they are serious about Ada,
just as they should have a copy of John Barne's book to fill in a
lot of gaps as well as to see some uniquely conceived examples.

The feedback I have received on Ada Distilled is that it has made
Ada more immediately accessible to at least some experienced
programmers than those more complete and arguably much better
books by Cohen and Barnes.   Everyone learns in a different way.
We can always use more pedagogical material.   I have been
considering doing a book that focuses only on Ada for numerics
applications, one that demonstrates the usage of the many kinds
of numeric attributes in actual programming examples.  Alas,
the press of other commitments has delayed the creation of that
work.

Richard Riehle




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2003-01-09 15:31                             ` Georg Bauhaus
@ 2003-01-10  3:26                               ` Hyman Rosen
  2003-01-10 22:58                                 ` Georg Bauhaus
  2003-01-10  3:51                               ` Kevin Cline
                                                 ` (2 subsequent siblings)
  3 siblings, 1 reply; 109+ messages in thread
From: Hyman Rosen @ 2003-01-10  3:26 UTC (permalink / raw)


Georg Bauhaus wrote:
> In which languages has this been fixed?

In C++. It's easy to define classes which are nothing more than
a wrapper around an underlying numeric type, are the same size
as that type, but which also carry around unit information, so
that the product of two lengths is an area. It looks something
like this:

template<typename T, int Mass, int Length, int Time>
struct Unit
{
	T v;
	Unit(T v) : v(v) { }
	// Addition and subtraction are defined only for identical units
	Unit operator+(Unit o) { return Unit(v + o.v); }
	Unit operator-(Unit o) { return Unit(v - o.v); }
};

// Multiplication and division are defined for any units

template<typename T, int M1, int L1, int T1, int M2, int L2, int T2>
inline Unit<T, M1 + M2, L1 + L2, T1 + T2>
operator*(Unit<T,M1,L1,T1> l, Unit<T,M2,L2,T2> r)
{ return Unit<T, M1 + M2, L1 + L2, T1 + T2>(l.v * t.v); }

template<typename T, int M1, int L1, int T1, int M2, int L2, int T2>
inline Unit<T, M1 - M2, L1 - L2, T1 - T2>
operator/(Unit<T,M1,L1,T1> l, Unit<T,M2,L2,T2> r)
{ return Unit<T, M1 - M2, L1 - L2, T1 - T2>(l.v / t.v); }

typedef Unit<double, 0, 1, 0> Length;
typedef Unit<double, 0, 2, 0> Area;
Area compute(Length l, Length r) { return l * r; }




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2003-01-09 15:31                             ` Georg Bauhaus
  2003-01-10  3:26                               ` Hyman Rosen
@ 2003-01-10  3:51                               ` Kevin Cline
  2003-01-10 13:29                               ` Wes Groleau
  2003-01-11 12:09                               ` Richard Riehle
  3 siblings, 0 replies; 109+ messages in thread
From: Kevin Cline @ 2003-01-10  3:51 UTC (permalink / raw)


Georg Bauhaus <sb463ba@l1-hrz.uni-duisburg.de> wrote in message news:<avk4l9$19i$1@a1-hrz.uni-duisburg.de>...
> Wes Groleau <wesgroleau@despammed.com> wrote:
> : 
> : After reading that report, I don't place any value
> : on what he said.  I've used derived types, subtypes,
> : and other abstraction-supporting features of Ada and
> : I _know_ they're valuable.
> 
> 
> One complaint he had was that it be possible to define a Length
> using derived types and still have "*" return values of type Length,
> when it should return an area.  He had a point, hadn't he?
> OTOH, with only structural equivalence of types, and no way to derive
> both an integral length type and an integral area type, that are really
> diferent, how can you build areas into your types, such that the compiler
> will prevent use of values of the wrong type?
> 
> In which languages has this been fixed?

This is relatively easy to do in C++.
See http://www.fnal.gov/docs/working-groups/fpcltf/html/SIunits-summary.html



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2003-01-10  2:58           ` Richard Riehle
@ 2003-01-10  9:29             ` John McCabe
  0 siblings, 0 replies; 109+ messages in thread
From: John McCabe @ 2003-01-10  9:29 UTC (permalink / raw)


On Thu, 09 Jan 2003 18:58:38 -0800, Richard Riehle
<richard@adaworks.com> wrote:

>John McCabe wrote:
>
>> I agree with this, but you definitely need to go for one of the books
>> written especially for teaching Ada *and* programming together. Norman
>> Cohen's book, "Ada as a second language", for example is not designed
>> to do that yet is (IMO) one of the best Ada books around. Ada comes
>> across as being such a large language that, without a good reference
>> guide to what you *need* to know, it could be very easy for a
>> beginning programmer to get lost in all the stuff you don't need to
>> know.
>
>One reason I wrote Ada Distilled (downloadable from adaic.org
>and adapower.com) was to focus on what the newbie needed to
>know to get started with Ada without plowing through a massive
>amount of prose and long programs.   I believe everyone should
>have a copy of Norm Cohen's book if they are serious about Ada,
>just as they should have a copy of John Barne's book to fill in a
>lot of gaps as well as to see some uniquely conceived examples.

To be honest, I've never looked at your book - perhaps I should have!
Your suggested use of Barnes' book is interesting - in the past I've
found it seriously lacking compared to Cohen, but perhaps I should
have a closer look at some point.

>The feedback I have received on Ada Distilled is that it has made
>Ada more immediately accessible to at least some experienced
>programmers than those more complete and arguably much better
>books by Cohen and Barnes.

That seems reasonable.

Best Regards
John McCabe

To reply by email replace 'nospam' with 'assen'



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2003-01-10  2:51                 ` Richard Riehle
@ 2003-01-10  9:45                   ` David Wright
  2003-01-10 10:59                     ` Richard Riehle
  2003-01-11 17:47                     ` u.r. faust
  0 siblings, 2 replies; 109+ messages in thread
From: David Wright @ 2003-01-10  9:45 UTC (permalink / raw)



"Richard Riehle" <richard@adaworks.com> wrote in
message news:3E1E353A.3EC76758@adaworks.com...
: "John R. Strohm" wrote:
:
: > MIT uses Scheme in the first-semester freshman
programming course.  See
: > "Structure and Interpretation of Computer
Programs", by Abelson and Sussman.
:
: UC Cal at Berkeley was doing the same for a while.
Have not checked recently
: to see if they still are.
:
: The important idea here is that any respectable
computer science program should
: ensure that students understand both imperative and
functional programming.
: Scheme,
: Haskell, ML, or some other functional language will
do just fine for the
: functional
: language.  Ada is probably a good choice for the
imperative language.
:
: Even so, every computer science program should have a
class in comparative
: programming languages so students get a strong whiff
of Smalltalk, Ada, LISP,
: C++, Eiffel, and various other languages.
:
: Richard Riehle

It was with enormous pleasure that I read this post.
The notion of comparative language instruction was
precisely my raw newbie intuition in my message here of
23rd December, 02 ; the subsequent lack of affirmation
had me doubting my sanity and, even worse, my common
sense!

Obviously, the devil is in the detail as to timing,
scope and sequence; an *in-depth* comparative analysis
would clearly be futile for a complete beginner,
perhaps even a 'false beginner'. However, there must be
ways of usefully conveying comparative information
early, before a beginner (e.g., me!) rushes in to
follow the C, C++ or Java crowd and either gets turned
off with frustration or hyper-committed and blinkered
to any other worthwhile paradigm or language.

It seems to me that even the notion of examining
different programming paradigms at an "entry" or
"beginner" level is anathema or at least a novel idea.
For example, Richard Riehle properly distinguishes
between imperative and functional languages. Yet
neither the MS Computer Dictionary nor Prentice Halls
Dictionary of Computing contains an entry for
'imperative'. And even after reading several
introduction to programming texts, e.g. Perry, Wang,
Dale, Hennefeld, I am none-the-wiser as to the precise
meaning of this elementary term and must surmise that
it is synonymous with 'structural' and subsumes
languages such as Basic, Pascal, Ada, and C.

With the self-teaching hobbyist and non-tertiary
inclined in mind, would it really be such an invidious
task for someone to condescend to write a "Comparative
Programming Paradigms and Languages" for (Inquisitive)
Dummies? <8-))

Rhetorically yours
David Wright








^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2003-01-10  9:45                   ` David Wright
@ 2003-01-10 10:59                     ` Richard Riehle
  2003-01-11 17:47                     ` u.r. faust
  1 sibling, 0 replies; 109+ messages in thread
From: Richard Riehle @ 2003-01-10 10:59 UTC (permalink / raw)


David Wright wrote:

> With the self-teaching hobbyist and non-tertiary
> inclined in mind, would it really be such an invidious
> task for someone to condescend to write a "Comparative
> Programming Paradigms and Languages" for (Inquisitive)
> Dummies? <8-))

At Naval Postgraduate School we have just such a class for
our graduate students in computer science.  Unfortunately, it
is not, at present, a required class.   This class goes much
deeper than simply comparing languages, mostly because
it is a graduate level course, but it does cover both the
imperative and functional languages, along with some other
experimental approaches.

There a number of good books, some of which are more
in-depth than others.   A good short book that is a little
too thin on theoretical foundations for a graduate course,
is by Wilson and Clark and published by Addison-Wesley.
The ISBN is 0-201-71012-9.

Another excellent book is by Michael Scott and published
by Morgan-Kauffman.  This is more extensive in its treatment
but not for the faint-of-heart.    I don't have the ISBN handy.
You might also look at books by Sethi, Sebesta, or several
others.

The Michael Scott book and the Wilson and Clark book are
both fair to Ada, at least in their current edition.   Many
others dimiss Ada, or fail to describe it in its current
form.

Imperative languages, which include most object-oriented
languages,  have control structures described in the paper
by Jacopini and Bohm in 1966.  Many programmers grow
up thinking this is the only way to think about the creation
of software.   On the other hand, those who are fans of
functional languages, especially old LISPers, tend to be
pretty set in their ways, as well.

The reality is that one should have many kinds of tools in
their toolbox and understand when to use which.  Some
of these tools are imperative languages, others are functional
languages, logic languages, and so on.   Too bad Dr. Dewar
is not reading this forum anymore.  He would provide some
stimulating insight into this topic.

Have fun,

Richard Riehle





^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2003-01-09 15:31                             ` Georg Bauhaus
  2003-01-10  3:26                               ` Hyman Rosen
  2003-01-10  3:51                               ` Kevin Cline
@ 2003-01-10 13:29                               ` Wes Groleau
  2003-01-11 12:09                               ` Richard Riehle
  3 siblings, 0 replies; 109+ messages in thread
From: Wes Groleau @ 2003-01-10 13:29 UTC (permalink / raw)


> One complaint he had was that it be possible to define a Length
> using derived types and still have "*" return values of type Length,
> when it should return an area.  He had a point, hadn't he?

Sure.  I didn't say he's always wrong.
Just that after reading his resounding
condemnation of features I _know_ are
valuable, it will never work to quote
Dijkstra to me on a topic I don't know about.

> OTOH, with only structural equivalence of types, and no way to derive
> both an integral length type and an integral area type, that are really
> diferent, how can you build areas into your types, such that the compiler
> will prevent use of values of the wrong type?

This has been solved in at least three different
ways in Ada in discussions on this very news group.
None of the solutions are 100% satisfactory.
However, none of them are really bad, either.




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2003-01-10  3:26                               ` Hyman Rosen
@ 2003-01-10 22:58                                 ` Georg Bauhaus
  0 siblings, 0 replies; 109+ messages in thread
From: Georg Bauhaus @ 2003-01-10 22:58 UTC (permalink / raw)


Hyman Rosen <hyrosen@mail.com> wrote:
: Georg Bauhaus wrote:
:> In which languages has this been fixed?
: 
: In C++.

Thanks for the illuminating code and pointers.
I was (and still am) also wondering
whether this very problem had been solved in Dijkstra's and Hoare's
then favoured languages :-)



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2003-01-09 15:31                             ` Georg Bauhaus
                                                 ` (2 preceding siblings ...)
  2003-01-10 13:29                               ` Wes Groleau
@ 2003-01-11 12:09                               ` Richard Riehle
  2003-01-11 18:13                                 ` Wes Groleau
  3 siblings, 1 reply; 109+ messages in thread
From: Richard Riehle @ 2003-01-11 12:09 UTC (permalink / raw)


Georg Bauhaus wrote:

> One complaint he had was that it be possible to define a Length
> using derived types and still have "*" return values of type Length,
> when it should return an area.  He had a point, hadn't he?
> OTOH, with only structural equivalence of types, and no way to derive
> both an integral length type and an integral area type, that are really
> diferent, how can you build areas into your types, such that the compiler
> will prevent use of values of the wrong type?
>
> In which languages has this been fixed?

We can still achieve compile-time safety using generic formal package
parameters.   The following code does not directly address the derived
type issue,  but it does illustrate a model that can be modified to
provide a solution to this problem.  In some ways, it is like putting
a wrapper around the data type, as suggested in the C++ example
from Hyman Rosen.

=================================================


-- ==========================================================
-- Using generic formal package parameters to ensure
-- type safety from compile-time checking.
-- Author:  Richard Riehle
-- ==========================================================
with Arithmetic_Operations;
with Adding_Operators;
with Multiplying_Operators;
procedure Arithmetic_Experiment is

  type Length is digits 7;  -- could be a derived type
  type Time   is digits 7;  -- could be a derived type
  type Mass   is digits 7; -- could be a derived type

  function "+" (L, R : Length) return Length'Base is
     Result : Length := 0.0;
  begin
     return Result; -- define algorithm for appropiate behavior;
  end "+";

  function "-" (L, R : Length) return Length'Base is
    Result : Length := 0.0;
  begin
     return Result; -- define algorithm for appropiate behavior;
  end "-";

  package Add_Length is new Adding_Operators
                       (Item => Length,
                        "+"  => Arithmetic_Experiment."+",
                        "-"  => Arithmetic_Experiment."-");
  package Add_Mass   is new Adding_Operators (Item => Mass);
  package Add_Time   is new Adding_Operators (Item => Time);

  package Multiply_Length is new Multiplying_Operators (Item => Length);
  package Multiply_Mass   is new Multiplying_Operators (Item => Mass);
  package Multiply_Time   is new Multiplying_Operators (Item => Time);

  package Length_Ops is new Arithmetic_Operations
                                                (Arithmetic => Length,
                                                  F1 => Add_Length,
                                                  F2 => Multiply_Length);

  package Mass_Ops   is new Arithmetic_Operations
                                                (Arithmetic => Mass,
                                                  F1 => Add_Mass,
                                                  F2 => Multiply_Mass);

  package Time_Ops   is new Arithmetic_Operations
                                                 (Arithmetic => Time,
                                                  F1 => Add_Time,
                                                  F2 => Multiply_Time);

begin

     null;

end Arithmetic_Experiment;

====================================================================


with Adding_Operators;
with Multiplying_Operators;
generic
  type Arithmetic is digits <>;
  with package F1 is new Adding_Operators      (Item => Arithmetic);
  with package F2 is new Multiplying_Operators (Item => Arithmetic);
package Arithmetic_Operations is end Arithmetic_Operations;

====================================================================

generic
  type Item is digits <>;
  with function "+" (L, R : Item) return Item is <>;
  with function "-" (L, R : Item) return Item is <>;
package Adding_Operators is end Adding_Operators;

========================================================

generic
  type Item is digits <>;
  with function "*" (L, R : Item) return Item is <>;
  with function "/" (L, R : Item) return Item is <>;
package Multiplying_Operators is end Multiplying_Operators;









^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada a good choice for an ambitious beginner to programming
  2003-01-10  9:45                   ` David Wright
  2003-01-10 10:59                     ` Richard Riehle
@ 2003-01-11 17:47                     ` u.r. faust
  1 sibling, 0 replies; 109+ messages in thread
From: u.r. faust @ 2003-01-11 17:47 UTC (permalink / raw)


"David Wright" <davidw@uq.net.au> writes:

> Obviously, the devil is in the detail as to timing,
> scope and sequence; an *in-depth* comparative analysis
> would clearly be futile for a complete beginner,
> perhaps even a 'false beginner'. 

The second or third year programming languages classes go into it in more detail.

Have a look at some of the courses offered by the exmembers of the PLT at Rice.

> It seems to me that even the notion of examining
> different programming paradigms at an "entry" or
> "beginner" level is anathema or at least a novel idea.

No, it has been standard in computer science education for many years.
Even in the 80's the first year undergrads at UNSW worked only in Miranda
( a FP language that has since been replaced by SML , ML and haskell )

> neither the MS Computer Dictionary nor Prentice Halls
> Dictionary of Computing contains an entry for
> 'imperative'. 

So ?
And the  MS Medical Dictionary and  Prentice Halls
Dictionary of Medicine for Dummies are unlikely to have 
angiogenesis factor or tropomyosin in their listings . 
However, even a first year med student would know what these are.

University courses have a content that is fairly different from what the interested layman
would read. Spinothalamic tract function is unlikely to interest a health/fitness fanatic
while a med student who did not know about its anatomy, physiology and clinical effects of
its lesions would deserve to fail.

> And even after reading several
> introduction to programming texts, e.g. Perry, Wang,
> Dale, Hennefeld, I am none-the-wiser as to the precise
> meaning of this elementary term and must surmise that
> it is synonymous with 'structural' and subsumes
> languages such as Basic, Pascal, Ada, and C.

Actually no.
In a nutshell, an imperative language contains the assignment statement.
Remember the evil := in Pascal and Ada and = in C and Basic ?
FPs do not use assignment.

"In imperative programming, a name may be assigned to a value and later reassigned to another 
value. The collection of names and the associated values and the location of control in the 
program constitute the state. The state is a logical model of storage which is an association 
between memory locations and values. A program in execution generates a sequence of states
The transition from one state to the next is determined by assignment 
operations and sequencing commands"

http://216.239.33.100/search?q=cache:KbOmng6LCJ8C:cs.wwc.edu/~aabyan/221_2/PLBOOK/Imperative.html+imperative+programming&hl=en&ie=UTF-8

> With the self-teaching hobbyist and non-tertiary
> inclined in mind, would it really be such an invidious
> task for someone to condescend to write a "Comparative
> Programming Paradigms and Languages" for (Inquisitive)
> Dummies? <8-))

Try Programming Language Pragmatics by Scott ( can't see the initials on the boo spine from 
my chair :-)

It is a nice book. 

-- 
natsu-gusa ya  / tsuwamono-domo-ga / yume no ato
summer grasses / strong ones       / dreams site
 
Summer grasses,
All that remains
Of soldier's dreams
(Basho trans. Stryk)



^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2003-01-11 12:09                               ` Richard Riehle
@ 2003-01-11 18:13                                 ` Wes Groleau
  0 siblings, 0 replies; 109+ messages in thread
From: Wes Groleau @ 2003-01-11 18:13 UTC (permalink / raw)


Richard Riehle wrote:

> We can still achieve compile-time safety using generic formal package
> parameters.   The following code does not directly address the derived
> type issue,  but it does illustrate a model that can be modified to
> provide a solution to this problem.  In some ways, it is like putting
> a wrapper around the data type, as suggested in the C++ example
> from Hyman Rosen.

Except the multiplying operators package should have three formal
types (and a conversion factor that defaults to 1.0) so that it
can provide

   TA * TB = TC      TC / TA = TB
   TB * TA = TC      TC / TB = TA

And we still haven't made length * length = length illegal.
Can this be done as follows?

Application:

    package Length_Types is
            new Dimensioned_Float (Significant_Digits => 12);

    type Length is new Length_Types.Dimension;

    package Area_Types is
            new Dimensioned_Float (Significant_Digits => 12);

    type Area is new Area_Types.Dimension;

    package Multipliers is
            new Multiplying_Operators (Term_One, Term_Two => Length,
                                       Product            => Area);

Library:

    generic
       ... Significant_Digits ...
    package Dimensioned_Float is

       type Dimensioned is digits Significant_Digits;

       -- "+" and "-" are now available just as we want them

       -- Now we must declare the default "*" and "/" illegal:
       function "*" (Left, Right : Dimensioned)
                     return        Dimensioned
          is abstract;

       function "/" (Left, Right : Dimensioned)
                     return        Dimensioned
          is abstract;

       ....

Or will the compiler _insist_ that the abstraction be implemented?




^ permalink raw reply	[flat|nested] 109+ messages in thread

* Re: Why is Ada NOT a good choice for a beginner to programming?
  2002-12-21  3:30 Why is Ada NOT a good choice for a beginner to programming? David Wright
                   ` (12 preceding siblings ...)
  2002-12-24 14:01 ` W D Tate
@ 2003-01-13 12:18 ` John English
  13 siblings, 0 replies; 109+ messages in thread
From: John English @ 2003-01-13 12:18 UTC (permalink / raw)


David Wright wrote:
> 
> It seems that there
> are three essential threshold requirements, namely:
> 
> 1) A free (preferably) downloadable programming environment that is installs
> without fuss and instability

ftp://ftp.cs.nyu.edu/pub/gnat/

> 2) Good online and hardcopy support (tutorials and textbooks) for a BEGINNER
> PROGRAMMER per se, not just beginners with that LANGUAGE

http://www.it.bton.ac.uk/staff/je/adacraft/

> 3) An online community that has a tradition of supporting such beginners to
> programming.

news:comp.lang.ada

> On the other hand, and with the best will in the world, I can�t see that Ada
> satisfies ANY of the three criteria above, though I am willing/wanting to be
> convinced otherwise.

Look around you -- the references above are only examples.
(Also see http://www.adapower.com/,
http://burks.bton.ac.uk/burks/language/ada/index.htm).

Convinced yet?

-----------------------------------------------------------------
 John English              | mailto:je@brighton.ac.uk
 Senior Lecturer           | http://www.it.bton.ac.uk/staff/je
 Dept. of Computing        | ** NON-PROFIT CD FOR CS STUDENTS **
 University of Brighton    |    -- see http://burks.bton.ac.uk
-----------------------------------------------------------------



^ permalink raw reply	[flat|nested] 109+ messages in thread

end of thread, other threads:[~2003-01-13 12:18 UTC | newest]

Thread overview: 109+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-12-21  3:30 Why is Ada NOT a good choice for a beginner to programming? David Wright
2002-12-21  5:44 ` sk
2002-12-23 14:29   ` Wes Groleau
2002-12-23 17:36     ` sk
2002-12-23 18:24       ` David Wright
2002-12-23 19:16         ` sk
2002-12-23 19:48           ` David Wright
2002-12-23 21:33             ` Wes Groleau
2002-12-23 21:17           ` Robert A Duff
2002-12-24 19:22             ` faust
2002-12-24  0:46               ` Robert A Duff
2002-12-24  9:41                 ` Pascal Obry
2002-12-25  4:43                 ` faust
2002-12-27 17:54                   ` Warren W. Gay VE3WWG
2003-01-02 13:50                     ` Wes Groleau
2002-12-25  7:24                 ` AG
2003-01-02  9:56                   ` John McCabe
2003-01-02 13:47                 ` Wes Groleau
2003-01-08 19:39                   ` faust
2003-01-08  2:44                     ` Jeffrey Creem
2003-01-08 18:54                       ` Wes Groleau
2003-01-08 19:48                         ` chris.danx
2003-01-08 21:59                           ` Wes Groleau
2003-01-09 15:31                             ` Georg Bauhaus
2003-01-10  3:26                               ` Hyman Rosen
2003-01-10 22:58                                 ` Georg Bauhaus
2003-01-10  3:51                               ` Kevin Cline
2003-01-10 13:29                               ` Wes Groleau
2003-01-11 12:09                               ` Richard Riehle
2003-01-11 18:13                                 ` Wes Groleau
2003-01-09 16:52                           ` faust
2003-01-08 21:57                             ` Vinzent Hoefler
2003-01-09  0:59                       ` faust
2003-01-09  0:59                       ` faust
2003-01-08 13:14                         ` Ted Dennison
2003-01-08 17:41                         ` Warren W. Gay VE3WWG
2003-01-09 16:40                           ` faust
2003-01-08 21:58                             ` Vinzent Hoefler
2002-12-23 21:30         ` Wes Groleau
2002-12-23 22:11           ` David Wright
2002-12-30 16:22         ` Mark
2002-12-24  0:50     ` Craig Carey
2002-12-29 14:44       ` Colin Paul Gloster
2002-12-21  8:39 ` arvids lemchens
2002-12-21  8:53 ` Gautier
2002-12-21  9:42 ` Craig Carey
2002-12-21 10:44 ` Dale Stanbrough
2002-12-21 15:47   ` Alfred Hilscher
2002-12-21 19:01     ` tmoran
2002-12-22  1:06       ` Robert C. Leif
2002-12-23 14:56         ` Wes Groleau
2002-12-23 11:05       ` Alfred Hilscher
2002-12-22  0:34     ` James S. Rogers
2002-12-23 11:11       ` Alfred Hilscher
2002-12-23 14:32         ` Wes Groleau
2002-12-23 19:54         ` tmoran
2002-12-21 10:51 ` Why is Ada a good choice for an ambitious beginner to programming Wojtek Narczynski
2002-12-22 14:40   ` Bill Findlay
2002-12-22 15:08     ` Bill Findlay
2002-12-22 23:02       ` David Wright
2002-12-23  1:36         ` Bill Findlay
2002-12-23  2:13           ` David Wright
2002-12-23 14:40           ` Wes Groleau
2002-12-27 21:25             ` Randy Brukardt
2002-12-23 11:52     ` Wojtek Narczynski
2002-12-23 14:12       ` Bill Findlay
2002-12-23 20:15         ` Wojtek Narczynski
2002-12-24 19:29           ` Bill Findlay
2002-12-24 22:56             ` Wojtek Narczynski
2002-12-24 23:31               ` Bill Findlay
2002-12-24 23:36               ` Adrian Knoth
2002-12-25  8:23             ` Hyman Rosen
2002-12-27 17:27               ` Kevin Cline
2002-12-28  1:56                 ` Bill Findlay
2002-12-28  2:13                   ` Bill Findlay
2002-12-29  6:07                   ` Hyman Rosen
2002-12-23 20:52         ` Wojtek Narczynski
2002-12-23 20:07     ` chris.danx
2003-01-02 10:04     ` John McCabe
2003-01-02 21:32       ` Bill Findlay
2003-01-04 22:55         ` David Wright
2003-01-05  0:50           ` Bill Findlay
2003-01-05  2:18             ` David Wright
2003-01-05  3:57               ` John R. Strohm
2003-01-10  2:51                 ` Richard Riehle
2003-01-10  9:45                   ` David Wright
2003-01-10 10:59                     ` Richard Riehle
2003-01-11 17:47                     ` u.r. faust
2003-01-06  9:43               ` John McCabe
2003-01-06 10:05         ` John McCabe
2003-01-06 11:13           ` Bill Findlay
2003-01-10  2:58           ` Richard Riehle
2003-01-10  9:29             ` John McCabe
2002-12-21 11:57 ` Why is Ada NOT a good choice for a beginner to programming? David Marceau
2002-12-21 15:59 ` Alfred Hilscher
2002-12-21 17:48 ` Britt Snodgrass
2002-12-21 20:05 ` Peter Hend�n
2002-12-22  1:54 ` faust
2002-12-22  1:28   ` Hyman Rosen
2002-12-22  2:11     ` Larry Kilgallen
2002-12-22 22:49     ` faust
     [not found] ` <u7m2ua.qk3.ln@beastie.ix.netcom.com>
2002-12-23 14:55   ` Wes Groleau
2002-12-24 14:01 ` W D Tate
2002-12-24 20:06   ` Rod Haper
2002-12-25  0:37   ` noone
2002-12-26 13:23     ` W D Tate
2002-12-26 20:37       ` David Starner
2002-12-27 14:02         ` W D Tate
2003-01-13 12:18 ` John English

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