It'd be interesting to look at some of the stuff Alan Kay talked about. With STEPS he was working on some interesting notions that might actually help here. The entire work they were doing with that was effectively based around creatign DSLs for whatever problem area they were working around at the time; GUI; hell, iirc they implemented TCP by writing a DSL taht was able to read the ASCII images and tables in the TCP RFC and use that to implement packages.
I googled Alan Kay Steps and got to what seems an very interesting PDF.
I will read it, just to be certain by "might actually help here" - what is "here"? You mean with Rye language design generally, LLM-s relating to new languages or something else? :)
I was specifically thinking about integration with LLMs. I feel like if we're able to really get the small problem domain related DSL stuff right we can divide the difficulty of a problem into multiple smaller issues. In my experience with LLMs so far, the major issue by far is it keeping enough in a small context that it reliably 'knows' what it needs to. If you can task it to first create a DSL for a problem domain and then express the solution in that DSL it made before, it might really simplify the problem.
In general I feel like there's some great applicability here in this specific language. The language docs imply a certain degree of homoiconicity, which I think would be really helpful for DSLs like this...
“The value of notation lies in how it enables us to work with new abstractions. With more powerful notation, we can work with ideas that would have been too complex or unwieldy without it. Equipped with better notation, we might think of solutions or hypotheses that would have been previously unthinkable. Without Arabic numerals, we don’t have long division. Without chess notation, the best strategies and openings may not have been played. Without a notation for juggling patterns called Siteswap, many new juggling patterns wouldn’t have been invented. I think notation should be judged by its ability to contribute to and represent previously unthinkable, un-expressible thoughts.”
This is pretty much the whole point of programming languages imo
It'd be interesting to look at some of the stuff Alan Kay talked about. With STEPS he was working on some interesting notions that might actually help here. The entire work they were doing with that was effectively based around creatign DSLs for whatever problem area they were working around at the time; GUI; hell, iirc they implemented TCP by writing a DSL taht was able to read the ASCII images and tables in the TCP RFC and use that to implement packages.
I googled Alan Kay Steps and got to what seems an very interesting PDF.
I will read it, just to be certain by "might actually help here" - what is "here"? You mean with Rye language design generally, LLM-s relating to new languages or something else? :)
I was specifically thinking about integration with LLMs. I feel like if we're able to really get the small problem domain related DSL stuff right we can divide the difficulty of a problem into multiple smaller issues. In my experience with LLMs so far, the major issue by far is it keeping enough in a small context that it reliably 'knows' what it needs to. If you can task it to first create a DSL for a problem domain and then express the solution in that DSL it made before, it might really simplify the problem.
In general I feel like there's some great applicability here in this specific language. The language docs imply a certain degree of homoiconicity, which I think would be really helpful for DSLs like this...
see also “Notational Intelligence” https://thesephist.com/posts/notation/
“The value of notation lies in how it enables us to work with new abstractions. With more powerful notation, we can work with ideas that would have been too complex or unwieldy without it. Equipped with better notation, we might think of solutions or hypotheses that would have been previously unthinkable. Without Arabic numerals, we don’t have long division. Without chess notation, the best strategies and openings may not have been played. Without a notation for juggling patterns called Siteswap, many new juggling patterns wouldn’t have been invented. I think notation should be judged by its ability to contribute to and represent previously unthinkable, un-expressible thoughts.”
This is pretty much the whole point of programming languages imo
Cool, this explains that idea of code as a tool for thinking in a really good way. Haven't read the whole post yet.