TEAM-ADA Archives

Team Ada: Ada Programming Language Advocacy


Options: Use Forum View

Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Alan E & Carmel J Brain <[log in to unmask]>
Reply To:
Mon, 11 May 1998 17:59:45 +1000
text/plain (134 lines)
Some traffic from the sf-consim e-mail list. Unlike most language
questions, this thread generated more light than heat, and several
people asked about it in a spirit of enquiry, rather than flaming. It's
presented here so that I can get feedback (anyone disagree radically, if
so, why?) and to maybe act as a standard reply to similar queries.

James Dugan wrote:
> I've been on the verge of actually trying to learn a computer language
> for years, but have been prevented largely by either lack of self
> discipline, lack of time, or lack of funds (hey - take your pick!)..
> I've actually managed to gain an understanding about them, and pick up a
> smattering of Basic and Pascal.
> I've been thinking about attempting to do it again, at the prompting of a
> friend. I would appreciate some feedback on this, if you can spare the time.
> I apologize in advance for acting like a clueless newby, please attach
> any pennance required to your reply....
> :-)
> 1) It has been proposed by one writer (and added to by some interpolation
> of my own) that the order of learning languages oughta go in the
> following order:
> HTML - Basic - Pascal - Perl - JAVA - C or C++
> would you agree or would you change the order? and to what?

Pascal first - to learn good habits
Visual Basic second - to be marketable, and be up with the prime
development language on Wintel boxes. Will also help writing macros for
Spreadsheets etc
C - so you can program on things other than Wintel boxes.
Java - ditto.
Perl - ditto.

> 2) In the above series, would you include the following, and where?
> Smalltalk, Ada, Cobol, Fortran, XML, Scheme

Ada. Either Ada-83 or Ada-95. IMHO Definitely should be Number 1! It has
the following advantages:

1) Ada-95 is the easiest object-oriented language to learn, vastly more
easy than C++.
2) There are a number of FREE compilers for it. See
3) There is indisputably the best teach-yourself tutorial for any
language available through the above web site.
4) It teaches good programming habits, so you don't get too concerned
about the "how" of things, just the what. Therefore, you must worry
whether a parameter is an in parameter (ie can't be changed), an out
parameter (ie can't be fed in ), or an in out (can have an initial
value, but it can change). You don't have to worry about wheteher passed
by reference, by value, whether it is a pointer, a reference, an
immediate or whatever, nor whether const int or int const etc etc
5) It was designed by a small team headed by Jean Ichbiah, after a
competition with several other languages made by the best language
designers in the world.

It has the following disadvantages:
1) Apart from the Oracle Database Query Language, and avionics and such
by Boeing, Aerospatiale, McDonnel-Douglas, and safety-critical
applications, no-one uses it.
2) Nearly everyone who's never used it hates it, as it was the
DOD-mandated language for many years, and must therefore be bloated,
unreliable etc.

For my sins, I teach Ada-95 BTW, and have taught and worked with C, C++,
APL and Basic in the past. The very best C++ programmers started by
learning Ada, Modula-3 or Eiffel first.

> 2b)what others would you add? Why?

Maybe Javascript. A lot more stable than Java, and works on more
platforms. Unlikely to be changed by the great Java vs ActiveX war

> 3) While I realize that different languages are used for different
> purposes, what is your favorite and why? Please keep Jargon to a minimum
> if you can.

Ada for the reasons given above.

> 4) What languages would you use for the following, explain why....
>      a) Stand Alone applications?

If small, probably Visual Basic, which I detest, or C.

>      b) Applications that must interact in a network enviroment?

Probably C, as there are more tools and libraries available. Sure,
they're 99% crap, and buggy.

>      c) Windows applications (95 is assumed)?

Visual C++ by preference, but probably Visual Basic (Spit)

>      d) quick and dirty "in house only" applications?


>      e) Web Applications?

Probably Ada. There's a good tool which generates java-byte code, and
gives you all of the flexibility and safety of Ada, with the
run-anywhere ability of Java.

>      f) DOS applications?


>      g) Linux applications?


> Thanks for your response!!

No worries. I expect to be in a minority of one, BTW. But I urge you to
have a look at and try the tutorial. Due to the
dissapointments with Java and C++, some firms are quietly switching to
Ada-95 as their "new" language. It's been ISO standardised since 95, so
is rather well debugged for a 'new' language. :)

[log in to unmask]     <> <>    How doth the little Crocodile
| Alan & Carmel Brain|      xxxxx       Improve his shining tail?
| Canberra Australia |  xxxxxHxHxxxxxx _MMMMMMMMM_MMMMMMMMM
 [log in to unmask]  o OO*O^^^^O*OO o oo     oo oo     oo
                    By pulling MAERKLIN Wagons, in 1/220 Scale