[HN Gopher] Lisa Source Code Release
       ___________________________________________________________________
        
       Lisa Source Code Release
        
       Author : bitsavers
       Score  : 132 points
       Date   : 2023-01-19 14:41 UTC (8 hours ago)
        
 (HTM) web link (computerhistory.org)
 (TXT) w3m dump (computerhistory.org)
        
       | fsckboy wrote:
       | "False!" - Dwight Schrute
       | 
       | >FTFA: _a majority of personal computer users interacted with
       | their machines via command-line interfaces...in which users had
       | to type arcane commands to control their computers._
       | 
       | ARCANE!?!? you say!?!?!
       | https://en.wiktionary.org/wiki/arcane         arcane:         1.
       | Understood by only a few.
       | 
       | the majority of personal computer users (your words, not mine)
       | did understand them, in fact _it was the defining feature of
       | personal computer users_                   2. (by extension)
       | Obscure, mysterious.         3. Requiring secret or mysterious
       | knowledge to understand.
       | 
       | the commands were well documented and did what the documentation
       | said                   4. Extremely old (e.g. interpretation or
       | knowledge), and possibly irrelevant.
       | 
       | not old, it was newly invented, current state-of-the-art, and
       | nothing but relevant to the tasks at hand, they were the only way
       | to accomplish the tasks at hand, and nary a byte of the command
       | line lacked morphologic or semantic significance
       | 
       | The serious point I'm trying to make is, young and up-and-coming
       | programmers who are learning textual programming languages (more
       | or less the definition of a computer programmer at present)
       | should not be scared off from learning command lines. They're
       | very powerful, and not that obscure or hard. Unix had/has a
       | feature that can be confusing, which is the command line is first
       | processed according to the rules of the shell, and then it is
       | reprocessed according to the rules of the app you are invoking,
       | making command lines be a subtle mix of several languages at a
       | time (by analogy, a bit like html+javascript+css). You need to
       | learn how this works, despite being confusing it is the
       | innovation necessary for unlocking the power of shells.
        
         | wmf wrote:
         | Arcane by today's standards I guess.
         | 
         | Also, many people in those days never consulted the docs and
         | just memorized commands without understanding them so they
         | probably felt arcane.
        
           | fsckboy wrote:
           | the average person doesn't understand the ancient notation
           | used for calculus; that doesn't make "calculus" arcane; and
           | the article was writing in the past tense
           | 
           | your point about those who copypasta-ed command incantations
           | is reasonable, but they did get them from people who knew how
           | to write them and conditions (like situational pathnames or
           | dangerousness of side effects) are sufficiently variable to
           | limit the scope of this style's applicability
        
         | [deleted]
        
         | dhosek wrote:
         | Arcane not to computer users but to the general population.
         | Before the advent of GUIs, computer usage tended to be very
         | much a niche thing. Heck, even well into the Windows era, it
         | was still niche. I remember riding the train to work in the 90s
         | and overhearing a conversation where an older man engaged in
         | some sort of business (no idea what), was complaining about
         | having to have a computer on his desk at work.
        
       | cmrdporcupine wrote:
       | Yay! Finally! Thanks so much for this. Have been excited about
       | this for years since the original announcement.
       | 
       | Had today's date bookmarked, and was browsing around your twitter
       | etc earlier looking to see if this had happened.
       | 
       | Can't wait to look inside.
        
       | flohofwoe wrote:
       | I can't believe they make you sign a fekking license agreement to
       | access 40 years old source code (in a long dead language on top).
       | That's so typical Apple.
        
         | cmrdporcupine wrote:
         | Yeah I actually haven't downloaded this yet, despite being
         | eager to look, because I actually wonder if I should be cross-
         | checking my employment agreement with my current employer to
         | make sure I wouldn't be violating any clauses in either
         | document! Highly unlikely, but still, jeez.
        
       | abbbi wrote:
       | allways good do see :-)
       | 
       | grep -ri fuck . ./Lisa_Source/Lisa_Toolkit/TK Sources 4/LIBUT-
       | UUNIVTEXT2.TEXT.unix.txt: HALT; {Die rather than fuck up} grep:
       | ./Lisa_Source/Lisa_Toolkit/TK Sources 4/LIBUT-UUNIVTEXT2.TEXT:
       | binary file matches grep: ./Lisa_Source/Lisa_Toolkit/TK3/TK-
       | ALERT.OBJ: binary file matches ./Lisa_Source/LISA_OS/APIN/APIN-
       | OFFICE.TEXT.unix.txt: fucked up if he bails out or doesn't ever
       | select a disk} ./Lisa_Source/LISA_OS/LIBS/LIBDB/libdb-
       | SCANCODE.TEXT.unix.txt: valid position, thus we don't fuck with
       | pscantable^[scanid]^ until
       | ./Lisa_Source/LISA_OS/LIBS/LIBDB/libdb-SCANCODE.TEXT.unix.txt:
       | valid position, thus we don't fuck with pscantable^[scanid]^
       | until ./Lisa_Source/LISA_OS/LIBS/LIBDB/libdb-
       | SCANCODE.TEXT.unix.txt: valid position, thus we don't fuck with
       | pscantable^[scanid]^ until
       | ./Lisa_Source/LISA_OS/LIBS/LIBDB/libdb-LMSCAN.TEXT.unix.txt:
       | badCheckPoint = 3424; { check point info is fucked }{##}
       | ./Lisa_Source/LISA_OS/Linkmaps and Misc.
       | 3.0/TKALERT.TEXT.unix.txt: if not fcheckhz(hz,i) then
       | writeln('heap big fuckup 1'); ./Lisa_Source/LISA_OS/Linkmaps and
       | Misc. 3.0/TKALERT.TEXT.unix.txt: if not fcheckhz(hz,i) then
       | writeln('heap big fuckup 2');
        
       | jonpalmisc wrote:
       | No email form: https://d1yx3ys82bpsa0.cloudfront.net/source/lisa-
       | source.zip...
        
         | [deleted]
        
         | IncRnd wrote:
         | I didn't turn on JS for the form to be shown, either.
        
       | HeckFeck wrote:
       | Very neat code and somewhat legible for a non-Pascal speaker.
       | 
       | Curiously, it doesn't credit authors in the headers as I've seen
       | in sources from the same period.
       | 
       | I also wonder how much of the core OS code made it into Macintosh
       | System 1.
       | 
       | Also, nice styling here:
       | http://revontulet.org/2023/01/19/lisadesk.png. They didn't have
       | to do ASCII art in the comments but they did!
        
       | fexecve wrote:
       | > You may not and you agree not to:
       | 
       | > publish benchmarking results about the Apple Software or your
       | use of it
       | 
       | Damn, there goes my Apple Lisa vs Amiga comparison video! I was
       | going to get so many YouTube views! Meh, maybe I'll make it
       | anyway. So sue me!
       | 
       | > the Apple Software may not be exported or re-exported (a) into
       | any U.S. embargoed countries
       | 
       | I'm sure keeping Iran from getting this valuable software from
       | 1983, which runs on a completely dead CPU architecture that Linux
       | doesn't even support anymore, is very important!
       | 
       | (But seriously, as a license geek, and not a lawyer, the wording
       | of this license is really interesting. It seems to have
       | completely different disclaimers than you usually see in open-
       | source licenses...)
        
         | easton wrote:
         | I'm guessing, although I don't know, that they probably had an
         | academic license laying around for another product that they
         | cleaned up for this. A "it's our source, you can use it for fun
         | but not for money" license. Microsoft has shared source
         | licenses for academics/bigcos that need to see the source for
         | Windows or whatever.
        
           | cmrdporcupine wrote:
           | It took them 4 or 5 years just to do this release, since it
           | was first announced. I feel like _" they just dusted off an
           | old license"_ is not a likely explanation.
           | 
           | Probably took 5 years just to get through all the lawyers at
           | Apple, and this is what we ended up with.
           | 
           | Remember, the default answer to almost any question poised to
           | a lawyer is "No."
           | 
           | :-(
        
             | astrange wrote:
             | That's because you're not supposed to ask the lawyer if you
             | should do something. You ask their boss if you can do it
             | and ask them them how to do it.
        
         | cmrdporcupine wrote:
         | > completely dead CPU architecture
         | 
         | Hey, take that back! 68k/ColdFire ISA is actually pretty well
         | supported these days by compilers. Better than it was a few
         | years ago. There are 68k backends for both GCC (again) and LLVM
         | (maybe not as active).
         | 
         | It's probably the best supported "retro" architecture at this
         | point.
         | 
         | Rest of your points are valid though ;-)
        
           | monocasa wrote:
           | The LLVM code is fairly active for a retro arch. It just got
           | accepted into mainline less than a couple years ago. I
           | remember it because the m68k folk are pretty active about
           | maintaining support for their arch in the Linux kernel, and
           | for a while the lack of m68k support in LLVM (and therefore
           | the lack of m68k support in Rust) was seen as a potential
           | blocker for mainline Rust support in the kernel.
        
       | purututu wrote:
       | The ZIP file contains two folders:                 1. Lisa_Source
       | 2. __MACOSX
       | 
       | Looks they already planned for macOS/X 40 years ago! That is,
       | macOS/X is much older than we thought! What an archeological
       | sensation!!!
       | 
       | /irony off
        
         | purututu wrote:
         | And there's also a `.DS_Store` in every folder of that 40 years
         | old software code. How futuristic!
        
         | lordfrito wrote:
         | You are the wind beneath my wings
        
       | _boffin_ wrote:
       | Thanks for posting this. awesome article.
        
       | programd wrote:
       | Lovely bit of history, but I laughed out loud at this bit of
       | legal WTF in the license agreement you must agree to before
       | downloading the software:
       | 
       | "You may not and you agree not to: ...publish benchmarking
       | results about the Apple Software or your use of it"
       | 
       | Perhaps 40 years later Apple is still embarassed about the
       | performance of the Lisa?
       | 
       | So, maybe somebody here can emulate a Lisa and run Geekbench :)
        
         | [deleted]
        
       | msie wrote:
       | I'm still learning Swift (forever) and looking at the source code
       | I wonder if Swift is getting too complicated to read now. I'm
       | having a hard time reading simple snippets of Swift but the Lisa
       | source code seems so comforting to read in comparison. Anyways,
       | I'll soldier on.
        
         | [deleted]
        
         | JKCalhoun wrote:
         | I know what you mean regarding Swift.
         | 
         | In recent decades different languages have introduced
         | interesting patterns, interesting notations. Swift seems to
         | have adopted about all of them.
         | 
         | I have been told by teammates that I don't write "Swifty" Swift
         | code, instead writing something more like an "Objective-Swift"
         | style.
         | 
         | Oh, and they say that like it's a bad thing.
        
           | kitsunesoba wrote:
           | > I have been told by teammates that I don't write "Swifty"
           | Swift code, instead writing something more like an
           | "Objective-Swift" style. Oh, and they say that like it's a
           | bad thing
           | 
           | Depending on what they mean by this, I agree that it can be a
           | bad thing.
           | 
           | Years ago, in the days when Swift was still pretty green
           | (around 2.x or 3.x) I knew someone who liked to try to write
           | "Objective-C in Swift" -- that is, they'd try to ignore the
           | type system and optionality entirely, with lots of forced
           | casts, forced unwraps, shipping data around in [String:Any]
           | dictionaries, etc... constant fighting with the compiler that
           | made SourceKit very unhappy and crashy and the app we were
           | working on more crash-prone than it would've been had it been
           | written in Objective-C.
           | 
           | On the other hand, if it's just a more verbose style that
           | favors clarity and avoids e.g. unnamed closure arguments and
           | breaks more out into well named variables and functions, I
           | don't see anything wrong with that at all and in fact have
           | been leaning further in that direction as time goes on.
        
             | JKCalhoun wrote:
             | Ha ha, yeah no I would never force a cast, I always unwrap
             | optionals...
             | 
             | As an example, I was slow to adopt _guard_ statements
             | generally, preferring to strictly use them only for
             | parameter checking (thus only at the top of functions).
             | 
             | Then there are crazy ways that _case_ statements can be
             | used in a _switch_ that I still don 't understand.
        
       | NegativeLatency wrote:
       | Downloaded the code and I'm not really sure what I'm looking at.
       | What language is this, and how would someone build/load it?
        
         | pjmlp wrote:
         | Clascal, the predecessor from Object Pascal, used on Mac OS.
         | 
         | Apple was also a precursor in using safer systems languages for
         | OS development.
         | 
         | Even when MPW later replaced Object Pascal, the major
         | frameworks were based in C++, not C.
        
           | ajross wrote:
           | Most of the Mac OS ROM was still in assembly (there was a
           | story on the front page last week detailing a time bug owing
           | to a misfeature of the 68k DIVU instruction, even). It wasn't
           | about "safety", just productivity.
           | 
           | And C wasn't chosen because Apple had made an organizational
           | bet on Pascal years earlier with the Apple II. C in the early
           | 80's was still a niche "new vogue" kind of thing from
           | academia[1]. Apple's roots were older, they didn't get the
           | Unix bug until decades later.
           | 
           | [1] c.f. Sun Microsystems, founded by Stanford and Berkeley
           | geeks, launching its very different 68k products
           | concurrently.
        
         | JKCalhoun wrote:
         | I understand the app source code is in there too - it would be
         | nice to know what the directory names refer to -- which
         | directory corresponds to which app, etc.
        
         | octetta wrote:
         | The files I've looked at are Pascal (the article talks about
         | Apple's object-oriented varient). I suspect there's 68000
         | assembly language there too, but I'm just getting started.
        
           | GrumpyNl wrote:
           | Under the OS section, there are some files with assembler in
           | it.
        
         | LastTrain wrote:
         | I see assembly and pascal files. According to this[0] article,
         | the development was done on Apple II's and Mac development was
         | done on Lisa!
         | 
         | [0] https://macgui.com/news/article.php?t=518
        
           | cmrdporcupine wrote:
           | Fun story, development of Digital Research's CP/M68k and
           | GEMDOS/GEM GUI on the 68k was also done on the Apple Lisa
           | (and I think some VME 68k boxes from Motorola?). So, a
           | competitor to the Mac (albeit not a successful one) developed
           | on the Lisa, too.
           | 
           | And in fact, fun people have gotten GEM/GEMDOS to boot and
           | run again on Lisa emulators and real Lisas.
           | 
           | Computer archeology.
        
           | snewman wrote:
           | I can confirm this regarding Mac development. I was part of
           | the team that built FullPaint
           | (https://en.wikipedia.org/wiki/FullPaint) back in 1985. We
           | had just a few Lisas to work with, and they were considered
           | sacred.
           | 
           | Testing code required copying it onto a floppy disk and
           | popping it into a Mac. We probably would have been a lot more
           | productive if any of us had ever heard the words "unit test".
           | (We were a young team, everyone in their early 20s or even
           | late teens.)
        
             | jchw wrote:
             | Oh, how I wish I could've been involved in the halcyon days
             | of the computer industry. I'm sure it's all rosey looking
             | from the perspective of someone who wasn't there, but the
             | scrappy young development teams, humble small
             | organizations, mail-order software, and general naive
             | optimism of the preceding era seems like it was so much
             | fun. Probably very challenging, and I'm sure frustrating,
             | but I can only imagine the satisfaction of having worked on
             | the Macintosh and breaking so much new ground.
             | 
             | I was born in time to experience the internet when it was a
             | lot more fun and experimental, which I definitely am
             | grateful for. I hope there are more "moments" like this in
             | the future, though I can't help but feel they're mostly
             | over when it comes to computers and technology. Things just
             | can't stay scrappy and experimental forever.
        
               | Fr0styMatt88 wrote:
               | If you haven't read Masters of Doom before, I highly
               | recommend it! Your comment reminded me of it.
        
       ___________________________________________________________________
       (page generated 2023-01-19 23:00 UTC)