21 ms·
Duckspeak vs. Smalltalk: Decline of the Xerox PARC Philosophy at Apple (2011)
- scroot 8y agoGets right to the heart of the matter. A clear and well-written article.
- dang 8y agoDiscussed in 2015, including comments from an HN user who worked at both PARC and Apple: https://news.ycombinator.com/item?id=8976872 https://news.ycombinator.com/item?id=8976872
- armadsen 8y agoSince this article was written, the iPad has gained a number of excellent programming tools from third party developers (Pythonista is my favorite). And perhaps more importantly, Apple has released two: Swift Playgrounds and Shortcuts. Swift Playgrounds is explicitly designed so that kids (and adults) can learn to program. But it’s also pretty full featured, with access to all of the APIs and frameworks on the system. Shortcuts is programming-in-disguise, much like HyperCard before it. It’s an end user app that nearly requires you to “program”, albeit visually for the most part. I think the vision of every computer user also being a programmer hasn’t happened because we really still haven’t figured out how to make that work. But that doesn’t mean no one is trying anymore. As for me, I’m a professional programmer because when I bought a Mac 15 years ago, it came with Xcode in the box, and I was able to start building my own Mac apps without too high of a barrier to entry.
- gumby 8y ago> Since this article was written, the iPad has gained a number of excellent programming tools That's true, and good, but misses the point. In the smalltalk world (and Lisp machine worlds of PARC and MIT) everything running in the machine (above the microcode layer) was inspectable, breakpoint able, and modifiable. While on the iPad everything is, as the article says, opaque and unmodifiable, unless its your own app. note: I worked on Lispms at MIT (and other places) and on D-machine Interlisp at PARC (and other places)
- erikb 8y ago> In the smalltalk world (and Lisp machine worlds of PARC and MIT) everything running in the machine (above the microcode layer) was inspectable, breakpoint able, and modifiable. So Linux plus maybe some elegance features?
- pjmlp 8y agoLinux does not expose the whole stack as Lisp Machines and Smalltalk did. Including the Mesa and Mesa/Cedar systems also done at Xerox for memory safe systems programming.
- gumby 8y agoThere were no kernel/user space distinctions in any of the systems I mentioned, and all of it could be dynamically modified at runtime (no recompilation or restarting) down to the function and variable level. Philosophically completely different from Unix et al. But you raise an interesting point: one of the reasons I started Cygnus with John and Michael was that I had never used a machine to which I didn't have access to the source code and the idea of that horrified me.
- DonHopkins 8y agoHaving everything in the same space, and being able to inspect and modify anything in real time by the seat of your pants, was exactly how Dan Ingalls impressed Steve Jobs on his fateful visit to Xerox PARC! It's unfortunate the iPad never did (and never will) achieve that level of power and flexibility. https://www.quora.com/What-was-it-like-to-be-at-Xerox-PARC-when-Steve-Jobs-visited https://www.quora.com/What-was-it-like-to-be-at-Xerox-PARC-w... >Q: What was it like to be at Xerox PARC when Steve Jobs visited? >A: Alan Kay, Agitator at Viewpoints Research Institute >[...] The demo itself was fun to watch — basically a tag team of Dan Ingalls and Larry Tesler showing many kinds of things to Steve and the several Apple people he brought with him. One of Steve’s ways to feel in control was to object to things that were actually OK, and he did this a few times — but in each case Dan and Larry were able to make the changes to meet the objections on the fly because Smalltalk was not only the most advanced programming language of its time, it was also live at every level, and no change required more than 1/4 second to take effect. >One objection was that the text scrolling was line by line and Steve said “Can’t this be smooth?”. In a few seconds Dan made the change. Another more interesting objection was to the complementation of the text that was used (as today) to indicate a selection. Steve said “Can’t that be an outline?”. Standing in the back of the room, I held my breath a bit (this seemed hard to fix on the fly). But again, Dan Ingalls instantly saw a very clever way to do this (by selecting the text as usual, then doing this again with the selection displaced by a few pixels — this left a dark outline around the selection and made the interior clear). Again this was done in a few seconds, and voila! >The Smalltalk used in this demo was my personal favorite (-78) that was done for the first portable computer (The Parc Notetaker), but also ran on the more powerful Dorado computer. For a fun “Christmas project” in 2014, several of us (with Dan Ingalls and Bert Freudenburg doing the heavy lifting) got a version of this going (it had been saved from a disk pack that Xerox had thrown away). >I was able to use this rescued version to make all the visuals for a tribute to Ted Nelson without any new capabilities required. The main difference in the tribute is that the revived version had much more RAM to work with, and this allowed more bit-map images to be used. This is on YouTube, and it might be interesting for readers to see what this system could do in 1978–79. Alan Kay's tribute to Ted Nelson at "Intertwingled" Fest https://youtu.be/AnrlSqtpOkw?t=142 https://youtu.be/AnrlSqtpOkw?t=142
- mark_l_watson 8y agoI agree about the excellent-ness of Pythonista for writing Python on the iPad. Raskell is also excellent for writing short Haskell programs on an iPad. Hacking bits of Haskell on my iPad is a favorite activity when I am flying and don’t have an internet connection. What I really hope for is a version of Pharo Smalltalk that was beautifully integrated and sandboxed on the iPad. I would pay a lot of money for it!!
- jecel 8y agoSqueak was ported to the iPhone in 2008, but has never been allowed in the app store. So you have to be a developer and download it and compile it yourself just for your own device, which is kind of the point of the article. Note that applications built on top of Squeak and Pharo have been allowed on the app store, but all the programming goodness has to be completely hidden. The only exception I know is Scratch, which keeps Smalltalk hidden but is itself a programming language: https://www.softumeya.com/pyonkee/en/ https://www.softumeya.com/pyonkee/en/
- DonHopkins 8y agoHere's some stuff I wrote about a HyperCard-inspired system called HyperLook (nee HyperNeWS (nee GoodNeWS)) and some stuff I developed with it: SimCity, Cellular Automata, and Happy Tool for HyperLook (nee HyperNeWS (nee GoodNeWS)) HyperLook was like HyperCard for NeWS, with PostScript graphics and scripting plus networking. Here are three unique and wacky examples that plug together to show what HyperNeWS was all about, and where we could go in the future! https://medium.com/@donhopkins/hyperlook-nee-hypernews-nee-goodnews-99f411e58ce4 https://medium.com/@donhopkins/hyperlook-nee-hypernews-nee-g... Some highlights: The Three Axis of AJAX, Which NeWS Also Has To Grind!!! NeWS was architecturally similar to what is now called AJAX, except that NeWS coherently: …(drum roll)… 1) Used PostScript CODE instead of JavaScript for PROGRAMMING. 2) Used PostScript GRAPHICS instead of DHTML and CSS for RENDERING. 3) Used PostScript DATA instead of XML and JSON for DATA REPRESENTATION. The Axis of Eval: Code, Graphics and Data We will return to these three important dimensions of Code, Graphics and Data as a recurring theme throughout this article. But which way to go from here? Alan Kay on NeWS: “I thought NeWS was ‘the right way to go’ (except it missed the live system underneath). It was also very early in commercial personal computing to be able to do a UI using Postscript, so it was impressive that the implementation worked at all.” -Alan Kay What’s the Big Deal About HyperCard? "I thought HyperCard was quite brilliant in the end-user problems it solved. (It would have been wonderfully better with a deep dynamic language underneath, but I think part of the success of the design is that they didn’t have all the degrees of freedom to worry about, and were just able to concentrate on their end-user’s direct needs." "HyperCard is an especially good example of a system that was “finished and smoothed and documented” beautifully. It deserved to be successful. And Apple blew it by not making the design framework the basis of a web browser (as old Parc hands advised in the early 90s …)" -Alan Kay
- leoh 8y agoYikes, am I reading this right? That PostScript here is implied as a good thing? Here is xeyes implemented in PostScript. It was probably better than the X Windows implementation of the era, but compared to JavaScript... I shudder. https://groups.google.com/forum/#!original/comp.windows.news/pIoof2p2eew/HSBV2prw3CoJ https://groups.google.com/forum/#!original/comp.windows.news...
- fourthark 8y agoBut while computers rapidly increased in power, the tools that programmers used to program them developed relatively conservatively. It is easy to imagine a world where those tools developed along with the computers, until programming itself became so easy that the average user would feel comfortable doing it. It's nice to imagine. But is it so easy to imagine?
- scroot 8y agoHe has provided historical examples that trend in that direction. The point is: industry stopped looking into this (and an implicit point is also that investigating these things is no longer well funded).
- overgard 8y agoMaybe I’m cynical but I just don’t think the average person cares enough to want to program even if it’s really easy. I mean it’s easy to criticise the software for being locked down, and fair enough, but maybe .0001% of users would really want to modify things anyway.
- saagarjha 8y agoMany would like to automate their lives, though–but they might not be aware that they are even able to, much less capable of doing so.
- enqk 8y agothe spreadsheet proves many non programmers want to program
- Arcanum-XIII 8y agoI don’t think they want to. They need something (result, transformation...) and it’s the easiest way. They don’t like it, one bit.
- true_religion 8y agoThe amount of half-baked Javascript bookmarklets, Excel scripts, and SQL stored procedures I have come across in my lifetime beg to differ. People are already programming, and they'd do more of it if everyone had basic knowledge of how. It's like literacy. Before general literacy, people thought it was pointless to learn to write, now everyone jots down grocery lists and working notes because they're capable of doing it without a second thought.
- coldtea 8y ago>The amount of half-baked Javascript bookmarklets, Excel scripts, and SQL stored procedures I have come across in my lifetime beg to differ. Even those are made by what? 1% of users?
- man-and-laptop 8y ago
- sgt101 8y agoI have spent 100's of hours building a simple simulator using Julia recently. I mention this because this is what this view of computing misses; despite having hugely productive tools (compared to the 70's, remember "compile time?") vast reuse (library after library filled with wonderful goodies) and amazing computers (I use an X1 and have access to servers and so on and if I really need it I can use the cloud any time), software is complex and time consuming. That's why programming / developing is a full time job. Everyone else needs to get on with all the other things they've got to do.
- scroot 8y agoThe view of computing you are criticizing in fact doesn't miss your point. It attacks it straight on. What does "programming" mean? Insofar as it involves people using Algol inspired languages -- with some features here and there -- typing up instructions in expensive systems that are (still!) teletype emulators, then what you say is always going to be true. The point of the article is that once upon a time people began to think another way was possible and started going in that direction. The reasons that all of this has fallen out of the computing pop culture have little to do with viability, but rather the needs of the market.
- linguae 8y agoThis has been something that I've been thinking quite a lot about for the past few years. The early Apple was heavily influenced by the work that came out of Xerox PARC. Even during Apple's low point in the 1990s, Apple maintained a research lab that was the logical successor to many of the ideas that came out of Xerox PARC. The Dylan programming language would have been an interesting environment for programming Newton applications, and OpenDoc would have brought the idea of larger applications and compound documents composed from smaller applications and documents, which I find quite similar to the Smalltalk vision in some ways. Unfortunately Apple's research lab would be shuttered in 1997, but the rationale was understandable; Apple was on the verge of bankruptcy back then and Apple desperately needed to focus on its core product strengths. Apple used to be the champion of personal computing. Personal computing is about empowering individuals by giving them access to computation in a relatively accessible and affordable fashion. Apple's mission was to empower the user through usability, and they applied the research from Xerox PARC and other places to accomplish this. Even though the classic Macintosh operating system is not as powerful as the Smalltalk environment, and even though certain important proposed additions such as OpenDoc unfortunately were cancelled, Mac OS enabled people to be more productive and more creative, and it even helped create many industries such as the desktop publishing market and the early web design market during the 1990s. Apple's usability guidelines for Mac programs were well thought out and enforced a coherent vision of usability for the entire platform. Mac OS X in the 2000s was the pinnacle of Mac, combining the Mac's focus on usability and good design with a solid Unix foundation that provided features that the classic Mac did not have such as preemptive multitasking and protected memory. And, let's face it, once competitors like the Amiga and BeOS died, Apple seemed to be the only major player remaining in the computer industry to have a coherent view of personal computing for the masses. If the Mac at its peak was like In-n-Out Burger, then Microsoft Windows is McDonald's, and the desktop environments for Linux are like frozen microwaveable burgers from the grocery store. Unfortunately once Apple started making piles of money from the iPhone and other parts of the iOS ecosystem, Apple started to neglect the Mac (especially on the desktop hardware side) and the overall vision of personal computing as a way of empowering the masses. It seems today that all Apple is concerned about is the iOS ecosystem, which is a locked-down walled garden instead of the freedom and empowerment that the Mac provides. Right now personal computing needs a champion. Many hundreds of millions of people, if not billions of people, rely on personal computers in order to carry out their business and creative tasks. Unfortunately there are no companies that are passionate about personal computing. Apple has become the iPhone company, Microsoft is focused on upholding its monopoly and building its cloud business, Google is all about mining personal data, and the Linux desktop world is too fragmented in order to put up a united front. Even worse, many of the major players in personal computing bought into the notion in the late 2000s and early 2010s that personal computers will be replaced with smartphones and tablets. This led to Apple's neglect of the Mac, Microsoft's failed Windows 8 Metro interface, and some odd design decisions in the early days of GNOME 3 and for Ubuntu. While the industry has been backing away from the thought that tablets will supplant personal computers, personal computing still lacks a champion. My dream is for either a company or a team of open source software developers to pick up from where Alan Kay, Don Norman, and other people left off and create an personal computing operating system that combines the best ideas of Smalltalk, Lisp machines, Hypercard, OpenDoc, and Apple's usability guidelines from the Mac OS 8-9 days. It will be an operating system that is focused on composable documents similar to OpenDoc but with Smalltalk-like levels of flexibility and control. It will also have a strong emphasis on usability with a "back-to-basics" viewpoint instead of the flat design promoted by contemporary desktop and mobile GUIs.
- lispm 8y agoSmalltalk is the product of a very well funded research lab - Xerox PARC. It was not so much a successful product. It's less interesting about think what Apple did with it - because they had other, more conventional, goals in the end of the day. I think it's more interesting to think what happened at Xerox - why didn't they get it out to millions of people as the software a computer boots into or as the primary development environment. Or even as a system design philosophy? Xerox sold expensive systems like a few Smalltalk machines, but much more they sold office systems on the same hardware NOT implemented in Smalltalk. IIRC they might have sold larger laser printers with Smalltalk-based control software - can't remember. Xerox gave Smalltalk 80 to a few companies - like Apple and others. Apple ported it to their machines - this is also the origin of Squeak (a later open source Smalltalk). But it never really caught on. Even though Apple gave developers access to it. Now the philosophy of Smalltalk was already in the Apple ][. It booted into a BASIC prompt. But later computers were more universal and current incarnations are only seen as appliances. Nobody needs to program to use an iOS device. On a Lisp Machine one can force any application into a REPL (called listener) at any time. The keyboard even has a key for that. Live programmability is the main purpose of such a computer. Source is only a keystroke/mouse click away. We don't have that anymore and there must be a reason for it. Probably it would also be a security nightmare in current networked surroundings...
- simonh 8y agoThe reason Smalltalk didn’t take over the world was it was so resource intensive. A single workstation would have cost about $40,000. There’s no way the early Macs could have run Smalltalk, they only became capable of that years later and it was slow as molasses. I suppose it should really have had a chance by the Java era, but C style syntax languages ruled the world and the state of the art had moved on by then.
- patrickg_zill 8y agoIf you want to run an Alto, the Living Computers Museum has an emulator that can be downloaded. https://livingcomputers.org/Discover/News/ContrAlto-A-Xerox-Alto-Emulator.aspx https://livingcomputers.org/Discover/News/ContrAlto-A-Xerox-...
- bsaul 8y agoFunny how smalltalk was one of the first object oriented language, and Kay is among the inventors of object oriented programming, and yet the vision is completely opposed to the concept of encapsulation (which is one of today's core principle of OOP). Aka: to provide a simple interface to manipulate an object, rather than expose its internals.
- bsdetector 8y agoThat's because Smalltalk's real invention was the term "object oriented". The C++/Java/C# family of objects favoring encapsulation and interfaces started with Simula 67 before Smalltalk. It's actually amazing how much Simula looks like a modern object language, for example it has a direct analog to Java's inner class. Not much has really changed in terms of concepts. The story of Smalltalk is really a story about marketing: it's a simple and pretty model that's easy to tell so people lionize it. The reality is that almost all successful object languages used in industry are based on the Simula model not Smalltalk.
- mark_l_watson 8y ago+1 right on! I have some experience with Simula 67 (in the mid 1970s, as a young programmer I was tasked with converting a large Simula application to FORTRAN. After building up FORTAN from the bottom, it was easy enough to do, but it was painful to convert something elegant to an uglier form just so it would run on our in house computer). I totally missed the significance of Simula before your comment.
- igouy 8y ago> …the vision is completely opposed to the concept of encapsulation… Why do you think that? p.286 Design Principles Behind Smalltalk [author Daniel H H ingalls] https://archive.org/details/byte-magazine-1981-08 https://archive.org/details/byte-magazine-1981-08
- jecel 8y agoTo reinforce your point: Alan Kay majored in both Computer Science and Molecular Biology and the cell membrane was a significant inspiration for objects. It completely isolates the inner chemical functions from the rest of the world. So encapsulation was the first thing Alan worried about.
- hevi_jos 8y agoCreators love to create, thinkers love to think, programmers love to program. Most people do NOT like creating(when they can use something already created by someone else without effort), programming or thinking(it is slow, takes effort and gratification is not instant) at all. It is not a critic on most people, in fact I have seen people spending months of work for installing or compiling a custom Linux like gentoo just because they can. Thinking on problems that will probably be a dead end forever or programming things that would have been done cheaper, better and way faster manually. That is the reason Steve Jobs succeeded, he made what people (most people)wanted. Instant gratification like music on iPods. Simple solutions to problems people have(simple install). Making sure creators could live from their professional work(simple payment system). There is a talk somewhere when Steve Jobs talk about him realizing people really demand things like Trash TV. When you sell products you see reality, Alan could only see the idealism of Academia. It is not that people do not want to improve themselves. It is just that most people do not want to pay the price, in effort, in time or focus. Just look at the Ads on TV: Lose weight with no effort with product X, in no time, while you watch TV.
- PinkMilkshake 8y agoWindows has a surprising number of ways to code out of the box and all require nothing more than opening notepad and saving it with the right file extension. .js .vbs .bat .ps1 or .hta The problem is they are not simple to use for the average user. Windows lacks a straightforward procedural automation system. Flow, Workflows and PowerApps address this in some ways but are really jank. I want something like: GET COLUMN 'customer name' FROM accounts.xls REMOVE ROW 1 SAVE customers.xls EMAIL foo.xls TO 'some@guy.com'
- erikb 8y ago> It is easy to imagine a world where those tools developed along with the computers, until programming itself became so easy that the average user would feel comfortable doing it. I would argue it IS SO EASY. The thing is that programming itself is not a problem. The problem is he complex world the programming happens in. Programming itself even helps to reduce that complexity though by allowing you to traverse some amount of that complexity automatically. The problem is not, that programming is too hard for people, but that people are not willing to take responsibility for themselves and hteir problems. Most people look to others for solutions to their problems. That's also why people who promise them solutions, like Jesus or Jobs, are praised as saviours, even though they are never able to fulfill all the promises, at least in the amount and dimensions that the receiver would hope for. > It is interesting that at one point, Jobs (who could not be reached for comment) described his vision of computers A kind of statement we haven't seen for a long time. RIP, Steve. PS: The article didn't really explain why he thinks there was a Xerox Parc philosophy inside of Apple and how/why it was in decline, right? It basically just says, there was Xerox Parc with that awesome philosophy and there was Apple who copied some of it, but altogether was a closed system developer.
- microtherion 8y agoI'm very much in favor of constructionism as an educational philosophy, and thus of teaching programming as a basic skill to a wide audience. However, I also think there is a need for professional software development, and the interfacing between professional software and casual end user programmable systems is problematic in my experience. Try dealing with an organization where business critical processes are handled by a FileMaker database, a HyperCard stack, or an Excel macro written by a rando. For extra credit, try dealing with an organization where there are dozens of copies randomly copied to different users' machines, with different strains of customizations, none of them under version control (even if the authors were willing and knowledgeable to use VCS, casual programming environments often don't seem to play nicely with version control). I have little personal experience with pervasively programmable systems, but I can't imagine that they interface well with professional software development either. How do you install a word processor on a system where it's anyone's guess how the addition operator behaves in a given week?