Ada as a first language - Hasn't got it yet 
Author Message
 Ada as a first language - Hasn't got it yet

Quote:
Craig M. Pitches writes:
> Then when you finally start getting the idea, it turns out that everying
> is REALLY HARD TO DO!

---
It seems to me that he hasn't gotten the idea yet.  What is the
idea?  In brief the idea is to solve real-world problems.  This
idea leads to the necessity of Software Engineering. I just
can't bring myself to retype all those reasons for Ada.  In
summary, Ada supports the "idea" that one wants to build real-world
systems that solve problems.  When you practice software
engineering you will be surprised how easy Ada is to use.




Fri, 11 Oct 1996 15:17:00 GMT  
 Ada as a first language - Hasn't got it yet

Quote:

>Craig M. Pitches writes:
>> Then when you finally start getting the idea, it turns out that everying
>> is REALLY HARD TO DO!
>---
>It seems to me that he hasn't gotten the idea yet.  What is the
>idea?  In brief the idea is to solve real-world problems.  This
>idea leads to the necessity of Software Engineering. I just
>can't bring myself to retype all those reasons for Ada.  In
>summary, Ada supports the "idea" that one wants to build real-world
>systems that solve problems.  When you practice software
>engineering you will be surprised how easy Ada is to use.

I don't think that anyone is disagreeing about the need for
_engineering_.  Consider an automotive metaphor. It would be nice if
the metric sockets in my tool kit would fit the English bolts on the
engine in the car I'm trying to fix.  It would be nice if I didn't
have to take the engine out in order to replace spark plug #8.  It
would be nice if every time I tried to replace the air filter I didn't
cut my hand on a sharp piece of metal that seems to be sticking out
for no reason at all.  Yet these are my impressions from using Ada.
This is why everything is REALLY HARD TO DO.

I've worked on many kinds of cars and many kinds of computer languages.
Some are well engineered and well laid out, and others have a constant
litany of quirky features that make any job take 2X to 10X longer.

Most American cars prior to heavy emissions controls were amazingly
straightforward to work on.  This came about not through any great
foresight, but as a result of constant small improvements from year to
year.  Things may not have been _designed_ that well to begin with,
but they _evolved_ into a reasonable configuration.

Programming languages that have not been allowed to evolve are like first
year designs.  Good ideas, perhaps, but no refinement.  Lots of quirks
and problems.

If you're going to teach _engineering_, it might be best to show some of
the best engineering around to the first year students, so that they can
have something to aspire to.  Alternatively, one should be ready to use
any existing problems with a language as object lessons about what _not_
to do.  (Like that famous film about the bridge that fell down due to
the wind exciting its resonant frequency.)

The problem with teaching Ada is that one must spend such a large % of
the time warning about this sharp edge and how to work around that problem,
that little time is left to learn about the actual issues of programming
and software engineering.

As another mechanical analogy, Ada is like the metal part that just
came out of the cast.  The basic shape is good, but there's lots of
rough edges.  Unfortunately, Ada was frozen before those rough edges
could be ground smooth.



Fri, 11 Oct 1996 23:32:39 GMT  
 Ada as a first language - Hasn't got it yet


Quote:

>The problem with teaching Ada is that one must spend such a large % of
>the time warning about this sharp edge and how to work around that problem,
>that little time is left to learn about the actual issues of programming
>and software engineering.

Perhaps some examples would help us understand.  The few 'sharp
edges' I can think of would be in the tasking model, or the model
number stuff, and I don't see why a first course should worry too
much about them.

If you're referring to the type safety issues, or the fact that
Ada is intentionally a little verbose at times (Ada is an easy to
read language, not always an easy to write language) those are
actually language features.  

Quote:
>As another mechanical analogy, Ada is like the metal part that just
>came out of the cast.  The basic shape is good, but there's lots of
>rough edges.  Unfortunately, Ada was frozen before those rough edges
>could be ground smooth.

Nope, don't agree, how about some examples?

Mark



Sat, 12 Oct 1996 05:30:09 GMT  
 Ada as a first language - Hasn't got it yet
I just wanted to put my two cents in...

I first started programming in Pascal. When the university ( UNO )
switched to Ada, I had to learn Ada. I found using Ada different
than using Pascal - also more powerfull ( strings, file I/O standard, etc).
The next language I had to learn was VAX Macro-32. I tended to code assembly
in a Ada-like psuedo code and then enter it in machine. I have also
been exposed to writing in other languages. One of my professors
required the class to write the same program in three languages at
the same time ( DCL, Ada, and C).

