[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: My First Computer (was Computing Editorial)
On Sun, 09 Feb 2003 06:17:01 GMT, Lee Hart <leeahart@earthlink.net>
wrote:
>Lee Hart wrote:
>>> 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.
>
>Carl Gundel replied:
>> This was true of BASIC only until the mid '80s, when BASICs began
>> incorporating user definable functions and subs. Most versions of
>> BASIC today do have this feature.
>
>Yes, indeed. Modern BASICs have so many features that they aren't BASIC
>any more. The extra features clutter up the language so that it isn't at
>all easy to learn any more. And, they aren't fast, or efficient, and no
>longer run on very small machines.
>
>I think part of the success of the early microcomputers (like the Apple
>II, Radio Shack TRS-80, Commodore 64, Atari 800 etc.) was that they came
>with BASICs that were simple enough to be easy to learn, yet
>sufficiently powerful to do useful things. They had a good balance
>between ease of use and performance.
>
>> I think this is an important feature, but it certainly wasn't needed
>> for me to get started when I learned BASIC. In fact, too many fancy
>> features probably would have scared me off. ;-)
>
>Exactly my point!
>
>> Many people who enjoy programming for fun will never do it to earn a
>> living, and IMHO it's fine to have a language which can accomodate
>> the casual tinkerers as long as it can also accomodate more advanced
>> students. Learning BASIC early on didn't stop me from learning Forth,
>> C, Smalltalk and Java later.
>
>I agree completely. In fact, when learning is also easy and fun, people
>do a lot more of it. The existence of BASIC *encouraged* me to learn
>other languages!
>
>> As far as BASIC being made extensible in a fashion like Logo or Forth,
>> it wouldn't be BASIC anymore.
>
>This could be true. The extensions could totally alter the language
>until it became unrecognizable. However, as a beginner I can recall my
>frustration with having to give repeated strings of code meaningless
>names (like GOSUB 12340 instead CLEARBUFFER). It felt like even simple
>BASICs should have had a way to define new keywords just as you can
>define new variables. I really took to FORTH because it had this
>ability.
And this extension is exactly what TI Extended Basic had in 1980. You
could have either:
10 HELP$="HELPFILE"::GOSUB 1000 ! ugly passing parameters via common
variables
1000 ! Display helpfile
1010 OPEN #1:"DSK1."&HELP$,INPUT
.
.
.
or you could have
10 CALL HELP("HELPFILE")
.
.
.
1000 SUB HELP(HF$)
1010 OPEN #1:"DSK1."&HF$,INPUT
.
.
.
1020 SUBEND
You could even redefine built-in subprograms.
CALL CLEAR cleared the screen.
10 CALL CLEAR
.
.
.
1000 SUB CLEAR
1010 PRINT "I WILL NOT!"
1020 SUBEND
would print out the message instead of clearing the screen for
example. More useful is using this ability to capture notes from CALL
SOUND statements, although the variable parameters in a SOUND
statement may make this a multi-pass solution requiring merging of
data files after the fact, I have done so with some neat results.
TI XB had these features for the TI-99/4A back around 1980, and when I
worked on DEC VAX, VAX BASIC also had the same syntax for subprograms,
although I can't state when they were added to VAX BASIC.
I didn't see these features in another Basic, until I saw a version of
Microsoft Basic for the Mac in a computer magazine a few years later
(Home Computer Magazine).
>That's why I am thinking that "my first computer" should have LOGO,
>BASIC, and C. LOGO is good for really young childrend, and lets you play
>with an extensible language. BASIC lets you write programs immediately.
>C lets you move to a mainstream language with more power, but that also
>requires a lot more knowledge and sophistication.
By the way, TI was the microcomputer pioneer in Logo, and had two
excellent versions, that besides the list processing, included
sprites, turtle graphics, and in version 2, music.
I've added comp.sys.ti to the list of ng, I think it could use the
traffic.