s

Steve

07/08/2020, 6:08 PM
Here is Storyscript’s first 2 minute demo — This demo showcases one of many aspects of our editing experience. Topics: NLP, ML, no-code. Goal: Dialog-based development by understanding intent into a program and understanding ambiguity through holes. 📹 Click here 📹 Quote from Program Synthesis by Microsoft research team
Copy code
automatically finding a program ...that satisfies the user intent expressed in the form of some specification. Since the inception of AI in the 1950s,
this problem has been considered the holy grail of Computer Science.
Questions/comments/feedback is all very welcome. Feel free to comment in thread or DM me.
👍 12
g

Garth Goldwater

07/08/2020, 6:39 PM
this is looking so good! very exciting
❤️ 1
r

Robert Butler

07/08/2020, 7:33 PM
Nice!
c

CocoaGeek

07/08/2020, 8:16 PM
Cool Steve! 😎
❤️ 1
e

Edward de Jong / Beads Project

07/08/2020, 8:25 PM
Nice demo, this product should succeed in filling a nice fat niche. Natural language is filled with ambiguity and status signaling, so there is a limit to how far this can go, but for simple things this product is indeed a dream.
👍 2
s

Steve

07/08/2020, 8:27 PM
Thank you @Edward de Jong / Beads Project — We have big plans. What you see today is the equivalent to “Google Search” — It’s just the tip of the iceberg.
c

Chris Knott

07/09/2020, 11:38 AM
Great demo. The glamour here is the "IDE" and UX, but I think the value is the big library of "pre-chewed" APIs behind the scenes. I am interested why you didn't choose to have something like string literals for "Who is online?". To me this phrase could be interpreted like the second half of the program - as a command to fetch online users. How do I write the program where I shout out usernames, and Alexa responds with either "online" or "offline"?
👍 2
s

Steve

07/09/2020, 1:36 PM
@Chris Knott Thank you for your comment. It’s very important to keep in mind that it’s not a programming language; we are not constrained or bound to parsing plain-text with a compiler — We can represent the resulting application in many ways. The adding quotations arounds a string is something we will user test after more of the product is complete as we have complete free reign over experimenting with the way the program is represented. Your question about how to write an alexa skill for “Is {person} online?” would be something along the lines of
Copy code
when Alexa hears "Is {name} online?"
     Slack lookup user by name
     if user is online
         reply with "Yes"
     else
         reply wit "No"
Note that I adding string laterals here to demonstrate that we can, at any point. It’s only a css decoration. Note there are no variables; we keep things in scope and the user can reference traits of things in scope without directly linking them. This may sound odd; it’s a novel approach — during the dialog-driven interaction the user will confirm trait relationships therefore not requiring:
user = … user.is_active
In full transparency, developers tend to find the product confusing because it does not fit into their word very well — they tend to question how things are possible or try to change the design to match their trained knowledge. When you present this to non-developers they have a stronger relationship and understanding to it due to their lack of knowledge of other traditional PLs. But really… how different is that statement to visual programming 🤷 which also changes the paradigm but a lot more where the “language knowledge” is almost entirely unnecessary.
👍 1
g

Garth Goldwater

07/09/2020, 2:46 PM
Note there are no variables; we keep things in scope and the user can reference traits of things in scope without directly linking them. This may sound odd; it’s a novel approach — during the dialog-driven interaction the user will confirm trait relationships therefore not requiring:
user = … user.is_active
i’ve said this before and i’ll say it again: this is the coolest part about storyscript to me: an enormous part of the cognitive load of programming is tracing dependencies back up the chain via identifiers. how much of the “compiler in your head” is devoted to a vtable lookup?
❤️ 1
incidentally, IMO: node-and-wire visual programming simply turns this lookup into a visual artifact: a big squiggly line. what if we just eliminated that whole line?
😑 1
a lot of the abstraction or functional programming is eliminating mutation by making that line longer—what would be “mutate the object but keep the reference name the same” becomes
x''''
over the course of your program which is why pipelining and currying/point-free feels so nice. but what if that’s just sublimating the change-over-time issue?
s

Steve

07/09/2020, 3:04 PM
Thank you @Garth Goldwater! Well stated observations. We are excited to share more concepts of how we manage scope, references, and traits of outputs. It’s novel, no doubt, and it’s our job to convey this in the UX in the most easy way possible.
🎉 1
@Chris Knott This screenshot shows another theme that is more for our internal engineering purposes. As you can see, the concepts at play are not plain-text but html blocks that are decorated with text and design.
c

Chris Knott

07/09/2020, 4:48 PM
Yes, I see. Is this taxonomy (ActivatorStart, Service etc) going to be known to the users or just an implementation detail?
s

Steve

07/09/2020, 4:48 PM
No, the taxonomy is internal only
👍 1