2 ms·
The article delves only very shallowly into programming, so it stays away from this problem, but Commodore 64 BASIC is fundamentally unsuitable for programming
by teddyh 4y ago
The article delves only very shallowly into programming, so it stays away from this problem, but Commodore 64 BASIC is fundamentally unsuitable for programming anything larger than a few lines of code.
The most widely used version of Basic which Commodore (and other) platforms used does not have functions. This makes Basic programs tend to spaghetti and unreadable code, especially considering the constant memory constraints of those platforms. I grew up on these systems, and every time I think back on it I wish something like Forth would have taken its place – i.e. something with a clean and scalable pattern for abstraction. Basic, on the other hand, doesn't do abstractions. It barely has data types and what it calls “functions” are an even more limited form of Python's style of lambdas; every subset of code which can actually do something looks like “GOSUB 11600” when you call it. No naming, no abstractions, nothing. (No parameters or return values, only global variables.)
(This is in some ways even worse than assembler, which usually has labeled goto’s.)
When I programmed in Basic those many years ago, I was stalled when my programs reached a certain level of complexity. I was then mostly halted in my education and development as a programmer for many years, because the language did not make program composition easy. It was not until I had the opportunity to learn other languages with did have proper functions and other methods of program composition that I could break through the barrier, so to speak.
(Reportedly, BBC Basic on the BBC Micro did have proper named functions, and later versions of Basic like on the Atari ST and Amiga also had them. I believe that those versions of Basic would have been vastly more productive and taught people the usefulness of abstracting things as you go, building ever higher abstractions, etc. But this is never the version of Basic which people talk about, or used by all those listings in magazines, etc. These are, for all intents and purposes, not the “80s style Basic” which everybody remembers with such apparent and baffling fondness.)
(Mostly a repost of a previous post of mine: https://news.ycombinator.com/item?id=34033513 https://news.ycombinator.com/item?id=34033513)
- lproven 4y ago> The most widely used version of Basic which Commodore (and other) platforms used does not have functions. Jeez. That's an American problem, that. Even ZX Spectrum BASIC had named functions. BBC BASIC didn't just have functions, it had full named procedures, with multiple parameters and local variables, so programs could use recursion. I knew Commodore BASIC was bad, and have written about it: https://liam-on-linux.livejournal.com/71381.html https://liam-on-linux.livejournal.com/71381.html Which in turn was picked up in other places, e.g. https://hackaday.com/2020/05/28/jack-tramiel-got-a-good-deal-and-ruined-everything/ https://hackaday.com/2020/05/28/jack-tramiel-got-a-good-deal... But I didn't realise it was that bad. Even the budget European 8-bits of 1981 or 1982 were better than that!
- teddyh 4y agoThat’s a UK-centric perspective. The rest of Europe did not, by and large, use Spectrums or BBC Micros; they all mostly used Commodore 64s. (I am not an American.) AFAIK, Americans mostly used Apple ][, not Commodore, which also had the Microsoft BASIC without named functions, IIUC.
- lproven 4y ago> The rest of Europe [...] mostly used Commodore 64s. I don't think that's true. I was a teenager in the 1980s; I had one (1) friend with a C64. The only other person at university with their own computer was, like mine, a ZX Spectrum. The Spectrum 128 was designed in Spain by Investronica in Spain, and first sold in Spain: https://medium.com/@uto_dev/the-awakening-of-the-spectrum-128k-3732c7377788 https://medium.com/@uto_dev/the-awakening-of-the-spectrum-12... In Portugal, they also had their own version of the Spectrum, derived from the American Timex-Sinclair 2068: https://timex.comboios.info/tc2068.html https://timex.comboios.info/tc2068.html Poland had a version too, the Unipolbrit: http://oldcomputer.info/8bit/unipolbrit/index.htm http://oldcomputer.info/8bit/unipolbrit/index.htm Of course in Comminist times, there were many Spectrum clones in East Europe; this article lists about 60 or 70 different makes (not models, but brands, many with multiple models): https://en.wikipedia.org/wiki/List_of_ZX_Spectrum_clones https://en.wikipedia.org/wiki/List_of_ZX_Spectrum_clones In France there were lots of unique machines, the Thomson, Hector, Victor and others: https://hackaday.com/tag/french-computers/ https://hackaday.com/tag/french-computers/ https://www.abandonware-france.org/ltf_abandon/ltf_infos_fic.php?id=103539 https://www.abandonware-france.org/ltf_abandon/ltf_infos_fic... Tangerine's Oric, Atmos and Stratos line were also big, especially in France I believe: http://www.computinghistory.org.uk/det/526/Oric-1-48k/ http://www.computinghistory.org.uk/det/526/Oric-1-48k/ https://www.old-computers.com/museum/computer.asp?c=79 https://www.old-computers.com/museum/computer.asp?c=79 https://www.old-computers.com/museum/computer.asp?st=1&c=226 https://www.old-computers.com/museum/computer.asp?st=1&c=226 There was even a Welsh machine, the Dragon series, as well as Camputers Lynx, Memotech, Tatung Einstein, Elan Enterprise, and many more. In the 1980s there was a huge and bewildering variety of home computers in Europe, many but by no means all British. And pretty much not a single one ran MS BASIC, because it wasn't very good. They all had their own. I haven't even touched on the Japanese market which was just as diverse.
- snvzz 4y agoHow bad Commodore 64's (most sold computer ever) BASIC was cannot be overstated. Great to power on and have the immediate mode prompt, great for learning the basics, sufficient for trivial tasks, but that's about it. Moving away from BASIC into assembly was how you'd get things done in that machine.