comp.lang.ada
 help / color / mirror / Atom feed
From: Andrew Shvets <andrew.shvets@gmail.com>
Subject: Re: Beginning Ada Programming, by Andrew T. Shvets (2020)
Date: Thu, 16 Apr 2020 21:27:43 -0700 (PDT)
Date: 2020-04-16T21:27:43-07:00	[thread overview]
Message-ID: <98f92454-404b-4500-b5e8-5e3048304f96@googlegroups.com> (raw)
In-Reply-To: <80bcdfd1-b1e5-4ebf-aa8a-4beaba5ec3c2@googlegroups.com>

On Tuesday, December 3, 2019 at 11:26:55 AM UTC-5, Optikos wrote:
> On Tuesday, December 3, 2019 at 10:06:58 AM UTC-6, Lucretia wrote:
> > On Tuesday, 3 December 2019 15:29:15 UTC, Optikos  wrote:
> > 
> > > There is a wise middle ground between the 2 extremes between what you & AdaMagica are saying.
> > > 
> > > strict) AdaMagica appears to be saying that rock-solid analysis of finding the upper & lower bounds of the integer's range (or fixed or floating point or BCD for that matter) is of crucial insight & importance to understanding the problem.
> > > 
> > > loose) You appear to be saying that for rapid prototyping that that deep analysis can be postponed.
> > 
> > That's not what I'm saying at all!
> > 
> > I'm saying to get someone used to the language, there is no problem with starting them off with the
> > ready defined types, but explaining ranges a little later on, literally, within pages of themselves.
> 
> Oh, then I agree with AdaMagica wholeheartedly if restricted to only learning a new language.  I once worked for a long-time Fortran programmer who self-taught himself C; every line of code that he wrote was 110% pure Fortran-think without any resemblance (other than surface syntax) to anything more modern:  PL/I, C, Ada, Pascal.  Just about the only way that it was C code beyond force-fitting his thinking into C syntax minimally was that he eventually refrained from keeping the caps-lock key on all the time for all identifiers.  Full immersion in the new language's own better way of thinking from the very start is the only productive way to learn a new programming language.  Learning Ada the way that you describe is likely to perpetuate C-think or C++-think or Python-think in Ada, due to the new learner falsely believing “I got this!” far far too soon.

1 - Well, to look at this another way, bringing in ideas from other languages can have a benefit as well.  After all, just about every language has its roots in a different programming language.

2 - In regards to the Fortran programmer that wanted to make Fortran in C, that does happen, but that is not the case with most people.

> Learning a new programming language needs to have exciting revelatory “oh, wow!  I've never been able to do •that• before in any prior language!” moments early on to quell ho-hum boredom.  This ho-hum boredom is caused by nearly all the mainstream programming languages (with the exception of ML family) being minor variations on Algol 60's syntax and relatively minor extensions of Algol 60's control-flow constructs, so differentiating the newly-learned language from all other Algol60-esque fellow languages ASAP is crucial.  Burying the revelatory differences later in the book does a mind-numbing disservice to the reader by falsely lulling the reader into thinking Ada's key contributions are in syntax & beauty, not in semantic-meaning expressivity & crisp well-ordered-mind thinking.

*shrug* The way I look at my book is that it's an on-ramp.  There's this wonderful Ada highway, but due to the lack of up to date and relevant intro Ada books, it's pretty much impossible for others to get on the said road.  Once you're on it, there are other books that can help you become more proficient in Ada.

So what's the best way to interest someone new, while not ignoring the crucial parts of Ada that make it so good?  I'm honestly not 100% sure, but my book is a damn good stab at this issue.

I mean, I have "Chapter 2: Basic Types" where it talks about the primitives that exist in Ada.  Then there is "Chapter 12: Advanced Types" where I talk about creating your own types and subtypes and etc.  Chapter 3 to 11 talk about Ada so that you can get started and feel comfortable in the language.

  parent reply	other threads:[~2020-04-17  4:27 UTC|newest]

