4 ms·
I too grew up with a "power on to basic" computer, in my case the ZX Spectrum. I don't think that people that did not have that experience at that age can truly
by normalhuman 8y ago
I too grew up with a "power on to basic" computer, in my case the ZX Spectrum. I don't think that people that did not have that experience at that age can truly get it. I was able to create graphics and play sounds with a very simple language. The text editor, the graphical display, the "OS", it was all the same thing. The manual taught you how to program in BASIC. It was an amazing tool of creativity and intellectual development. It was truly magical.
I know you mean well and I have nothing against bash, but I promise you it will not replicate that experience nor excite kids.
- teddyh 8y agoYour personal experience is not the only correct one. I assure you that the people coming before you, making their own computers out of chips and resistors with a soldering iron, would say the same thing about you. And people who grew up with Windows 98 say the same thing about people only exposed to iOS and Android, and so on.
- itomato 8y agoThey are all more justified than the person who claims Swift playground on an iPad is the pinnacle of CS for Primary School.
- teddyh 8y agoI understand, in a sense, what you mean (since I am of an earlier generation than the one which learned programming on that particular platform), but why should that necessarily be true? Hasn’t it always been the case that the current generation skips learning about useless lower layers used by older generations? How could it be that the layers you grew up are the special ones which are still useful, when all the layers which came before, which people at the time thought essential, have turned out not to be so? I am, below, trying to imagine what an argument could be for any specific example to be worse than the previous ones. One could make an argument that when the level of abstractions eliminate Turing completeness, they have eliminated an essential quality. (But this does not even eliminate Swift playground, I think, so in this case it does not apply.) Or one could make an argument about a lack of program interconnectedness, which, I am given to understand, is very much a problem in modern smartphone and tablet environments. But I could be out of date and/or misinformed. Nevertheless, it would be a reasonable argument (and I don’t know if it applies to Swift playground on an iPad or not). Very constrained environments, like Minecraft, can also be argued against on practical grounds – it’s simply too difficult to make something useful within them. Not technically impossible, just too difficult once you get up a bit in abstraction levels. In my opinion, this argument also applies, sadly, to BASIC: The lack of functions and other methods of abstractions is, I think, a killer. Or one could argue (which I think I personally favor doing) that software freedom for end users is an essential quality which must never be lost, for reasons which are only tangentially based on what is good for learning. It is almost special pleading, but has its own reasons for doing so, and the logic, on its own terms, is sound. But none of these arguments are insurmountable by some theoretical device and environment which avoids any or all of these specific criticisms. Therefore, I think that any argument based solely on the age and abstraction level would not be valid.
- itomato 8y agoDespite being an open language, Swift (and Playgrounds) is an effort to usher children into the Apple tent. BASIC (essentially any 3GL) never wore such a veil. To suggest discrete logic and IC-level assembly compares to issuing commands via the LEGO Mindstorms protocol perfectly illustrates the chasm between learning and understanding.
- 3rdAccount 8y agoAgreed. I'm a python beast, but really struggled with Assembly language in school. I'd have been better off with a ZXSpectrum earlier in life so I could've learned hardware. IMO high level languages (as insanely useful as they are) are similar to writing spells like a wizard and using assembly or even basic when you know all the registers...etc is more like a real science. Both are valuable, but I really wish I knew more about hardware.
- teddyh 8y agoHaving a ZX Spectrum would in no way actually help you learn hardware. The only thing it would do is to reinforce its realness, so to speak, which would help to motivate you to learn it. But it would not actually help you learn it – the design and learning curve of assembly language is what it is, and having access to running hardware (compared to having an emulator) does not change that.
- 3rdAccount 8y agoIt makes it easy to learn the hardware because it has a simple processor and makes it dirt simple to access. Windows on the other hand runs on modern chips and it isn't easy to run assembly without 3rd party software and graphics is also not something a child can easily handle. I suppose a good emulator would be similar, but emulation is a little bit of a lie :)
- teddyh 8y ago> Despite being an open language, Swift (and Playgrounds) is an effort to usher children into the Apple tent. Yes. That is certainly a good argument against that specific example, and it is one I agree with. But it does not apply generally. > To suggest discrete logic and IC-level assembly compares to issuing commands via the LEGO Mindstorms protocol perfectly illustrates the chasm between learning and understanding. But learning and understanding what? Why is it (as I imply that your argument is) important to understand assembly-level instructions when it is not important to understand the underlying electronics? Why is this level special? In addition to all the general arguments I outlined above, there is one additional argument to be made against assembly language: In today’s processors, I am given to understand that these assembly language instruction sets are largely a high-level language, emulated by microcode – the assembly instructions you write have very little to do with what the processor is actually doing in a modern hardware architecture, and therefore teach you exactly the wrong things about how a modern processor works.
- normalhuman 8y agoI think you misunderstand me. You are talking about computers and technology, I am talking about crayons, paint, musical instruments... Things that you can immediately use to create without restrictions. There was a small window of time when computers offered that for kids. There is no reasons why this could not be achieved with modern technology, but somehow our current culture prevents it. I'm sure it will be reinvented one day.
- flukus 8y agoThere's shell curses (https://www.ibm.com/developerworks/aix/library/au-shellcurses/?ca=dgr-lnxw09shellcurses&S_TACT=105AGX59&S_CMP=GR https://www.ibm.com/developerworks/aix/library/au-shellcurse...) that is very similar to graphics programming on those machines, minus the sprites. You can even do opengl programming: https://github.com/nrdvana/CmdlineGL https://github.com/nrdvana/CmdlineGL . There are some python shells around (the developer of one posts here) that might make for a better experience than bash though scripts though, either way they'll learn some real world tools.