Will
03/12/2020, 7:51 PMIn my research group at Parc in the decade of the 70s, we did four major “real object” languages, about three more major designs, and many versions. This is because “what was actually needed” was not a variation on any of the several thousand languages that Jean Samet was able to count by the late 60s. Other research groups at Parc accounted for another 4 or 5 higher level languages and SDKs as well.
Part of the mental tool set for being a “aspirational computer scientist” back then was to know how to make OSs, languages, and new whole computers in a timely fashion. Today it is much easier than back then, but most computer people don’t know how, and don’t.
What seems to be lacking is what we used in order to get most of “personal computing” into an Alto in the 70s in about 10,000 lines of code including the OS with all but a few thousand instructions written in the super high level language -- and all done by less than 10 people (who also had to invent the personal computing ideas and GUI, etc). The secret sauce was a kind of mathematics and design that seems quite missing today combined with an integrated live programming language, live development environment, and hardware all built to support the math and design.
For “CS” learning purposes, just bootstrapping a neat system done by others is probably not the best first experience. But this is an indication that a very large “personal computing experience” can indeed be programmed in a few thousand lines of code via what really counts in computing: Design not bricklaying or “Runnable Math*
A separate “real CS” department -- maybe it should be called “The Systems Sciences Department” for clarity -- would address all these deeper issues.
shalabh
03/12/2020, 8:03 PMWill
03/12/2020, 8:06 PMDon Abrams
03/12/2020, 8:08 PMWill
03/12/2020, 8:09 PMWill
03/12/2020, 8:09 PMHere’s the Xerox Parc Smalltalk that Steve Jobs saw in 1979 that led to the Macintosh. It was done for the Parc “Notetaker” computer (Steve saw it on a Dorado). The entire system was written in Smalltalk -- “OS”, language, GUI, development system, “apps”, etc. -- in about 10,000 lines of code. The kernel required about 2000 machine code instructions (about 6KB of code). It was stored as a complete system, so all that was required to bring it back to life was to implement what the 2K machine instructions did. The main difference today is having a lot more storage, which allowed many more bit-map pictures to be used.
shalabh
03/12/2020, 8:49 PMChris Knott
03/12/2020, 11:57 PMOn that note, has anyone tried nand2tetris (https://www.nand2tetris.org/) or anything like it?Yes, I highly recommend it although it is not that FoC related. What I truly appreciated about it, was it broke down a distinction in my mind between electrical circuits (physical) and software (non-physical). I never really understood before how typing on a keyboard and images on a screen related to physical wires and electricity, even though I understood each well separately. I will warn people that if you are susceptible to over-climbing the "general solution" ladder, this will not help! You'll go from wanting to design your own PL, to own OS, then own RISC!
Dan Cook
03/13/2020, 1:05 AMDan Cook
03/13/2020, 1:06 AMS.M Mukarram Nainar
03/13/2020, 1:08 AMwtaysom
03/13/2020, 3:24 AMWouter
03/13/2020, 4:43 AMWouter
03/13/2020, 4:50 AMDan Cook
03/13/2020, 5:40 AMScott Anderson
03/13/2020, 6:03 AMshalabh
03/13/2020, 7:34 AMwtaysom
03/13/2020, 9:52 AMStefan
03/13/2020, 2:33 PMshalabh
03/13/2020, 6:44 PMshalabh
03/13/2020, 6:46 PMshalabh
03/13/2020, 6:50 PMturn
method of the Box object. It essentially undraws itself, updates its tilt
based on the new angle passed in, and redraws itself. The paper describes the syntax of this version of SmallTalk.shalabh
03/13/2020, 6:51 PMStefan
03/13/2020, 7:08 PMWouter
03/13/2020, 8:54 PMwtaysom
03/14/2020, 2:55 AMDan Cook
03/14/2020, 3:48 AMWouter
03/14/2020, 5:11 AMDavid Piepgrass
03/20/2020, 2:52 AMwtaysom
03/20/2020, 7:57 AMStefan
03/20/2020, 8:06 AMnoahtren
03/28/2020, 4:24 PM