• dejj a day ago
    • earleybird a day ago

      Rosie appears to be an acknowledgment that we shouldn't try to use a regular language when the problem requires a context free language.

      • wdkrnls a day ago

        This looks quite promising to me. I've loved using TXR in the past for such functionality. However, I would really rather have the TXR pattern language as a library embedded inside the main programming language I am using rather than having to remember both TXR and TXR lisp. At first glance, Rosie seems to offer this approach. Although, I feel like the elegance of TXR syntax and semantics is hard to beat.

        • kazinator 8 hours ago

          Thank you for your kind words.

          A library form of TXR for embedding is not off the table. I've not made that a priority because I regard the embedding of high level, powerful languages inside programs written in low-level systems programming languages to be a bit of an anti pattern. (Not an unpopular one, to be sure). The things that have to be written in a low level language should be the components loaded into the higher level program.

          An important nuance is that sometimes the embedding host program is itself a higher level language. For instance, maybe someone might want to use Rosie out of Python. But I didn't write TXR to be something that I embed in programs written in other languages of that sort. It's not something I would do myself. If the users find that something useful, and someone writes an excellent patch for that then I suppose why not.

          There's a maintenance burden in that. You need an API. It needs to be documented, I'm carefully maintained with regard to backwards compatibility and all that. If it exposes the object model rather than just passing strings then the semantics of the memory handling become visible to the hosting program. That adds an additional maintenance burden, because now changes that you make in memory management can possibly break unknown programs out there. I also suspect people will be coming to you to debug their integration issues for them.

          There are good reasons not to do it other than just the anti-pattern aspect.

        • thiht a day ago

          No examples on the homepage = dead to me.