Re: Interesting bug

From: Richard Delorme (abulmo_at_nospam.fr)
Date: 04/24/04


Date: Sat, 24 Apr 2004 11:16:10 +0200

Dan Pop a écrit :
> In <408822c2$0$7785$7a628cd7@news.club-internet.fr> Richard Delorme <abulmo@nospam.fr> writes:
>
>>The commodore-64 had 20K of ROM and 64K of RAM, so the memory resource
>>was not that much limited.
>
> Maybe, maybe not. The 20K of ROM were probably holding plenty of code
> that had nothing to do with the BASIC interpreter itself. There is also
> the execution speed issue: GOTO lineno is much faster to implement in an
> *interpreter* than scanning for the matching ELSE or reverse scanning to
> find the beginning of the loop. Sure, such things can be accelerated,
> by giving up the pure interpreter model, but this requires even more
> resources.

I don't think that technical considerations were really important.

> The PC implementations supporting structured programming features
> were typically incremental compilers...
>
> Then, there is the marketing issue. The vast majority of C64's were not
> supposed to be programmed in BASIC (or any other language), they were
> supposed to be used as game machines. Games implemented in assembly.
> Due to that, certain, game-oriented hadware features of the machine were
> not even properly supported by the BASIC interpreter. So, the vendor
> correctly (from HIS point of view) decided not to invest too much
> resources into a sophisticated BASIC implementation where a simple minded
> one could serve equally well.

That's the main point. The lake of competition, the availability of a
simple and inexpensive BASIC made by Microsoft for their platforms, and
other marketing issues can well explain the choices made by Commodore.
So, whatever if standardized specifications for a better BASIC existed
and the machine was powerful enough to handle them, they did not bother
implementing it.

> I'm sure the really talented kids, who found
> the limitations of the builtin BASIC annoying, could find better
> alternatives.

Yes, here is an impressively long list of available languages for
commodore-64:
http://www.npsnet.com/danf/cbm/languages.html
The availability of structured languages (BASIC included) also shows
that the commodore resources were relatively sufficient to handle them.

>>According to Thomas E. Kurtz (co-inventor of BASIC), line number
>>suppression and structured programming appeared in their Dartmouth BASIC
>>around 1975, in order to avoid "spaghetti code":
>>http://www.truebasic.com/downloads/D2001.pdf
>>Of course, in 1975, no resource-rich PC was available.
>
> So, they probably used resource-rich mainframes, so I fail to see your
> point.

A GE-635 (1966-1975) followed by an Honeywell 66/40 (in 1976). Their
resources were quite comparable to a commodore-64, and were shared among
many users (up to 200).

>>>Then again, no matter how many minds Dijkstra's paper might have changed,
>>>there is plenty of proof that well structured code can be written with
>>>gotos and badly structured code without. The tool might help, but it
>>>cannot replace the skill of the craftsman.
>>
>>Certainly, but it is quite clear to me that Dijkstra's paper changed
>>Kurtz & Kemeny minds so that they made their Dartmouth BASIC a fully
>>structured language, and that was several years before the release of
>>C-64 BASIC v2.
>
> So what? Are you suggesting that the resources of the C64 were comparable
> to those of a mainframe from the mid-seventies?

Probably, but that's not the problem. I just want to show that BASIC
could have been a well-structured language on the family and personal
computer of the early 1980s.
I think Kurtz and Kemeny shared a similar opinion when they decided in
1983 to create a company to make "available to everyone a high-quality
BASIC", as demonstrated in this Kurtz' interview:

(from http://www.truebasic.com/downloads/D2006.pdf)
Q: How did Dartmouth BASIC become True BASIC?
A: Teaching at Dartmouth, John Kemeny and I were shielded from some of
the worst implementations of BASIC. For example, we stopped using line
numbers in 1975, just as personal computers were being invented.
Dartmouth BASIC had continued to evolve into a more and more
sophisticated language that was a joy to use. However, in 1983, three
Dartmouth alums challenged us to look at the versions of BASIC that were
out there, all different on the different computers. We were appalled at
how terrible these crude `street' versions were, and what high school
and college students and teachers had to contend with. We knew that
writing papers or delivering talks would have little effect so we
accepted the challenge of forming an independent commercial software
publishing company and making available to everyone a high-quality
BASIC, one that reflected our years of teaching experience.

-- 
Richard


Relevant Pages

  • Re: Programming Language Comparison
    ... language they would like to use for teaching people how to program. ... Another part of this is evaluating existing resources. ... learning how to program for each particular language. ... I think Ruby should be yellow here. ...
    (comp.lang.ruby)
  • Re: Substituting the main menu bar(s)
    ... was from Quebec and therefore was able to give me a translated DLL to work with. ... resources in favor of MESSAGETABLE resources. ... from one language to another; we didn't have to do that. ... Translation products that work on the exe (by stripping out the resources, ...
    (microsoft.public.vc.mfc)
  • Re: Internationalizing an app
    ... MFC does have some rather naive views of resources; it took until VS.NET to be able to ... you have to be running the native Windows OS for the language for it to find ... we haven't have any complaints about the way we're translating. ... They are happy enough with the translations so as not to complain ...
    (microsoft.public.vc.mfc)
  • Re: Info for a dummy wanted
    ... COMAL has been available for some time, mostly for Commodore 32K PET/ ... It's a sound language: ... good deal of memory, leaving room for only a small user program. ... COMAL 0.14 is available from clubs, user groups, and the ...
    (comp.os.cpm)
  • Re: Bloomberg joins the Learn to Code hype
    ... were convinced (by Microsoft) ... Commodore was ahead of Apple and way ahead of Microsoft. ... You may note that the Amiga was not created by Commodore but by some ... Programming Language that was being developed at the Atlas Laboratory ...
    (comp.lang.cobol)