Even though the editor is just a small piece of the overall platform, having a v1 of it is super important. Without a way to create and interact with Unison programs, there’s no way to see or get at all the amazing functionality the platform can offer.
Well, I’ve been working on the editor for a while. At times it’s felt like it would take forever… but I’ve continued chugging away, learning a lot in the process. Over the past few weeks, something really exciting has happened—I feel like I can see the destination visible on the horizon. I’m not there yet, but it’s not some indeterminate distance away, it’s right over there. I’ve seen real glimpses of what programming can be like in this highly-structured, type-directed, compile-error free programming environment… and it feels absolutely awesome. A little further along and I just know it—I’ll wonder how the hell I ever survived so long using text editors and IDEs.
Here’s a recent video showing progress which I tweeted about:
This is an implementation of a lot of the design discussed here. It shows the editing of a single term. Some notes:
Lots of things aren’t implemented yet:
let recblocks, lambdas, etc
What is nice though is that the way each of these actions is encoded fits in the same overall scheme, which makes them very easy to implement. You go to the spot you want to edit, bring up the explorer, and valid replacements and actions (like the above) are shown. It’s only exposing actions via more ad hoc interactions that takes a bit more work. Of course, the explorer can grow smarter about presenting possible suggestions, but that’s “easy”.
Something I’ve noticed is that at this stage, every small addition to the available action set makes a huge difference in perceived fluidity and expressiveness. Just adding the
, keystroke to the explorer for building up a list literal (or more generally doing any kind of insertion) made the experience feel way more direct and fluid. I’m excited to see how it feels when some of the other actions are hooked up.
When I get a few more features implemented and bugs ironed out, I’ll post the editor online here on this site, for anyone to try right in the browser!comments powered by Disqus