You are viewing archived messages.
Go here to search the history.

Eric Gade 2021-10-18 18:51:37

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!

Konrad Hinsen 2021-10-19 07:42:01

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...
Daniel Krasner 2021-10-19 10:49:09

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.

Kartik Agaram 2021-10-20 02:38:38

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.

Konrad Hinsen 2021-10-20 09:24:41

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.

Eric Gade 2021-10-20 11:32:10

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.

Konrad Hinsen 2021-10-20 16:06:43

@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.

Eric Gade 2021-10-20 16:57:32

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)

Kartik Agaram 2021-10-21 05:04:29

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."

Kartik Agaram 2021-10-21 05:07:15

šŸ’Æ 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.

Erik Stel 2021-10-21 12:36:11

@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).

Erik Stel 2021-10-21 12:44:30

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).

Daniel Krasner 2021-10-21 13:06:51

@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.

Erik Stel 2021-10-21 13:40:14

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! šŸ™‚

Naveen Michaud-Agrawal 2021-10-21 17:05:07

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

Naveen Michaud-Agrawal 2021-10-21 17:08:45

@Erik Stel Code paradise looks interesting! Is it necessary to run the server environment?

Erik Stel 2021-10-21 18:46:02

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).

Daniel Krasner 2021-10-21 18:57:14

@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.

Konrad Hinsen 2021-10-22 06:40:57

@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.

Daniel Krasner 2021-10-22 10:51:30

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!

Felipe Reigosa 2021-10-20 18:10:23

Hey guys, I don't know if you remember my program MockMechanics? I know it's been a while, I've been working on the code instead of making videos and I was also busy with work, but here's a new video, I show how I recreated that 4 color memory game (Simon) without using any code. I'll try to make machine videos more regularly from now on. So what do you think?

https://www.youtube.com/watch?v=tM8ljtPA0ZM&ab_channel=MockMechanics

Here's a preview:

šŸŽ„ gif.mp4

Chris Knott 2021-10-21 19:34:12

Oh my god I absolutely LOVE the moment when you physically flip the detector panel over at 1:09 to reveal how it works. You are doing a great job retaining the physicality of the world where it works, and breaking it where it doesn't.

Felipe Reigosa 2021-10-21 23:44:44

Thanks Chris, I could have put the detectors in another layer so whenever I wanted access to them I could show the right layer all nice and proper. But putting them on a panel I can just flip open with the mouse physically is so much easier. Once again my laziness served me well šŸ˜€

William Taysom 2021-10-22 02:26:33

We remember. Love the physicality of it. The interaction with the bottom middle logic popup panel is interesting, like an entirely different mode of expression.

Mariano Guerra 2021-10-22 08:31:36

Felipe Reigosa great work! do you have a working version to participate on Review Jam? http://marianoguerra.github.io/review-jam/

Felipe Reigosa 2021-10-22 09:52:28

@William Taysom Thanks, I'm often surprised by how powerful the motherboard programming is (the logic panel as you call it), that was kind of an accident. Back in the early days, each motherboard contained a little snippet of Clojure code but I noticed that a lot of them were simple if/them clauses and when they weren't you could simplify them to be so by making the other logic physical, if you know what I mean? For instance instead of writing code to detect a recent button press in the Simon game by having a Clojure variable to keep track of the last time a button was pressed, I just created a physical thingamajig that is in a certain state for a while after each button press. So if each motherboard can just be simple if/then statements with or/and/not conditions, then it can be represented by a simple graph. Even things I thought couldn't be simplified this way like a while loop turned out to be possible, the "player" circuit is a physical while loop for instance.

Felipe Reigosa 2021-10-22 09:59:03

Mariano Guerra Thanks, the Review Jam sounds like a great idea! Perfect not only to get real feedback but also try some really interesting tools from the other people here. I have to focus on work for a few weeks and trying all those tools does sound time consuming but since it's still a month away I think I probably can make it. I'll prepare a new version when I can, it's more involved than you would think, that's why the version on my site is so old, but I'll get it done.

Mariano Guerra 2021-10-21 18:03:38

https://twitter.com/Suhail/status/1450876900662857728

Have you heard the good word of our project Review Jam?

Now with its own mailing list to be updated when there's new information about it?

Subscribe on the site (and let me know if it works for you)

http://marianoguerra.github.io/review-jam/

Or directly in the mailing list page: https://buttondown.email/reviewjam

Or subscribe to an RSS feed: https://buttondown.email/reviewjam/rss

RFC 1149 Compliant notifications may or may not be implemented in the future

šŸ¦ Suhail: It is not enough to merely "listen to users"ā€”you can't quite take their word. I think it's important to see how they use the product, get users to show you the frustration, or get a recording of their feelings in real-time because 50% of the time what they say isn't accurate.

Lukas SĆ¼ss 2021-10-22 07:00:02

Annotated Lambda Diagrams:

I have an idea for a semi-graphical programming interface that

as far as I can tell is very different from anything that is currently in existence.

I call it: Ā»Annotated Lambda Diagrams (ALDs)Ā«

The core of the idea is to annotate John Trumps "Lambda Diagrams"

( see here: https://tromp.github.io/cl/diagrams.html )

in order to make them into a practically useful and enjoyable programming user interface. (Hopefully even live coding capable).

Don't be tricked into grouping this together with node editors.

While there are visual line and box elements, this is definitely not a node editor.

That is because there simply are no nodes here.

What may look like nodes are merely redundant tags/annotations of the lines.

As such there is no need to decide

ā€” which one of wires and nodes represents values and

ā€” which one represents value-transforming-functions

So these ALDs are also not to confuse with what could be called "inverse node editors" where the roles of lines and nodes are swapped from the usual association. Also note that having functions being first class values does not remove this issue of node editors ā€¦ as far as I can see.

Here is a writeup of the basic idea:

Here is a page with further Mockups:

Drawing these mockups by hand (in inkscape) is a lot of effort.

But implementing this even more so.

I did not get very far in my first attempt. To put it mildly.

I didn't even get to implementing the actual diagrams ā€¦

Zooming programming interface experiment:

Lukas SĆ¼ss 2021-10-22 07:00:04

This is the most recent one of my "annotated lambda diagram" mockups:

It shows how code transformations could be animated in a visually almost discontinuity free way of "code circuits flowing through code circuits"