I find most of this discussion of Ada not being a good first language
wrong. I think Ada is a good choice for a first language. I believe
some one mentioned LISP as easier than Ada. I didn't like the problem
of matching parenthesis, list maintainence (FIRST, CAR, etc), and
the lack of type checking.

I think the best way to learn to creat programs is to:

1) Pseudo-code it on paper, including data structures.
2) Code it in what ever language you like (Ada for me).
and
3) Test it as much as possible. (I like to use a full screen
source code de{*filter*} for this [with single stepping and trace/break
points] ).

Michael



Sat, 12 Oct 1996 13:10:44 GMT  
 Ada as a first language - Hasn't got it yet

Quote:
>I believe
>some one mentioned LISP as easier than Ada. I didn't like the problem
>of matching parenthesis, list maintainence (FIRST, CAR, etc), and
>the lack of type checking.

You probably didn't have access to EMACS and its (Lisp) mode.
Lisp doesn't (normally) have type checking, but Mitch Wand has
an ML type inference system for Scheme (a dialect of Lisp) for
pedagogical use.

The key issue in Lisp for first-timers is the trivial syntax, that
with a decent parenthesis-matching editor, eliminates the need to
worry about this.

The other key issue is its interpretive, or nearly interpretive
nature, which allows the incremental development of code which is
tested as it is written. The instantaneous feedback is extremely
for first-timers.

Quote:
>1) Pseudo-code it on paper, including data structures.

Much faster & better to code it with a good editor which also allows
you to test it incrementally.  A decent Emacs mode can speed this
process.  There are good ones for C, but I have yet to see a good
one for Ada.


Sun, 13 Oct 1996 12:54:59 GMT  
 Ada as a first language - Hasn't got it yet

Quote:
>Most American cars prior to heavy emissions controls were amazingly
>straightforward to work on.  This came about not through any great
>foresight, but as a result of constant small improvements from year to
>year.  Things may not have been _designed_ that well to begin with,
>but they _evolved_ into a reasonable configuration.
>Programming languages that have not been allowed to evolve are like first
>year designs.  Good ideas, perhaps, but no refinement.  Lots of quirks
>and problems.

     The analogy doesn't quite work.  Programming languages that evolve
(e.g., fortran) are faced with the problem of backward compatibility.  When
you put a new distributor into the Blastfire 8, there's no requirement that
the old distributor be left in place.

     It happens that Ada, while a "new" language 15 years ago, has many of
the attributes of an evolutionary design.  Most of its features were off-
the-shelf, having been taken from existing languages.  Returning to the
automobile analogy, the "invention" of Ada was rather like the introduction
of a completely new line by an established company.

Quote:
>As another mechanical analogy, Ada is like the metal part that just
>came out of the cast.  The basic shape is good, but there's lots of
>rough edges.  Unfortunately, Ada was frozen before those rough edges
>could be ground smooth.

     I won't argue against this analogy too much, since I've often argued
against what I call "premature standardization".  However, in the case of
Ada I don't see any alternative to freezing the design because of the
other, non-language, issues that were present.  The DoD had to have a
stable language from day one to justify using it for software that has a
20-30 year lifecycle.  (I'm stating the issue as it existed in 1983.  The
fact that the DoD blew it by failing to use Ada doesn't change history.)

     On the other hand, if we want to be charitable, we can say that 9X is
the first improved model of the Ada line.  It's just that the time scales
in the programming language world and the automobile manufacturing world
are different.

                                   Charlie



Mon, 14 Oct 1996 23:30:38 GMT  
 
 [ 6 post ] 

 Relevant Pages 

1. Who hasn't heard this yet?

2. why Haskell hasn't replaced CL yet?

3. So-called "infix" languages (was: Re: why Haskell hasn't replaced CL yet?)

4. Yet Another Scripting Language crusaders (was: arrays really aren't)

5. Common Lisp's "baggage" Re: why Haskell hasn't replaced CL yet?

6. Ada as a First Language

7. Selling Ada as a first language

8. Ada as first CS Language

9. smalltalk hasn't made it big

10. Why Eiffel hasn't met its potential

11. Who hasn't sued ben & jerry

12. First CFP: WAAAPL'99 (Workshop on Algorithmic Aspects of Advanced Programming Languages)

 

 
Powered by phpBB® Forum Software