Has anyone seen anything that attempts to make cod...
# thinking-together
j
Has anyone seen anything that attempts to make coding conversational? Where the environment is given a goal, and queries the user for what it needs to achieve that goal, incrementally?
i
Have you seen the work on Programming by Demonstration / Programming by Example? Inspired a lot of things in the decades since.
1
m
c
We did a sort of chat bot with Eve: http://incidentalcomplexity.com/2015/10/15/jul-sept/
🤯 1
I think @ibdknox made that version
j
@Ivan, yes, I have seen some. In particular the minikanren demonstrations come to mind, where your tests become constraints to generate lisp code, or something. Wild, but more complicated than I am imagining, maybe.
Pygmalion is fascinating, and very similar to what I was thinking. I realize having seen the video, @Mariano Guerra, that the nature of the conversation between the user and the environment is significantly different depending on the paradigm of the language. Imperative languages need to repeatedly ask "what next?" But declarative languages would need to ask something more like "defined how?"
Definitely helps me understand what I'm aimed at, better, thanks.
@Corey, I wasn't familiar with Eve, and my mind is blown. That it could not find a place to live is so disappointing. The use of colours instead of variable names, the use of containers to represent conjunctions... All very cool.
I notice that in none of these cases, though, does the interface explicitly request information. That, to me, is the crux of the idea... are there interfaced where the environment actively solicits information from the user?
i
theorem provers do exactly that
or proof assistants
☝️ 1
j
I'm imagining something like "What sort of thing do you want to describe?" "Cars." "What might you say about a car?" "It has four wheels." "So a car has four _?" "No. A car has _ wheels." "And the blank must be a number?" "Yes." ...
Not necessarily in a textual format, like that, but that sort of conversation. Where the environment actively prompts the user based on an understanding of the syntax and semantics involved in the underlying language...
Good point on theorem provers. If you have premises and a conclusion, they give you a set of intermediate steps to aim toward, and ask for a step in that direction. But the "asking" is basically by showing the new targets, I think? The actual communication of "what strategy should we explore for deriving X from Y?" is sort of implicit?
It is more iterative than conversational, maybe? Is that fair?
Also, @Corey the eve example has given me some interface ideas for a different problem I have been thinking about, which is greatly appreciated. Specifically, how to bridge the gap between wanting to use typing for speed of entry and visual representations for clarity and beginner ease of use. Very interesting approach.
i
we had ~30 interfaces for Eve, so there's lots to look at there if you're interested 🙂
c
Glad to hear it Jason. There's a veritable treasure trove of stuff related to Eve at the incidentalcomplexity.com blog as well.
j
I will check it out.
i
This might be the closest to what you're asking about:

https://www.youtube.com/watch?v=mXAzHX14h1A

🤯 1
❤️ 1
j
Yes, that's it precisely. Wild.
Is there a postmortem on Eve somewhere? Something that talks about what it has to teach about building businesses around innovative programming interfaces? Last night I heard about a friend's similar dead-end in a very innovative approach to something, and I wonder whether there is some lesson I can glean... Is it a cautionary tale about solving problems people don't yet know they have? Or what? Because I see my own work headed in a frustratingly similar direction.
c
I believe there was a recording of the live 2018 workshop that @stevekrouse made
That was a pretty good post mortem
anyone have a link to that?
oh wait here it is

https://www.youtube.com/watch?v=ThjFFDwOXok&t=1034s

s
For reference on what Eve did
j
I at times variously swoon and shudder at the idea of taking some seed funding and working on this stuff with actual resources. But I usually come to the conclusion that being paid as a consultant full time for a few years to do user research and development on your own project is pretty fucking ideal.
Thanks for the links! 👀
Inspiring as shit. Thanks, guys.
I still don't get it, which makes me nervous. I don't know what went wrong, there, so I have no way to avoid it. 😬
i
It's very hard to make something that is significantly better on some important axis while also not being meaningfully worse on axes that people currently see as valuable.
💯 2
True progress is extremely time intensive because it requires a crazy amount of experimentation. This means you basically have two options: find a way to give yourself a long time to find the kernel of something that is geniunely better by a large degree (and then raise to try and productize it) or you do something incremental.
There were a number of incremental off ramps for us (we basically built notion, roam, airtable, bubble, and a number of others along the way...), but they weren't going to move the bar much for what we cared about; making programming more accessible for new comers and more productive for those of us who already did it.
🤯 1
You could argue that it was a bad choice to give up on businesses that could move the needle 10%, but we had the opportunity to try to swing for the fences and so that's what we did.
It's a low probability bet though.
c
(we basically built notion, roam, airtable, bubble, and a number of others along the way...)
Foursquare... 😛
i
haha
retool too
c
It's true though, we really did build all of those things
j
That makes sense.
y
In a sense all of the feedback from IDEs is a conversation. In this scene

https://youtu.be/skhP6LcbRTs?t=374

I tried to demonstrate it by mapping Xcode’s feedback to a WhatsApp chat with “Mr. REPL”