If you think I have a problem with you, or something, I don't. So don't worry about it.
Sorry for giving you grief over... everything, but I can't say I entirely regret it. I learned a lot that I wouldn't have otherwise, which is why I use HN in the first place.
The IDE was really written in CL? Huh. I'd have thought that they would have gone the self-hosting route.
The first version of the OS for Newton was written in a language called Ralph (named for Ralph Ellison, the author of Invisible Man). Someone persuaded John Sculley that writing an OS in Lisp was a crazy idea, so he ordered Larry Tesler to redo it in C++. Larry asked a small group of us to see if we could find a role for Ralph on Newton. We probably took that mandate more broadly than Larry intended; we wrote another whole OS (except for the microkernel and the graphics kernel; we reused the the same ones that the C++ effort was using). It was probably the most intense and rewarding 18 months of my programming career. There were some really cool things that happened, and some really tragic ones.
Later it was decided that "Ralph" was not a good name for the language, and we chose "Dylan" in a process that yielded a few mildly funny stories.
Ralph was basically a subset of Scheme with a few special forms renamed, plus a subset of CLOS, plus a few additional extensions. All built-in Ralph datatypes were CLOS-style classes.
The native-code compiler was written in Macintosh Common Lisp. The development environment was an extended version of MCL called "Leibniz". Besides the usual MCL features, it additionally had a parallel set of tools--for example, in addition to the Lisp Listener, there was a Ralph Listener. Common Lisp code was compiled to native code and ran on the Mac's CPU. Ralph code was compiled to native code and ran on the Newton's CPU. At first the Newton motherboard was a big honking PC board jammed into a Nubus slot, so big that I had to leave the top off my Macintosh IIfx when it was installed. Later a ribbon cable connected the Nubus to a prototype Newton tablet-type device.
Making Ralph self-hosting on Newton would have been a lot more work, we would have had to live without a host of useful development features for a long time, and it would have required special target hardware with much more storage than Newton was intended to have. Using a cross-compiler written in Common Lisp neatly solved all those problems, plus it also gave us all of MCL's rather nice tools plus whatever extensions we chose to add.
Apple did do a bunch of stuff in Lisp around that time. For example, it did GATE, a knowledge-based automated testing system invented by Matt Maclaurin (I worked on that for a while), and SK8, the fabled "HyperCard on Steroids" invented by Ruben Kleiman (I worked on that for a while, too).
However, Lisp was never really a mainstream tool at Apple, except in certain groups in ATG (the Advanced Technology Group, which no longer exists). In fact, the only mainstream languages at Apple were, in rough chronological order, 6502 assembler, 68000 assembler, Pascal, C, C++, Objective-C, and now, of course, Swift. All kinds of languages were used here and there, but only the ones on the mainstream list had any great general acceptance.
Yeah, I'm a pretty big fan of Scheme, so I would have probably liked Ralph. We do actually have CLOS-type classes over in schemeland (although not everything is an object by default, of course) now, and by "subset of scheme," most people mean "no call/cc," which I likely wouldn't miss too much.
Scheme implementations of CLOS are much more common now than they were in 1992. The only ones I remember from around then are RScheme, Oaklisp, and of course Gregor Kiczales' tinyclos.
As far as language features, I still like Ralph the best of any language I've used, though there are things from newer languages I would want it to incorporate if it still existed today. But the actual usable language I like best today is Common Lisp.
There are a handful of other languages I like a lot--Scheme, Haskell, and ML are at the top of the list--but when I use them seriously, I miss Common Lisp. I don't miss any of them when I use Common Lisp.
I didn't miss Common Lisp or any other language when I was using Ralph.
Woz mentions some apps:
No, it's not just you. Most Lisper thought that way. But the target weren't Lisp developers, it were C++/Apple Pascal developers. Basically similar purposes which Java was designed for: general 'mainstream' application/OS developers from mobile systems upwards. Management did not think that an s-expression-based syntax would be a success with developers used to use Pascal, C and C++.
> The IDE was really written in CL? Huh. I'd have thought that they would have gone the self-hosting route.
The new language was emerging and targeting the new hardware platforms.
You can think of it that it was similar with the Playstation games from Naughty Dog - for example Crash Bandicoot. The platform for the software was the Game Object Oriented Lisp on Playstation and the development environment were desktop computers running and IDE based on Allegro Common Lisp.
The dev environment were Macs. The developers were often Lisper and Apple bought the technology and the people. Even the later product version development environment 'Newton Toolkit' was originally developed in Common Lisp.
There were stranger things then. I once saw a version of Microsoft Word for Macintosh on a developer CD, written in Common Lisp. It was a relatively sophisticated User Interface mockup. It looked like the real MS Word for Mac, but lacked much of the functionality. But when you looked at the application file on the bit level, you could see that it was a Macintosh Common Lisp runtime/image. It was written by or for Microsoft. Long ago.
But it's weird to think about how much Lisp/Smalltalk related stuff came out of Apple in the 80s and 90s. I can't imagine them doing that stuff now.
At that time there were key Lisp (and Smalltalk) people in Apple's management, especially Larry Tesler: https://en.wikipedia.org/wiki/Larry_Tesler
He described why they were working on Dylan:
http://lispm.de/docs/prefix-dylan/book.annotated/foreword.ht...
HyperCard development floundered before Steve came back partly because of bad management decisions and partly because it required a total ground-up rewrite to bring it up to even 1988's graphic standards (it was obsolete pretty much as soon as it was released, thanks to the appearance of the Macintosh II, which supported larger screens and RGB color).
Apple management started talking about cutting it pretty much immediately. It didn't directly generate any revenue--Apple gave it away for free. It didn't fit into any familiar product category. It wasn't on anybody's list of must-have features. Basically, Apple management didn't understand what it was or why it existed.
Apple's programmers and other makers were an entirely different matter. They used it for all sorts of things. So did third-party developers. So did people who discovered how to make software through working with HyperCard. Projects sprouted in Apple that either extended HyperCard or implemented new software in the same spirit with expanded capabilities--but all those projects had the same problem as HyperCard: management didn't see what they were supposed to be for. Furthermore, the other projects didn't benefit from Apple management's promise to Bill Atkinson that HyperCard would be given away to Apple customers.
HyperCard's days were numbered from the beginning; that much is true. But to call it "obsolete" from the beginning misunderstands a lot.
Re. not requiring a tithe to Apple, it's significant that their most popular OS (by orders of magnitude?):
* requires a tithe
* is not user programmable
That definitely was not the case at the time HyperCard was being developed. I know because I was there. I even worked on the HyperCard team for a while.
HyperCard's troubles had nothing to do with an Apple policy against user programmability, and everything to do with the fact that management couldn't figure out how to make it into a product that paid for itself.
If you want to argue that Apple has a policy against user programming now, well, maybe they do. I don't know. The last time I worked there was in the 1990s. But they didn't have any such policy when HyperCard was being shipped.
Hint, for Swift, Objective-C, Java, JavaScript, Android, Dart, .NET, the kernel doesn't matter at all from the API surface point of view.
And I am only listing the official mobile OS SDK languages being forced on 3rd-party devs as you say.
...Unless, of course, one of the popular embedded or mobile systems companies (Apple, etc.) Suddenly rewrote everything in lisp, and forced all 3rd-party devs to do the same, creating a massive market only reachable by Lisp programmers.
What a wonderful dream.