1,027 karma · joined April 23, 2020
Treating people equally does not mean treating them the same (or, why don't healthy people get to be hospital patients, too?).
As for time-sharing,IBM explicitly ruled it out as a design objective for OS/360. Then MIT went shopping for a partner for Multics. IBM had nothing of interest for them, but GE agreed to design a virtual memory version of their 635, the 645. Suddenly, IBM realized that they were going to lose a market, so they rapidly added memory mapping to the 360/65, producing the Model 67. They also announced Time Sharing System/360, but the early versions were unusable (20 minutes to log in, for example), so a few folks at the University of Michigan whipped up an interim solution, the Michigan Terminal System, which worked fine, and was in service at various places from 1968 to the 1990s.
Although IBM produced various time-sharing systems, including Call/360, APL\360, the Time Sharing Option, and VM/CMS, they never really understood it, which is why a few underfunded folks at a university could produce something better than what they could produce with a professionally-managed team.
By contrast, DEC did get it in that era, which is why the PDP-10 did so well in university computer science departments.
A much greater omission was IBM's refusal to consider time-sharing, until it was too late, and then they made a total mess of it with TSS/360. (The 360/67 was a good machine, I have fond memories of it, but it needed a different OS, Michigan Terminal System in our case.) It took IBM a long time to understand the need for interactive computing.
Educational technology that is focused on delivering “content” is unlikely to be of much value. Technology that induces the learner to experiment, to discover, to discern patterns, and to ask further questions, is going to be much more valuable.
The C compiler appeared in v3, and the kernel rewrite happened for Version 4, which is the version described in the paper.
Using .S for assembly language source is a historical accident, by the time the majority of code was written in C, .a was defined as the conventional filetype for archive (ar) files.
Bell Labs/AT&T claimed exclusive ownership of Unix, and the exclusive right to license it, right up to the BSD case in the early 1990s, where it was determined that AT&T had used Berkeley code, and vice versa, to the point where copyright notices were essentially fiction. Berkeley Software Design had to remove a small number of files from their distribution, and then System V and BSD could go their own separate ways.
The fact that Lisp is the “programmable programming language” doesn't mean that every engineer should be inventing weird versions of while loops. What it does mean is that a skilled Lisp programmer can build a domain-specific language that substantially helps in development.
One good example of this is the Crash Bandicoot games, along with the same studio's Jax and Daxter, which were built with dialects of Lisp (yes, they had to compile the code, and take care with storage allocation, just like any other game code). Cisco hired Kent Dybvig, principal author of the Chez Scheme system, and open-sourced that software; I have no clue what they use it for, to be honest, but I assume that they had some reason for doing this. Companies using various Lisp languages have been documented in areas from fintech to quantum computing.
I could go on about cheating rings that encompassed entire classes (I never saw this myself, but have read authenticated reports of it.) I know of a case where a class writing an exam had teaching assistants writing the exam answers on the blackboard at the front of the room.
The CS students I taught were a highly motivated group overall. But perhaps these students were in a course they didn't want to take, resentful of being made to study things they weren't interested in, because it was a program requirement. (I taught service courses, I know that mentality.) Then it is entirely plausible to me that they might cut and paste an answer without even looking at it, or an executive summary that appears there.
I first discovered that not all students are fussy about the work they hand in, back in the late 1960s, when I was a marker for a course that taught some Cobol. The lab was a payroll program, and I saw several students hand in programs that computed pay as $2.00/hour times 40 hours equals something like $-123456.78. I asked them, when I gave them their work back, if they had looked at their output. They were all surprised that I'd expect that.
Lest there be any misunderstanding, I taught many highly motivated students who worked hard and cared very much about their work. But I did deal with many incidents of cheating in my career too.
I think that wrangling with a computer in the absence of an OS is the only way for a person to understand what the OS is actually doing for you. It's all very nice to study synchronization schemes or memory management, but the methodologies all seem pretty abstract until you have to face a real computer.
I disagree with much of Burgess's politics,but his use of language was masterful.
It is possible to use pretty much any decent Scheme system with SICP, but the language has changed since even the Second Edition, so I don't recommend it. That said, once you are working on your own projects, nothing stops you from using a different system, even though you might have to RTFM to see modern equivalents to ancient idioms.
Of course, nothing can beat the thrill of waking up every morning and looking out my bedroom building at the office building that was taken over by an evil computer on X-Files.