Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'm a bit too young to know how well the Apple II was documented for programming. However, people like Jordan Mechner (creator of the original Prince of Persia) were spitting out 6502 assembler code at a rather young age, weren't they? And it's not like that's a trivial task. Mind you, there was no internet as we know it today with StackOverflow and other resources, in fact, the internet was still pretty much in it's infancy.

I agree there's a lack of ways to develop directly on ARM, but that should change pretty soon with the Raspberry Pi as you point out, or any other such platform. For the rest of us there are development boards which usually come with quite a bit of documentation on their usage. Anybody determined enough to learn that stuff will be capable to do so, I think.

Python again is more like a magic wand that does most things for you. When I learned coding I constantly kept wondering how those calls actually worked and what they did. I just couldn't accept that say, print just prints stuff to the screen. I was wondering how it did that. I finally gave up on questioning at the edge of the ALU.

The reason I told this is, that I think a high level language like Python will teach you a lot about how to structure problems into smaller parts and will improve your "algorithmic thinking", but you'll still be pretty clueless about what's actually happening behind the code.

And exactly that sort of hacking on a lower level is what comes to my mind when I think of computers like the Apple II, which were basically just glorified calculators by today's standards.



I had C64. I "programmed" in BASIC. Which means I typed in programs from manual (which was in German, and I couldn't understand it), and changed stuff to see what will be the effect. I've never went into 6502 assembler (I had no books for it), but I learned that I want to be a programmer, and that was what was important. When I got PC I tried QBasic, Turbo Pascal, Assembler, C, Delphi, and everything else. Distance from metal was never issue for me. The issue was the idea I had, and the end product I wanted to achieve. Hell, I've written small logic game with Turbo Basic, that was one huge for loop (with counter that went to 99999999 or sth like that, because I didn't knew of loops without countter) with 5 screens of nested if then elses inside. It was about guessing words letter by letter, and I didn't knew about arrays, so I had 5 variables A1$, a2$, a3$, a4$ and a5$ for letters.

It was horrible, but I didn't knew it. And it worked. I've shown it in school, and to my parents, and I was a wizard. The methodology, and style conventions came later.

I think of 8bit computers as gateway drugs that invited people to become programmers. Currently the closest things we have is javascript+canvas, or some scripting languages in game modding scene.

Nobody[1] really writes assembler today proffesionaly anyway. It is too hairy now, and we have better compilers. Don't push it on kids.

[1] by nobody I mean almost nobody, and yes, arm assembler is better, but still show me a big application written in it


Sadly, I'm not too young to know. The Apple II had tons of documentation, including its schematics, for christ's sake, and a built-in disassembler so you could inspect anything in the ROMs. It came with two versions of BASIC -- Woz wrote an integer-only BASIC, and a licensed Microsoft BASIC. Over the years I had one, I also wrote programs in Pascal, C (with a Z-80 card), Forth, and 6502 assembler. Plus, you could wire crap directly into the game port's A/D converters; it was our generation's Arduino. So yeah, it was a pretty great box for developers.

> There was no internet as we know it today

It was the age of BBSes. I spent thousands of hours trolling random BBSes for bits of knowledge. There also were Compuserve, the Source, and Delphi -- today you'd think of them as AOL-like walled gardens. (In the early days AOL was considered just a Compuserve clone with a GUI front end.)

> 6502 assembler... not like that's a trivial task

I wrote an Apple ][ game in 6502 assembler for Compute! Magazine when I was 15. (Yes, back then, software was distributed in magazines... people would type the code in...) I urge you to find an online Apple ][ simulator and try it. It's crazy and fun. But yes, it's like going from the big lego blocks to the tiny lego blocks. You say "Python will teach you a lot about how to structure problems into smaller parts" -- writing a simple game in 6502 assembler will teach you (force you) to structure your code into even smaller parts.

I personally like bigger lego blocks and the higher-level abstractions we have today, I think it makes me ridiculously more productive and now that's what I crave (productivity = more time spent with my kids) whereas when I was younger I loved digging into the internals just because they were there.

> Apple II... glorified calculators...

Awww hell. Now it's on.


> Awww hell. Now it's on In a sense all computers are "just calculators". That statement wasn't meant to mock the Apple II in any way. After all, modern computers can't do "more" in terms of computability. I was mainly refering to how instruction sets were smaller back in the day. Looking at the instruction set of a x86 CPU really makes me kinda dizzy sometimes. The 6502 on the other hand has some 56 instructions (if my quick googling proved correct).

I do like the bigger lego blocks as well. They're great for doing any actual work. I'm also not trying to force assembler onto anyone. But as you point out, digging into the internals is a whole lot of fun and a very interesting journey through the world of computing. It kind of feels like discovering the very essence of it in a way. As a bonus point it teaches you a whole lot of things that might be useful one day.

Bottom line, even with today's powerful languages it's never wrong to dig a bit deeper, if just for experience and insights.


...a built-in disassembler so you could inspect anything in the ROMs.

Which you didn't need to do because it also came with commented ROM listings.

Utterly amazing how far Apple has come (or gone) in the intervening 30+ years...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: