|
On 25-Apr-17 08:34, Dirk Laurie wrote:
Oops! You're right, of course. Never trust the memory of a septuagenarian.
But your memory was right on the main point: Applesoft Basic was a great language to start with. Few instructions, a simple model (but powerful enough for that time and hardware) and, over all, immediate visual feedback.
Having spent many years writing beginner's self-instruction courses, I think simplicity and directness may be more important than formal cleanliness. A disciplined mind is better than a discipline-enforcing language. Formal cleanliness can be taught and can be used in (almost) any language, even if not enforced by the language itself: I used to write structured BASIC using GOTOs (and JMP in 6502 assembly code). I was even doing recursion without argument passing :-)
By the way, BASIC was my first encounter with the garbage collection; its powerful, flexible strings were the main thing I missed in C.
Back to the subject: I think interactive graphics are a very effective tool to teach programming, because they give a large amount of feedback. Unfortunately, current-day languages (or, I should say, programming environments) tend not to offer built-in simple graphics. By "simple graphics" I mean no-hassle instructions that draw directly into the output window, such as LINE. They can be used to directly illustrate concepts, visualize data, keep attention focused and so on.
The current setup/loop graphics model is powerful but conceptually harder to grasp for a programming beginner, especially if you are trying to teach the first steps of procedural programming and do not want to be distracted by concepts such as graphics frames, events, callbacks and so on. (I know, Processing is easy to use, but not simple to master and it does not lend itself to good programming structure... people just tend to create lots of global variables)
-- Enrico