comp.lang.ada
 help / color / mirror / Atom feed
From: Optikos <ZUERCHER_Andreas@outlook.com>
Subject: Re: Beginning Ada Programming, by Andrew T. Shvets (2020)
Date: Fri, 24 Apr 2020 07:42:37 -0700 (PDT)
Date: 2020-04-24T07:42:37-07:00	[thread overview]
Message-ID: <f6bca4b1-44c0-4a25-bf10-00ebb069a100@googlegroups.com> (raw)
In-Reply-To: <87imhp5161.fsf@nightsong.com>

On Thursday, April 23, 2020 at 4:42:48 PM UTC-5, Paul Rubin wrote:
> Optikos  writes:
> > 1) Someone who is a beginner at programming in any imperative
> > programming language.
> 
> This is what I meant by beginner ;)
> 
> > 2) Someone who is versed to an adequate degree of proficiency in
> > another imperative programming language and who is now learning Ada as
> > a 2nd … Nth imperative programming language added to their repertoire.
> 
> Yes, this is imho a more suitable audience for Ada.
> 
> > Conversely, category #1's time has unfortunately passed is by in 2
> > phases

Autocorrect burned me.  It should have been:  pass us by.

> I'm not sure what you mean by this: imho, either category #1's time
> never existed, or else it existed once but is now thankfully (not
> unfortunately) in the past.  IMHO a beginner language should have
> automatic memory management, and its basic integer datatype should be
> unbounded aka bignums.  Python is like this, though it has its own
> deficiencies.

I think that there are 2 kinds of beginners to programming:
1) mathematicians at heart:  beginners that start from mathematics concepts and move downward to sequential execution of mathematics (as opposed to designing soft logic circuits in FPGAs)
versus
2) electrical engineers at heart:  beginners that start from hardware concepts and move upward a little to controlling that hardware then move up to abstracting that control.

There is something quite satisfying in #2 that assembly language and C typically provide to #2's adherents, hence C's popularity as “Gee whiz, mom, look at what I made the computer do” when ultimately interfacing with actual registers on an IC.  Ada-for-beginners fits best here in #2 because of its focus on need for the programmer to be aware of resource allocation (e.g., finite-sized storage pool allocation).  Soon after the gee whiz phase, some people yearn fairly early on for the greater intellectual discipline and direct rich expressiveness that Ada provides instead of doing it all by wink-wink-nudge-nudge idioms in C.

There is something quite satisfying in #1 that functional languages provide to #1's adherents, hence Haskell's popularity and to a lesser extent ML in a certain older age group.  The automatic memory management and arbitrarily-large bignum integers fit here, I think, because of the avoidance of thinking about the hardware very much at all.

And there might be a 3rd distinct category of beginner:  those that yearn to see the world as Mealy or Moore state machines and get frustrated that neither imperative nor functional programming languages put finite state machines as the true 1st-class citizens and everything else as cascading-ramification details hanging off as ornaments from an FSM Christmas tree.  This group of beginner gets frustrated and stays frustrated for an extended time (as they muddle through both imperative & functional paradigms, wondering at what year will they finally get to the good stuff among all this endless dreck); they become attracted to Erlang and Shlaer-Mellor eventually.  These people tend to reach a degree of now-this-is-what-I'm-talking-about satisfaction of sorts if they ever learn VHDL or Verilog for FPGAs, but few ever go that direction, so Erlang and Shlaer-Mellor is what they up embracing as the true maturity of their initial beginner starting point.  I have always thought that both tight Ada and loose C have been an especially uphill battle for this category of FSMphile beginner, because if FSMs are covered at all in Ada or C, it is as a passing thought in the 7th or 11th book that they read, perhaps even buried as a mere interested-reader exercise at the end of the chapter.  These people are expecting FSMs to be the Hollywood star in chapter 1 of the 1st book that they read on computer programming, as fundamental stimulus-response concept.

  reply	other threads:[~2020-04-24 14:42 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                   ` Beginning Ada Programming, by Andrew T. Shvets (2020) Andrew Shvets
2020-04-17 12:44                     ` 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 [this message]
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