> I blame 8080. It's not accessible. Is it technically more advanced? Perhaps.
I think blaming 8080 is extremely inappropriate here, as it is historically inaccurate. Intel 8080 is a preliminary microprocessor (and usually even not considered a x86 processor at all), it was designed in the early 70s, it was very accessible. Arguably, it was the processor that created Altair 8800, which was the ancestor of the entire lines of home computers in the 80s. The original Microsoft BASIC interpreter also targeted Intel 8080 and Altair 8800, the BASIC interpreter would later be licensed to all the other home computer manufacturers including Commodore. The derivative of the Intel 8080, Zilog Z80, was used on Sinclair and MSX computers, particularly, ZX Spectrum is the British-equivalent of Commodore 64, and MSX is the Japanese equivalent (also made and sold in some European countries) and introduced a generation to programming.
With the correct historical background in mind, you better to blame 8085, 8086 or 8088. It was those processors that established the x86 architecture and the IBM PC, leading us to desktop computing as we know it today.
Long words short, 8080 gave us home computers. 8088 gave us desktop computers.
I think its more the removal of the compiler from a default installation that has killed programming for kids. If the major OS's still shipped with tools onboard (i.e. without requiring an additional install) that enabled development out of the box, the barrier to entry would be lower.
As it is however, developer tools are a multi-billion dollar industry, and there is very definitely a desire by all the players in this space to milk it for every penny.
When did computers ever come with a compiler in a default installation? And when was that ever a kid's first exposure to programming (as opposed to interpreted BASIC)?
Everyone I've talked to who got into programming as a kid (as opposed to through school/a job) was through BASIC/Visual Basic or making web pages and adding JavaScript, or though some kind of game scripting language. For me it was HyperCard/HyperTalk.
Home computers didn't ship with compilers either. On an Atari ST you had the option to get a commercial C-Compiler from DRI and Megamax. The DRI compiler suite required you to disc-jockey multiple floppies to compile (in two stages), and then link the final executable, where intermediate object files had to be stored on floppies as well. RAM disks only helped so much on 1024 or 512 KB RAM.
A web browser has a full compiler/interperter available. JavaScript isn't the best language in the world, but in context, these simple BASICs derived from Dartmouth BASIC were so crappy that Dijkstra said
> It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.
and wrote Go-to Considered Harmful talking about BASIC.
ie. it's not a high bar we're trying to reach here.
I think the distinction needs to be made between native development, which is much more performant, with far less dependencies, than web-based development - which requires a great deal of runway before it can be launched.
Removing compilers from the base OS install package has been detrimental to application development, and has created a bias towards web-based tools, for the reasons you state.
Outside of Unix, base install has never included compilers. And the people talking about yesteryear's more introspectable computers aren't talking about Unix workstations.
These people are talking about BASIC interpreters, not native development.
And there's no dependencies for web based development unless you want them. Just open notepad and save a .html file. Done.
PowerShell is a relatively recent default inclusion in Windows, and it's not marketed or thought of as "You can build your own games with it!"
Bookstores used to be packed with things like "The Big Book of Computer Games" and magazines with program listings for interesting programs you'd type in (a task my mother and I shared). A blog/video series about using PowerShell for simple games would be pretty interesting.
Windows default file editors aren't that great either. The C64's full screen editor was designed for entering and editing BASIC programs, very visually.
I didn't say you couldn't write games using PowerShell. I said there doesn't seem to be books or docs or blogs about using PowerShell for games, or for really anything other than system automation and system utilities.
I'm sure it's possible to write Eliza or a pong game in PowerShell. These are the kinds of things that introduced kids to programming, and without an easily accessible, included language with the mindshare that they are appropriate for entertainment purposes, less experienced but curious people will gravitate away from it.
> Early x86 / DOS machines were very accessible. They all shipped with BASIC
Yep!
The original IBM PC/XT machines came with BASIC in ROM. If you turned it on without a DOS floppy disk in it, it booted into BASIC instead. On early IBM PC clones (that omitted BASIC to save cost), instead of saying "no boot disk found" they would error out with "No ROM BASIC"
The BIOS interrupt call 18h still exists to launch BASIC from ROM
> If Windows had shipped with the equivalent of GW-BASIC + extensions
Windows 98 shipped with Windows Scripting Host that could run .vbs scripts. I wrote a lengthy (10 page, IIRC) "introduction to programming" article for a gaming magazine years ago that only used VBScript since that was simple enough syntactically (no weird sigils) and available in every computer out of the box (i even got a couple of people thanking me for this :-P).
And of course Internet Explorer with JScript was in there since Win95 OSR.
True, it doesn't. I've expressed this opinion in my further reply in the thread, https://news.ycombinator.com/item?id=19953066, and suggested the cultural shift due to desktop computing is a better angle to view this issue.
I said "you'd better to blame Intel 8086" rhetorically just to pointed out some historical background.
I think you mean “6502 gave us desktop (micro)computers.”
Most 8080 and then Z80 systems of the mid-1970s used S-100 and were oriented around a separation of CPU and I/O, i.e. “Just plug a surplus terminal or teletype into a serial port to use the computer!”
It was really the 6502 and its use by the original “self-contained” Apple I that made desktop microcomputers a real product. Yes, buying an Apple I just you just got a board, but it was it intended to be put in a desktop case (and advertised that way) with a surplus keyboard and plugged into a TV, and could use audiocassette for storage. That made it way more approachable.
> Or, we (as in I) can blame no one and instead, only realize there's no blame to manage.
I agree, I think the problem was not a particular microprocessor, but a greater cultural issue. At the end of home computer era, a PC has became someone's workbench, end users are not expected to learn and write programs anymore. There were bright sides, Xerox Alto, GUI, desktop publishing, multimedia, widely-available programs, no need to repeat those stories, we all know them. Meanwhile, accessibility to programming has largely been lost in this process.
On second thought, it's not all black-and-white, some accessibility to programming still exists. On Unix-like systems, "python", "perl" is one command away, and even on Windows, JavaScript is one browser window away. If the next generation rewrites the computing history today, I wonder what tools/environment would be seen as the 21st century equivalent of 6502 and home computers. I'm sure it would have a dedicated chapter to Raspberry Pi and Arduino devboards at least.
>> even on Windows, JavaScript is one browser window away
I have nothing but love for Bill Gates' software. I programmed my vic 20 using his BASIC.
In my twenties I had no trouble picking up WINTEL + JS. But that's because I had already learnt what is computing. I had already realized what is a virtual machine and what is a "high-level language".
When I try to explain to my kids the architecture that is today's computing I don't know where to start. Now I wish there where sprites. When I was ten I grasped the concept or sprites.
There is a fair amount of cargo-culting in the following statement but I still believe in it:
If we had maintained the 8-bit architecture and even 6502 as a "gateway drug", today, we would be much better off. Talent is hard to find, in my mind, because there is no longer a C64.
There was nothing remotely close to the Python infrastructure we have now, complete with fairly advanced software constructs in fairly accessible manner. Also keep in mind that there are other engineering disciplines than software. In those disciplines, the key is becoming an expert user in a a very high level tool, such as LT Spice, Solidworks, various FEA packages, etc., and even higher level more specialized tools. There, to design something, there is no time to fiddle with actual coding, unless you’re a graduate student actually writing a new tool.
At the 8 bit computers and some of the 16 bit home computers they all came with aversion of BASIC. That meant people with even different machines could trade information.
I am not saying which language microcomputers should come, just that if all the microcomputer came with the same language from day one we would see a lot more people programming today.
Personally, I don't like Pascal and I know a lot of people are against BASIC. What about Comal? You need something that is easy to program the simple stuff, but has the ability to teach good programming style.
A lot of people who learned programming in the home computer era learned through BASIC which was already a very high level language (well, except perhaps the C64 one which was kinda crippled, but that was an exception), often with graphics commands to draw lines, circles, etc, play sounds, do color, etc. Some of them went on to learn assembly, but that came later, after they got their feet wet with the high level BASIC.
This isn't any different than someone learning -say- Python or JS today and then moving on to C or C++. If anything, i know artists in the game industry who started learning Python to automate some stuff in their workflow and then slowly started using C# and C++ (often such people end up as "technical artists" in bigger teams, which is an in-between artists and graphics programmers, implementing high level systems for artists and designers on top of the low level systems graphics programmers provide).
The original discussion was accessibility to programming, and now it's top-down vs. bottom-up programming, which is a different topic. But IMHO, even if you believe top-down is not as good as bottom-up, it's still better than your original parent comment, which explicitly mentioned no programming at all.
You're right, it's a different topic entirely. I was trying to enforce the notion of the 8-bit architecture being superior to our current to beginners because of how easy it was to comprehend, even at the hardware level.
Looking again at my kids, I'm starting to question my initial premise that everyone should learn programming. They seem to want to become either the best fruit market owner in the world or the next Zlatan.
There's still a little cottage industry of 6502 (and its successor, 65816) homebrew computers[1]. You can still buy them from electronics distributors[2]. There's also a very good Basic[3] available. Building one of these may be a good learning experience with kids.
1908s computers were way simpler, and with far fewer distractions than modern machines.
I think buying an Apple ][ missed the point. I think misterman0 meant to say is not the specific issue of teaching his own children to write programs, but accessibility to programming in general (I invited my brother to play a text based adventure game [...] He was eight. I was still ten.), and how the low accessibility has buried many potentially talented children from exploring it by themselves (I have two kids now. 9 and 12. They are brighter than me. [...] My son started his YT channel at the age of 8. Mostly in game footage. He uses down pretty cool sw to edit his clips.).
I was one of those kids with an Apple ][ and in fact I still own it. I thought about setting it up for my own kids (now 16 and 18) years ago to tinker with. But I realized that it wasn’t due to accessibility that they aren’t interested in programming. Times change and my things aren’t their things. If they wanted to program, there’s a lot of modern and accessible environments to start with. They had plenty of friends doing things like LEGO mindstorms or finding other ways to program. I realized they were no more interested in programming than learning how to change a spark plug when I tried to show them that. And it wasn’t because computing (like many other things) has become more complex.
I’m not really even sure computing is less accessible now. Kids find a way.
I think blaming 8080 is extremely inappropriate here, as it is historically inaccurate. Intel 8080 is a preliminary microprocessor (and usually even not considered a x86 processor at all), it was designed in the early 70s, it was very accessible. Arguably, it was the processor that created Altair 8800, which was the ancestor of the entire lines of home computers in the 80s. The original Microsoft BASIC interpreter also targeted Intel 8080 and Altair 8800, the BASIC interpreter would later be licensed to all the other home computer manufacturers including Commodore. The derivative of the Intel 8080, Zilog Z80, was used on Sinclair and MSX computers, particularly, ZX Spectrum is the British-equivalent of Commodore 64, and MSX is the Japanese equivalent (also made and sold in some European countries) and introduced a generation to programming.
With the correct historical background in mind, you better to blame 8085, 8086 or 8088. It was those processors that established the x86 architecture and the IBM PC, leading us to desktop computing as we know it today.
Long words short, 8080 gave us home computers. 8088 gave us desktop computers.