6 ms·
In the old days you saved up an extraordinary amount of money, bought a Commodore 64, plugged it in, and then had absolutely no idea what to do unless you had b
by astrodust 8y ago
In the old days you saved up an extraordinary amount of money, bought a Commodore 64, plugged it in, and then had absolutely no idea what to do unless you had books.
So you went and got books or magazines, some maybe from the library, some from bookstores, and many of them might be for systems other than the C64. It wasn't uncommon for a magazine to have to cater to a dozen slightly different versions of BASIC: Apple ][, Atari, BBC Micro, PET, Sinclair, TI, Tandy, VIC-20 and more. I remember finding all sorts of interesting programs in magazines that weren't for the computer I had, so they were basically useless.
This was because a lot of BASIC code that did anything useful consisted of PEEK/POKE calls to manipulate memory, and as the memory layout of each computer was often completely different. Having a book about the Altair was of no help when trying to program anything but an Altair.
Even if you did get a book that had the right code, for the right hardware, typing it in was frustrating because the computer didn't ship with anything that resembled an editor. You just typed in line numbers and statements and hoped it all worked out. You could LIST your code, but unless you organized it well, you'd get lost quickly. Anything over a hundred lines became an unmaintainable mess of garbage.
So yeah, you could program, but you could only program in BASIC, and that language is one of the absolute worst. There's been joke languages that are more pleasant to use and more educational.
Today there's JavaScript and it works roughly the same everywhere, is thoroughly documented for free, and there's places to ask about coding that simply didn't exist when the C64 launched.
Going back is a mistake. Programming back then was a nightmare, it was an awful, discouraging experience, and I wouldn't wish it on anyone.
Presumably a lot of the golden-hued nostalgia here comes from the fact that you could program a computer, something that at the time was a relative impossibility for most people. That by typing in code you could make the computer Do Things, which can be thrilling.
The thing is today you have things like Arduino, the Pi, and others, where you can not only program them in sensible programming languages inside of civilized build environments, but you can make them interact with hardware in ways that really weren't possible on the C64.
For that sort of thrill, give someone a Feather board they can program with Micropython.
- dragonwriter 8y ago> In the old days you saved up an extraordinary amount of money, bought a Commodore 64, plugged it in, and then had absolutely no idea what to do unless you had books. While I never got a C64, I did get a Timex-Sinclair 1000, a Timex-Sinclair 2068, and a PC clone in the early-to-mid 1980s, and all of them came with complete BASIC manuals as well as other system documentation.
- astrodust 8y agoDid it come with a mentor to help you understand all of that highly technical material? Did you know anyone else that had a similar computer who was doing similar things with it?
- dragonwriter 8y ago> Did it come with a mentor to help you understand all of that highly technical material? It mostly was written for an audience of non-technical users, since there weren't enough technical users to make a mass market. The only mentor I had early on was my father (who had work done his way up from sales into an branch operations manager position for a farm machinery firm), who was learning alongside me. > Did you know anyone else that had a similar computer who was doing similar things with it? Yes, quite a few my age in elementary school did.
- astrodust 8y agoLucky you. Here the school districts were partitioned along different brands of computer. One would have Amiga, one Macintosh, the others a mix of C64/PET. Mine had, for reasons nobody could ever explain, settled on the Unisys ICON system: https://en.wikipedia.org/wiki/Unisys_ICON https://en.wikipedia.org/wiki/Unisys_ICON Nobody knew how it worked, and all you could do with them was look up books in the library or run some terrible typing tutor program. Everyone's personal computer, which was extremely rare to have, would be some random thing. C64 for one person, Sinclair for another. At first I borrowed a neighbour's TI 99/4A. Later a loaner C64 which was better because you could at least copy games for it.
- dragonwriter 8y ago> Here the school districts were partitioned along different brands of computer. And...what does that have to do with it? My elementary school had a handful of TI-99/4As. Oh, and a single PET. Others, sure, had different systems. > Everyone's personal computer, which was extremely rare to have, would be some random thing. C64 for one person, Sinclair for another. Yes, same here, except the “extremely rare to have”; most, but not all, of the people I knew from middle class backgrounds had at least one computer in the home. (My answer about similar computers was by class, not make and model; I didn't personally know anyone else with a Timex-Sinclair, though after I got a PC some other people I knew that did, too, but mostly several years later; people I knew had C64, TI-99/4 or /4A, Atari, Apple, TRS-80, and possibly some others.)
- bdamm 8y agoThat's silly. Javascript requires all kinds of knowledge to get started; what does this code mean, how do you hook it into a page, what is DOM, etc. That's a lot to ask of a 10-yr old. Meanwhile, any 10-yr old can understand this code: 10 PRINT "Hey there Joe" 20 GOTO 10 Boom. Functional program. Instant gratification. That will be the last program this person ever writes that provides such instant reward, but nevermind, that foundational idea that the computer can bend to your will is planted.
- astrodust 8y agoI can teach someone how to make a button blink in JavaScript in ten minutes. I don't have to explain what line numbers are. I only have to teach some very rudimentary HTML. From there they can absorb more knowledge and do really cool things. That BASIC program is garbage and nobody cares. Seeing your name on a screen doesn't carry the same thrill it did in 1985. Show someone PONG today and they will wonder if you're playing a joke on them. Show someone PONG IN 1972 and you'd blow their mind.
- dvfjsdhgfv 8y agoYou both have a point. When I showed a text-mode adventure to a kid, their reaction was "Really? Why would anyone play such a thing these days?" On the other hand, getting started with toy twoliners involving a question and a simple arithmetic answer can spark some interest. The effect is augmented if what you type can have an immediate effect on hardware like in the case of Duinomite where the inerpreter is running on the MCU itself and doesn't need uploading like on the Arduinos or Mindstorms.
- astrodust 8y agoIf you want to get kids engaged, Minecraft is the best learning environment out there. You can get a computer that runs Lua in the game, and that thing can interact with devices and the environment. You can write a couple of lines of code that spawns pigs. From there anything's possible. Subjecting someone to the ridiculously spartan environment that is the READY prompt is the polar opposite of encouraging.
- khazhou 8y agoSorry but none of that has anything to do with OPs request, except for where you say BASIC is terrible. - Lack of resources (books, mags, etc) -- no longer a problem - Platform differences and PEEK/POKE -- also not relevant. The Basic OP asks for would presumably have the necessary graphics/audio functions - Typing is frustrating -- also solvable easily. Just because a system drops you into Basic (aka a shell) doesn't mean you can't have a decent editor. I very much second OP's request. I'd love a laptop or fullscreen app for my young kids that is just an editor and interpreter.
- astrodust 8y agoHere you go: http://jsfiddle.net http://jsfiddle.net An editor and an interpreter. Works in anything that can get a web browser going, which includes phones, game consoles, smart TVs, refrigerators, and amazingly even computers.
- yters 8y agoI got into programming to make games, and the platform agnostic BASIC listings were enough for me. The fanciest device usage I did was drawing pictures and making the computer buzzer play tunes.
- itomato 8y agoGoing back to a world where free and open software was the norm would be a mistake? Being able to buy one of a half-dozen or more periodicals with informative commentary on an accessible programming language would be a mistake? Empowering a generation of STEM learners with a basic programming language centered around the bedrock of computer science would be a mistake? Safely and easily gaining first-hand experience with low-level hardware engineering principles would be a mistake? Not PEEKing and POKEing in Primary school is a mistake.
- astrodust 8y agoIf you think BASIC was free and open have I got a letter from Bill Gates to show you. GCC is free and open. Clang is free and open. BASIC is commercial, proprietary, closed-source software. The "bedrock of computer science" is machine code, or if you're not a fan of reading and writing hex values or flipping physical switches on your Altair, then assembly. Everything after that is an abstraction.
- abritinthebay 8y agoLOL what? BASIC has been around since before Microsoft was even a glint in Gates & Allen’s eyes. Since 1964 to be exact. While many 8-bit versions of BASIC were derived from MS BASIC (1975) it was hardly Microsoft’s baby. Atari BASIC for example has zero to do with MS. Neither does TinyBASIC BASIC itself is absolutely free. Certain implementations are not.
- dvfjsdhgfv 8y agoThere are free and open BASIC interpreters and even compilers.
- astrodust 8y agoThere are now, but this was not the case until relatively recently.
- itomato 8y agoGates' copyrights on implementations of BASIC don't interest me. Blackjack, bubble sort and tower of hanoi in human-readable BASIC do. C isn't suitable for most K-8 students. Explain malloc while I handle PRINT, INPUT, PEEK and POKE. We'll meet at memory registers and see whose student feels more confident. You've created a layer cake of abstractions with your OS, advanced filesystem and C compiler (plus libraries). I presume a mouse and metaphorical desktop "icing" are included.
- syn0byte 8y agoIf one side is "Golden-Hued", the other side takes for granted what they learned along the way to get to the current state. We abstract away the concept of memory addresses and pointers in some languages. Great! Until your program segfaults and now because you don't understand how memory addresses or layout work you can't tell what part of your code is causing the problem nor why it is a problem at all. Is the problem even in your code or one of the dozen module packages you imported because you were told to(they will explain the modules in a later chapter)? Why your object instance disappears between calls in an app because you didn't access it quickly enough or the 'right' way and the GC reaped it. WTF even is a garbage collector and why do we need it(again, they will cover that in a later chapter) Modern computers are like airplanes. Why would you make a piloting student learn on an old, purely mechanical Cessna prop plane instead of a modern Gulfstream? The Gultstream is way safer, way faster and way harder to crash after all.
- madengr 8y agoThe C64 came with a decent book.
- kmonsen 8y agoI was going to say the web browser. It is pretty easy to start learning with HTML, than CSS and JS. There is immediate feedback and you can copy and modify sources from other places. The benefit is that it is really quick to build something decent and useful.
- dasmoth 8y agoI’m absolutely convinced that typing stuff in — carefully! — from magazines or books was one of the most productive bits of my early experiments with a computer (BBC in my case). I’m sure I’m not the only one who thinks this — for example, the “hard way” books seem to by trying to re-create this experience [1]. Spending some time typing code gives it a chance to percolate in a way that quickly glancing at it before “click to run” doesn’t. [1] https://learnpythonthehardway.org/python3/intro.html https://learnpythonthehardway.org/python3/intro.html