Re: Programming languages for the very young

From: Ray Dillinger (bear_at_sonic.net)
Date: 01/28/04


Date: Wed, 28 Jan 2004 20:57:27 GMT

Darin Johnson wrote:

> BASIC can, and still does, ruin a lot of programming potential. Even
> advanced BASICs with structured control constructs still teach bad
> programming advice. A student really needs to learn that programs are
> structured, have rules, and have styles. I spend a few years teaching
> introduction to programming in Pascal, and the students who had
> already spent a few years on BASIC inevitably had the hardest time
> unlearning their "just scribble something down" habits.
>

Would you say that using machine code directly teaches poor programming
practices? It has most of the same problems as BASIC: it does not force
anyone to use any structure, has no enforcement of any particular style,
and lends itself even more easily than BASIC to egregiously hacky things
like punning on the bit patterns of constants and/or instructions. It
has goto, and conditional goto, but no such thing as, say, subroutine
abstraction.

Before you tell me that assembly has subroutine calls, note that I am
talking about machine code here; I know that there are assemblers which
package up subroutine patterns as macros, but I'm not talking about a
macro assembler language, I'm talking about machine code, or equivalently
a non-macro assembler.

I would say that the unstructuredness of machine code teaches people the
value of consciously imposing plan, structure, and design on a program
rather than relying on the language to do it for them, and thus makes
them *better* programmers.

And while I agree that BASIC is sort of an annoying and pathetically limited
language, I don't see a qualitative difference in what it teaches.

                                Bear



Relevant Pages

  • Re: Aspiring highest-order programmer
    ... > programming and not just subscribe myself to the one sole doctrine language, ... > have an assembly code stage before they become machine code? ... > is to understand assembly language. ... language and then assembler and only then high level language. ...
    (comp.programming)
  • Re: Future of programming
    ... > programming evolution, and no mention of software evolution. ... Being able to code in OOP in assembler, ... > My point, is that the syntax of machine code ops, represented by binary, ...
    (alt.lang.asm)
  • Re: Flamewar _ DO NOT READ
    ... Without having to buy expensive development kits ... ... I think the point you were trying to make, and it may be a valid one, is that it's one of the last that comes with a programming environment *that's designed for ease of learning by beginning programmers*. ... BASICs, Logo, Smalltalks, and some of the Lisp derivatives provide that, and of those, Logo and some of the BASICs and Smalltalks are relatively easy to learn too. ... More commonly, it's the shell, Explorer, that gets into a wonky state and needs restarting, but you lose all your open-folder-window session state if you restart Explorer in any other way than by rebooting. ...
    (rec.games.roguelike.angband)
  • Re: With all do respect Gentlemen
    ... I have always been told that the only stupid question is the one you ... 1984 I started programming on my first IBM PC ... IT's not that your questions are stupid, it's that you obviously haven't even bothered looking at the manual to discover the very basics. ... If you really did teach yourself all those languages, then you should be at least starting with this one by making an effort to discover the very basic steps, before asking for help. ...
    (comp.lang.php)
  • No Starch Press releases--VB Express 2005: Now Playing
    ... Covers programming basics before diving into details, ... "VB Express 2005: Now Playing" ... write this book," said Bill Pollock, founder of No Starch Press. ...
    (comp.os.linux.announce)