3 ms·
>> Think about what you had back then, though. At best, you had Mac OS The best my high schools had were the Apple II family and PDP mini computers -- my first
by slantyyz 12y ago
>> Think about what you had back then, though. At best, you had Mac OS
The best my high schools had were the Apple II family and PDP mini computers -- my first high school course in BASIC (I already knew Basic from my home computers) -- we were marking up Hollerith cards with Sharpies. You don't know painful debugging until you have to manually scour a deck of optical cards looking for an errant black mark.
We did not deal with interrupts, memory access or low level components. What we learned was more about logic -- not much different than what I do today.
The closest I ever got to memory access in BASIC were the occasional peeks and pokes, and even then, you didn't need them to write a useful program. Being able to build something even as rudimentary as a CMS today on (insert language of choice here) is more broadly useful than anything I came out of high school with.
Also, remember that nothing was really cross platform back then. Most languages were procedural, and free databases (relational or not) -- forget about it. I was on Mac at the tail end of high school, and if you wanted a tool like Lightspeed C or Lightspeed Pascal - those were way out of the budget of a high school student.
- yellowapple 12y agoYou were still much closer to the hardware than virtually every modern programmer outside of the embedded programming space (and even then), which is my point. What you were doing was effectively operating system programming, seeing as there wasn't really much of an operating system in the modern, traditionally-understood sense (except for the PDPs, which ran some timesharing system like ITS or Unix or somesuch, but those also tended to arrive with the full source code, at least in the case of Unix, so that one could port it oneself).
- slantyyz 12y agoI don't get how an interpreted language like Basic on an Apple ][ series is considered to be any closer to the hardware than Node is today when most of the stuff we were programming amounted to writing scripts to solving simple math, logic or business problems (keeping it the context of high school). The goal of the teachers was basically to teach us the difference between procedures and functions and some basic concepts like recursion. "What you were doing was effectively operating system programming" is a _major_ stretch.
- yellowapple 12y agoBecause BASIC on an Apple II doesn't involve a massive JIT compiler running on a massive userland and drivers running on a massive kernel with virtual memory and processes and such. It instead involves a very thin layer over the firmware of the computer itself. Sure, you weren't doing a lot of PEEKing or POKEing, but the fact that you could do those things proves my point. The sorts of programming you were doing was barely higher-level than the sorts of programming involved with an OSDev-style "Hello, world!" kernel[0]. My remark is not a stretch at all. At most you had a few thin conveniences (like having some graphics-related features already available to you, since Woz had prioritized that when he designed the Apple II's BASIC interpreter); beyond that, it was direct access to everything from RAM to tapes (unless you were running Apple DOS, but that was not at all required for BASIC programming on an Apple II, and the Apple II didn't ship with it). [0]: http://wiki.osdev.org/Bare_Bones#Writing_a_kernel_in_C http://wiki.osdev.org/Bare_Bones#Writing_a_kernel_in_C
- slantyyz 12y ago>> barely higher-level BASIC for all intents and purposes, was considered a high level language when I learned it. From what I remember, BASIC kinda had a similar reputation as PHP does today (probably unfair) in that it wasn't generally taken very seriously as a programming language. You didn't use BASIC to make real programs on an Apple ][. For that, you'd do it in assembly or machine language. That bias is still stuck in my head even after 3 decades.