Hello FoC Community,
I am part of a team -- including @Daniel Krasner -- that has long been thinking about issues of personal computing, malleability, programming, and authorship. Last year we had funding for a lab and worked on a web-based authoring system we call Simpletalk) (you can see a live version of it here). I recently gave a talk at Strange Loop about the wider vision and motivations for this work, as well as a short demo of the system. You can read more detail about our motivation in this document.
We would like to propose two things to the community here. The first would be a live talk / demo session, and we would like to gauge your interest in attending. Second, we will soon have test accounts for people to make their own Simpletalk stacks and worlds. If you are interested in participating, feel free to DM either of us and we will let you know when it is ready.
Any feedback and/or discussion is always welcome.
PS - Simpletalk is not a "product" and is still experimental. Use the latest versions of Firefox for the best experience.
Thanks!
Nice talk! I guess many of us agree to a large degree with your goals.
Two comments:
- Onions. I was surprised to learn that the layer structure was emphasized by Adele Goldberg in the context of Smalltalk, because I feel that's what it mostly missing from Smalltalk. The Smalltalk class browser displays a huge unstructured list of classes, and inside many of these classes you get a huge weakly structured list of methods. Even if a package does have layers, they are not displayed by the system.
- Your reason for choosing the Web for implementing Simpletalk (in the question session) is unfortunately exactly what makes the Web ever more inevitable for everyone. Everyone who hates the Web but builds on it makes it harder to build anything else in the future. We are accumulating technical debt at a collective scale. Not that I have a better solution of course...
Thank you Konrad Hinsen ! much appreciated
The idea of peeling back layers was always present in the Learning Research Group at PARC, but it was certainly beyond Smalltalk (whichever you take ā72 to the present). It was the emphasis that systems should not have synthetic barriers of understandability, i.e. barriers that are completely irrelevant and outside of the environment itself. Just think of how much you have to learn in order to add a button to your OS desktop to display or make so many of the even trivial changes. There is no path from A->B which does require you to learn new programming languages, paradigms, etc etc
It is as if to write down your thought you needed to go and study stone carving/chiseling for 3 yearsā¦ This is exactly the sort of thing the LRG wanted to avoid. And I would argue that this is the case for Smalltalk, but whether the way things are organized or the metaphor used for this organization is good, i.e. evocative, is a different conversation.
And one we should be having! - one of the reasons to make more authorship environments! This is what Alan Kay wanted/thought was going to happen. He even insisted that they burn all the disks and start over in ~ā78 but that was vetoed by the group.
Smalltalk was an engine for thinking about how computing could be in the future. It was not intended to be the engine of computing. Simpletalk goes along the same direction. It is a conversation starter not an end-all. That in no way takes away from what it should be able to do - it should be the real thing.
Papert said that āin order to think about thinking you need to think about thinking about something.ā
In order to author an authorship environment you need to author the authoring of something. Awkward but you get the pointā¦
And yes as you intuited our starting point was to build a system from the ground up. But we counted on an initial 3-6 months of funding, and going āfrom the bare metalā to something like this with three people in that time is not realistic. Moreover we wanted to ask slightly different questions as step one, those which were beyond specificities of implementation, hardware and all that.
So thank you for comments! They are exactly inline with what I hope will generate the sort of thinking about such environments and computing as a whole.
From the manifesto:
The current situation can be summarized as elementary education concerned with teaching children how to read and write, but only through the use of pre-formatted bureaucratic forms. No scribbling on paper, no coloring outside the lines ā just letters and words within labelled boxes that have been specified for some purpose that remains opaque to the children.
ā¤ I've said something similar: programming today is largely just bureaucracy by other means.
Reminds me of the discussion of the difference between education and propaganda in https://consilienceproject.org/we-dont-make-propaganda-they-do/. The goal of education is to bring the student to the level of the teacher. The goal of propaganda is to maintain an epistemic gap. Teaching programming within predefined limits is then closer to propaganda than to education.
Konrad Hinsen I feel you on the "using the web" argument. The problem is that there still isn't a quick way to easily make malleable, cross-platform UI without a lot of hassle. We used Ohm as our PEG because we hoped to make a Smalltalk version of the system at some point, but as you know Morphic is too heavy (and undocumented) a beast to get modern-capable UIs running. I'm hopeful for Bloc and that might have been another target down the road.
@Eric Gade I have been using feenk's Glamorous Toolkit for a while. It demonstrates that Bloc can be used to build very nice user interfaces.
Konrad Hinsen I've been following Bloc's development (and GT, which is great) for years. I think it's very promising, though there are still speed issues that can be quite jarring. Juan Vuletich's Vector Graphics work is also promising (btw I'm "darth-cheney" over on the GT/Pharo Discord)
Ooh, Mariano Guerra, Eric's talk video talks about the desire of kids to learn the "real thing" at the 31 minute mark. (Context: https://futureofcoding.slack.com/archives/C5T9GPWFL/p1634484364391100?thread_ts=1634445846.387500&cid=C5T9GPWFL)
[October 17th, 2021 8:26 AM] ak: Ever since I learned programming I wanted to build polished apps like the ones I used to learn programming. For example, I was never satisfied with the programs I built on my BASIC interpreter because it forced me to hit Enter after pressing a key, where I could see the professional apps respond instantly to any key. I think this instinct is widespread and has basically been leading us all astray. If we just commit to never bundling apps without their development environment, never completely hiding the development environment, I think that one constraint, that commitment to a little less polish and a little more overhead, might have cascading benefits.
We'll have to fake it till we make it for a while, because clearly there's no market pressure to do this today. "Forgive them God, for they know not what they do."
šÆ to throwing away web browsers. I said this recently: https://twitter.com/akkartik/status/1448894658252185601
š¦ Kartik Agaram: @rsms I've been thinking about a minimalist web platform geared purely for sharing documents. (Js won after we polluted the well with installers and toolbars. Imagine instead a Hypercard-like world sharing native apps with sources.) But hmm, the minimal html could be a subset of html.
@Eric Gade shameless plug: you could have a look at https://github.com/ErikOnBike/CodeParadise to make this all run in pure Smalltalk (all the way down to running the UI in the browser using a tiny Smalltalk image in it). Seeing you seem to liken the idea of using Smalltalk. The documentation and demo's for CodeParadise are lacking a bit atm, but I am actively working on it (building business software in line with Richard Pawson's ideas about Expressive Systems, see https://www.youtube.com/watch?v=xBGoOipssN0).
Another idea that comes to mind is to have Simpletalk use the Smalltalk language but simply have it 'show' the objects and classes which are understandable by the user. A non-programmer user will see objects like Card, Part and Window and programmer users will also see things like OrderedCollection and WebSocket for example. I can't change or repair my own car (besides the fact I don't own one), but I can use it and move stuff around with it. So I would be the non-programming user of my car. Both the programming and non-programming user would send messages to objects to request them to perform some behaviour (for which they are responsible).
@Erik Stel Yeah that makes sense; we considered writing this in Smalltalk, Smalltalk + Seaside for the web, or LivelyKernel but in the end we were interested in asking fundamental questions about what an authorship systems could look like in a modern environments and whether a metaphor based approach to building such, or other, computing systems is fruitful.
Best way to do so was to take the ideas we like and go from there. Going into environments we knew and largely liked Smalltalk-like, Lisp-like etc would force us back into those modes of thinking/programming.
The idea, of course, is to throw this away and rebuild from scratch and have many authorship environments built in the world so we can better understand where this can go. With that we wanted to reach as many people as possible, from developers, to designers to current day āusers.ā Putting this in on the web has the dual advantages of being easy to distribute but also to surreptitiously undermine peoplesā current perceptions of what something is.
I have to read up a bit more about Simpletalk and the metaphor idea, because I don't completely understand it yet. I really like the idea of programmer and non-programmer user (or at least in my interpretation as given by my previous post š), because it more or less describes what I want to do with CodeParadise as well (becoming a development environment for kids). Gradually giving/showing deeper layers of the system to the user based on their experience/comfort/need.
In any case: I like what you are doing! š
Alan Kay's often talked about how such a system should provide fences around each level of meta - so the end-user system (as shown in Expressive Systems video) would have no fences, and then the next meta level, which might be to add additional behaviors to the objects, might require some demonstration of experience/desire to modify the system
@Erik Stel Code paradise looks interesting! Is it necessary to run the server environment?
Hi @Naveen Michaud-Agrawal. Nice to read about your interest. Yes, you have to run a server environment. This means (atm) running a Pharo Smalltalk image. (To prevent hijacking this topic, please DM me or let's start a new thread if you like more information).
@Naveen Michaud-Agrawal Thatās right. āPeeling the onionā is an important component here. Kay, and others in the LRG or community at large, insisted on this. They also insisted that it doesnāt mean that going to the next level is trivial, or that you donāt have to learn anything. They only insisted that it is possible and consistent within the environment or system.
@Erik Stel thanks again and also happy to start a different thread about CodeParadise. Also happy to talk about some of these ideas (feel free to DM). Or if there is sufficient interest @Eric Gade and I can find a time that works well for all and give a version of the talk ^^^, discuss whatever people want around these topics.
@Daniel Krasner Do you have references / quotes on "peeling the onion"? I have read quite a bit of the work of Kay and collaborators, but I don't remember this phrase. So perhaps I have been missing some corner of the LRG community.
Konrad Hinsen Although I am sure Iāve come across this somewhere in the literature (diSessa, Kay, Ingalls, Solomon) I canāt quite remember where. The āpeeling the onionā quote you see in Ericās talk, and the one that has stuck with us, is from footage from this documentary: https://messagenotunderstood.com/
Itās not released but we are working on it!