This is semi-related to one of the killer features of Eclipse that never really made it into any large-scale systems: the ability to run incomplete or broken code. The Eclipse Compiler for Java had a special feature that it could generate bytecode for nearly any file, including those that were utterly broken. It would mostly work, and you could incrementally work on unit tests alongside the code being developed.<p>It was honestly one of the most productive environments I ever worked in, and I'm somewhat sad nobody else has implemented this.
Haskell has type holes. There are plugins that give you code actions to complete them, split case, etc. I love type holes.<p>Agda has them too and they're more powerful there: <a href="https://agda.readthedocs.io/en/latest/language/lexical-structure.html#holes" rel="nofollow">https://agda.readthedocs.io/en/latest/language/lexical-struc...</a>
happy to answer hazel questions; ive been working on hazel as cyrus' phd student for the last four years, and am currently working on moldable projectional interfaces for live programming in hazel. here are some of the things ive added to hazel: <a href="https://github.com/hazelgrove/hazel/pulls?q=is%3Apr+author%3Adisconcision">https://github.com/hazelgrove/hazel/pulls?q=is%3Apr+author%3...</a><p>and here's me speaking last week about using typed holes and the hazel language server to help provide code context for LLM code completion: <a href="https://www.youtube.com/watch?v=-DYe8Fi78sg&t=12707s" rel="nofollow">https://www.youtube.com/watch?v=-DYe8Fi78sg&t=12707s</a>
Related. Others?<p><i>Hazel: A live functional programming environment featuring typed holes</i> - <a href="https://news.ycombinator.com/item?id=24299852">https://news.ycombinator.com/item?id=24299852</a> - Aug 2020 (14 comments)<p>Also:<p><i>Tylr: Demo of tile-based editing, a new kind of structure editing</i> - <a href="https://news.ycombinator.com/item?id=27926758">https://news.ycombinator.com/item?id=27926758</a> - July 2021 (40 comments)
I like the way the code examples work: A live editor with documentation that shows up on the right hand side (click the Play with Hazel) button.<p>But does it any more than a live editor and type checker? Can you actually create a program that does something?
Interesting. I didn't notice any reference to Idris [1] but that was the first place I saw this style of development.<p>[1] <a href="https://www.youtube.com/watch?v=mOtKD7ml0NU" rel="nofollow">https://www.youtube.com/watch?v=mOtKD7ml0NU</a>
I tried the playground on my Android phone and none of the key presses get through to the source code.<p>I can position the cursor by tapping and I get a virtual keyboard but I can't type anything.<p>Is this a bug or am I just missing something because If terrible UX?
My first thought was the Mac app that's been around for about 18 years now:<p><a href="https://www.noodlesoft.com" rel="nofollow">https://www.noodlesoft.com</a><p>And it had a release today.<p><a href="https://www.noodlesoft.com/release_notes" rel="nofollow">https://www.noodlesoft.com/release_notes</a><p>Seems rough to jump on a name that's been in continuous use for that long. Would it be hard to add another word to make it easier to disambiguate?
Not sure if I have just spent too much time in the JS/TS world and so I have forgotten the pain in this area in proper compiled languages, but to me it seems like needing "typed holes" smells like maybe there is some abstraction missing in your codebase.<p>I prefer to have code layered in a way that my inflection points happen across well defined interfaces. Then I can make changes one layer at a time in increments that are small enough to still be able to reason about. But maybe I am totally mising the point of typed holes!
So if I’m told I have an A type personality and am also often called an A hole does that mean I can concatenate both to create the compound condition of having type holes?