[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: My First Computer (was Computing Editorial)
Lee Hart <leeahart@earthlink.net> wrote in message news:<3E42B45F.287D@earthlink.net>...
> Lee Hart wrote:
> >> What does a computer need to be a great learning tool? One that can
> >> capture a person's imagination; make him/her *want* to learn more?
> >> Here are some ideas:
> >>
> >> 1. It needs a built-in easy-to-use programming language.
>
> Ruud Baltissen Ruud.Baltissen@abp.nl wrote:
> > People with another native language than English have one
> > disadvantage: all programming languages I know are based on English.
>
> Not all; for example, APL and machine language, as Holger Petersen and
> Paul Schlyter remind us. But most programming languages are indeed
> english. That's a disadvantage when a majority of the world's population
> doesn't speak english (and, coincidentally, where computer skills are
> the most lacking).
Maybe not coincidentally.
>
> So, a language that doesn't require good english is an asset, so a
> beginner doesn't have to learn too much at once. (How popular would
> computers be in America if you had to read/write some foreign language
> to use it? :-)
Bi�n s�r! :D
>
> Roy Exegete wrote:
> > A LOGO that does more than just turtles (I know, nearly all did, but
> > that's all I ever saw my kids taught in school) and that can compile.
>
> LOGO is great for beginners! Even children too young to read can use it
> when the keyboard is marked with icons (forward, turnright, penup,
> pendown, etc.) This works especially well when the computer is a
> physical "turtle" robot, not a simulation on a screen.
>
> And, LOGO still thrives today. I read the comp.lang.logo list and there
> is a lot of very interesting stuff going on. Modern LOGOs are as
> powerful as C++ and Java. However, they are no longer simple. It's
> become just another language for advanced programming.
>
> Ruud Baltissen Ruud.Baltissen@abp.nl wrote:
> > Regarding the language itself: any language is good as long as you
> > have a good tutorial and don't need complicated instructions to
> > perform something at all.
>
> A good tutorial and lots of examples helps to learn any language. But
> the language itself must also be structured to make it easy to learn. It
> can't have too steep a learning curve: That's the problem with machine
> language; you have to know too much to do even simple things. People get
> discouraged and quit before they have learned enough about it to be
> useful.
I know...
>
> > This is one of the reasons I advise people to start with Basic. A
> > simple '10 print "Hallo"' is enough to archive something.
>
> BASIC is good. It is weak for constructing large programs, but great for
> small ones. It's a kind of baby-talk for computers. Even young children
> can learn it quickly, but will (hopefully) outgrow it at some point and
> learn something better.
I started programming at 4 with Applesoft BASIC. At 19 I took the
plunge, learned a little C++, then learned a lot of C. I use C mostly
these days, but my BASIC origins show. ;)
>
> It has the drawback of being english-oriented, but that is fixable (as
> others have pointed out) by keeping the keywords and tokens in a table
> that the user can change. A neat aspect to this is automatic
> translation; I might write a program in english, email the tokenized
> form to a friend in Germany, who LISTs it in german!
>
> I think the big downfall of BASIC is its lack of extensibility. It's
> great to start with a minimal set of keywords; but you quickly want more
> capability. Adding it with GOSUBs quickly produces a mess. So, I think
> what you want is a way to extend the language as you learn, like LOGO
> and FORTH.
>
> Way back in 1976, Dennis Allison and the People's Computer Company were
> developing tiny BASICs for the early microcomputers. They envisioned it
> as a tiny language for kids and learning. Tom Pittman wrote a popular
> version that ran on the 6800, 6502, 1802 and other CPUs. It was
> structured like an onion, in layers. Your BASIC program was run by the
> Tiny BASIC interpreter. This interpreter was written in an Intermediate
> Language. The intermediate language was run by an inside interpreter,
> written in machine code unique to the particular CPU.
>
> You could extend Tiny BASIC by changing the IL interpreter program. Your
> changes would automatically work with any other Pittman Tiny BASIC.
> People added I/O commands, PEEK/POKE memory, string manipulation, etc.
> This gave you BASIC, but now you had a way to make it extensible in a
> structured fashion.
>
> The IL language looked a lot like a machine language, but was a lot
> simpler. There are only 40 simple instructions, so it was a "bridge" --
> harder than BASIC, but easier than machine language.
A pseudocode. Inform uses the same idea in its compiler, I think, as
does UCSD Pascal.
>
> So... maybe the way to do it is to have an intermediate language (small
> C?), and write LOGO and BASIC interpreters in it. Very young kids start
> with LOGO. They move to BASIC, which is more mainstream and has lots
> more examples. When they want more power and capability, drop down a
> level to C, and add the features they want to BASIC. Eventually, they
> will outgrow BASIC entirely and just program in C. Ultimately, they will
> drop even one step lower, and go into machine language.
Machine language? Byte diddling? That's two steps lower (drop down
first to ASM).
BTW, I doubt many people who tinker in C would drop down to ASM, let
alone bytecode. I certainly don't think I have the mind for ASM -
6502, Z80, 8088 or any other kind! :)
-uso.