comp.lang.ada
 help / color / mirror / Atom feed
From: Matthew Heaney <matthew_heaney@acm.org>
Subject: Re: Time to join the fold?
Date: 1999/01/23
Date: 1999-01-23T00:00:00+00:00	[thread overview]
Message-ID: <m3btjpaf8l.fsf@mheaney.ni.net> (raw)
In-Reply-To: 78abg4$cnc$1@its.hooked.net

"Mike Silva" <mjsilva@jps.net> writes:

> Now I feel that I would be remiss not to investigate Ada (Ada95
> specifically) as an alternative to migrating our current C code to the
> new products, and have ordered some books to start learning the
> language.

Reading books is good, but be sure to play around with the language as
you're learning it by writing and compiling toy examples.  (Or
not-so-toy examples.)  There's no substitute for just getting in there
and writing programs.

There are a couple of free compilers you can use: either GNAT or student
edition from Aonix.  

As you use the language, feel free to post here on comp.lang.ada
questions you have about the language, or the best way to do this or
that, etc.  In general, comp.lang.ada has a pretty good signal-to-noise
ratio, and you should have no trouble getting substantive answers to
your questions.

> Now for my questions (all assuming that I determine that switching to Ada is
> a good idea).  First, how long would it take me (a long-time C [and a bit of
> C++] programmer) to get productive in Ada?

In my case, I came from a Fortran background.  My first Ada programs
looked a lot like Fortran programs, because I hadn't groked the Ada
mind-set yet.  

The first reaction you'll probably have (if you're like me) is, "Damn
this language is a pain in the ass," because nothing you write will
compile right way.  There is a certain way of thinking about how to
write Ada programs (as there is in any language) that will take a few
days or weeks to master.

However, there's a huge payoff, because once you do get something to
compile, there are going to be far fewer bugs in the compiled program.
You'll spend your time adding functionality to a working program,
instead of trying to figure out why you keep dumping core.

To learn a language, I'm a big fan of just getting in there and writing
programs.  Nothing beats the interaction of programmer and compiler.
Reading books is good, because the book will answer questions you had,
and give you ideas you didn't think of.  But, you'll have those
questions and appreciate those ideas, only because you've been writing
and compiling real programs.

So you can be programming in the C subset of Ada in just a few hours.
But understand that you're not done: there's a certain way of thinking
in Ada that's different from C, and you have to make an effort to
discover what that mind-set is.  That's the thing that will take longer.

> Second, what is the best way to present the case to my boss?  He's
> open-minded, but switching to a new language that I don't know is
> bound to require plenty of justification.

You only need to say one thing: you'll save lots of money.  In the end,
it's going to be a lot cheaper for a compiler to find bugs at compile
time, than it is to pay a human to find the bug at run time.

Programming is a labor intensive activity, and any tool you can use to
reduce that labor is going to pay hansomly, because the cost of human
labor is very high.




  parent reply	other threads:[~1999-01-23  0:00 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-01-22  0:00 Time to join the fold? Mike Silva
1999-01-22  0:00 ` Tucker Taft
1999-01-25  0:00   ` Mike Silva
1999-01-25  0:00     ` robert_dewar
1999-02-02  0:00       ` news.oxy.com
1999-01-25  0:00     ` Pat Rogers
1999-01-25  0:00     ` dennison
1999-01-31  0:00       ` Matthew Heaney
1999-02-01  0:00         ` Dynamicly declaring arrays (was: Time to join the fold?) dennison
1999-02-01  0:00           ` Larry Kilgallen
1999-02-01  0:00           ` Matthew Heaney
1999-02-02  0:00           ` robert_dewar
1999-02-02  0:00             ` news.oxy.com
1999-02-02  0:00               ` dennison
1999-02-02  0:00               ` robert_dewar
1999-02-03  0:00                 ` news.oxy.com
1999-02-03  0:00                   ` Robert I. Eachus
1999-02-04  0:00                   ` M2 history - relations to Ada news.oxy.com
1999-02-04  0:00                     ` robert_dewar
1999-02-04  0:00                     ` Chuck Clark
1999-02-10  0:00                       ` Andreas Borchert
1999-02-04  0:00                     ` David C. Hoos, Sr.
1999-02-04  0:00                       ` news.oxy.com
1999-02-04  0:00                         ` Jean-Pierre Rosen
1999-02-04  0:00                         ` G.S. Vigneault
1999-02-04  0:00                       ` Chris Morgan
1999-02-04  0:00                         ` Jerry van Dijk
1999-02-05  0:00                         ` Grant Edwards
1999-02-04  0:00                       ` Aron Felix Gurski
1999-02-05  0:00                         ` Robert Lanziner-Furtenbach
1999-02-04  0:00                           ` David C. Hoos, Sr.
1999-02-05  0:00                           ` Robert Lanziner-Furtenbach
1999-02-02  0:00               ` Dynamicly declaring arrays (was: Time to join the fold?) nabbasi
1999-02-02  0:00                 ` dennison
1999-02-02  0:00                   ` robert_dewar
1999-02-02  0:00                     ` William Clodius
1999-02-03  0:00                       ` Robert A Duff
1999-02-03  0:00                         ` Modula 2 William Clodius
1999-02-02  0:00                     ` Dynamicly declaring arrays (was: Time to join the fold?) Al Christians
1999-02-02  0:00                     ` dennison
1999-01-26  0:00     ` Time to join the fold? Jean-Pierre Rosen
1999-01-26  0:00       ` dennison
1999-01-26  0:00         ` Pascal MALAISE
1999-01-27  0:00     ` Steve Whalen
1999-02-01  0:00       ` Robert I. Eachus
1999-01-23  0:00 ` Steve Whalen
1999-01-23  0:00   ` Tom Moran
1999-01-24  0:00     ` Steve Whalen
1999-01-24  0:00       ` Tom Moran
1999-01-23  0:00 ` Matthew Heaney [this message]
1999-01-23  0:00   ` Tom Moran
1999-01-24  0:00 ` Larry Kilgallen
replies disabled

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