Thread overview: 82+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-03  4:05 Beginning Ada Programming, by Andrew T. Shvets (2020) Paul Rubin
2019-12-03 12:11 ` AdaMagica
2019-12-03 12:33   ` Lucretia
2019-12-03 13:21     ` J-P. Rosen
2019-12-03 13:57       ` Lucretia
2019-12-03 14:04         ` AdaMagica
2019-12-03 14:15           ` AdaMagica
2019-12-03 14:39             ` Simon Wright
2019-12-03 14:45               ` Shark8
2019-12-03 17:38               ` J-P. Rosen
2019-12-03 15:04           ` Lucretia
2019-12-03 15:29             ` Optikos
2019-12-03 16:06               ` Lucretia
2019-12-03 16:26                 ` Optikos
2019-12-03 16:50                   ` Lucretia
2019-12-03 17:02                     ` Shark8
2019-12-03 17:29                       ` AdaMagica
2019-12-05 16:35                       ` Dirk Heinrichs
2019-12-05 17:12                         ` AdaMagica
2019-12-09 19:08                           ` Dirk Heinrichs
2019-12-06 18:34                         ` Shark8
2019-12-06 20:29                           ` Jeffrey R. Carter
2019-12-06 21:05                             ` Shark8
2019-12-07  0:47                               ` Randy Brukardt
2019-12-14  4:21                           ` Keith Thompson
2019-12-14 11:34                             ` AdaMagica
2019-12-03 17:39                     ` Optikos
2019-12-03 19:12                       ` Paul Rubin
2019-12-14  4:34                       ` Paul Rubin
2020-04-17  5:14                       ` Andrew Shvets
2020-04-17  6:17                         ` Teaching Ada types J-P. Rosen
2020-04-29 13:07                           ` Mehdi Saada
2020-04-29 21:25                             ` Paul Rubin
2020-04-17  4:27                   ` Andrew Shvets [this message]
2020-04-17 12:44                     ` Beginning Ada Programming, by Andrew T. Shvets (2020) Ludovic Brenta
2020-04-17 13:07                       ` Jere
2020-04-17 14:31                       ` Optikos
2019-12-03 20:40               ` Björn Lundin
2020-04-17  4:16               ` Andrew Shvets
2020-04-17  4:11             ` Andrew Shvets
2020-04-17 15:32               ` Luke A. Guest
2020-04-17  4:10           ` Andrew Shvets
2020-04-17  5:02             ` Andrew Shvets
2020-04-17  4:08         ` Andrew Shvets
2019-12-03 19:14       ` Paul Rubin
2019-12-04  6:47         ` J-P. Rosen
2019-12-04  6:49         ` J-P. Rosen
2019-12-04  9:46           ` Paul Rubin
2020-04-17  4:07       ` Andrew Shvets
2020-04-17  5:49         ` J-P. Rosen
2020-04-17 17:59         ` AdaMagica
2020-04-17 19:28           ` Optikos
2020-04-18 15:29             ` AdaMagica
2020-04-18 16:34               ` cantanima.perry
2020-04-18 17:59                 ` Jere
2020-04-18 21:54                   ` cantanima.perry
2020-04-18 22:18                     ` Luke A. Guest
2020-04-18 22:33                       ` Jere
2020-04-19  0:52                         ` Jere
2020-04-19  2:23                       ` Keith Thompson
2020-04-18 22:37                     ` Jere
2020-04-19  0:42                     ` Paul Rubin
2020-05-02 19:13                 ` dave_thompson_2
2020-04-23 18:43             ` Andrew Shvets
2020-04-23 21:07               ` Paul Rubin
2020-04-23 21:33                 ` Optikos
2020-04-23 21:42                   ` Paul Rubin
2020-04-24 14:42                     ` Optikos
2020-04-24 15:35                       ` Dennis Lee Bieber
2020-04-30  8:01                       ` Paul Rubin
2020-04-23 18:45             ` Andrew Shvets
2020-11-02 21:14       ` Norman Worth
2020-04-17  4:04   ` Andrew Shvets
2019-12-10  5:17 ` Jerry
2020-04-17  3:58 ` Andrew Shvets
2020-05-09 12:39   ` Chris Collings
2020-10-03  4:23     ` andrew...@gmail.com
2020-10-28 19:21       ` sany...@gmail.com
2020-11-11  1:41 ` Azathoth Hastur
2020-11-12 21:24   ` Shark8
2020-11-12 22:31     ` Chris Townley
2020-11-17 20:48     ` azathot...@gmail.com
replies disabled

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