1. 15
    1. 3

      Many years ago (2013) I got a demo of one of “Intentional Software”s (Charles Simonyi) early offerings. Unfortunately I can’t find much than extremely dated clips on the internet of the actual thing, and it was since acquired by Microsoft (2017) and seems to have disappeared or parts assimilated into other products.

      I thought it had a neat gradual transition from text editor into both alternate representations and per-block mixing of domain-specific languages with both higher-level model and generated code, though the devil is much in the details on getting something like that to work well enough for productivity and production.

      I started on one of my own with Pipeworld but it had to take a backseat with other parts of the grander project taking priority. I still run programs written in it on a daily basis, but mostly as a SCADA- like system for home automation/surveillance.

      It doesn’t get more use than that since the ‘compile model to executable’ part was never finished. Another blocker was that I didn’t want to invent yet another text editor, and the options for ‘bring your own editor’ fell flat on just how rough it was getting good integration with my editor of choice (nvim) blocked either by the horrors of UI toolkits or by the awful ‘stdin/stdout/stderr/isatty’ terminal model.

      1. 3

        I worked at Intentional from 2006-2011, and, yep, this was absolutely the thing it was built to do. The best public demo we ever gave was at DSL DevCon in 2009; it used to be on MSDN but I think you need to dig into archive.org to see it now. I should rehost it somewhere.

        1. 1

          Interesting! and Yahtzee! from https://martinfowler.com/bliki/IntentionalSoftware.html I got to https://web.archive.org/web/20140316013956/http://download.microsoft.com/download/E/7/7/E77A8FCE-0362-4930-BD5E-8A21EC77E38D/07MagnusChristersonShaneClifford.wmv

          so with that background and >quick comments search< your interest in gamedev tooling, how would you merge the two? :-)

      2. 3

        Wasn’t Luna based on some of the structural editing tools that came out of clojure? I would love a diagram-code editor that behaved like parinfer behaves and get the advantages of both code and diagram. Two locked gears that I can switch between.

        Is part of the issue that we don’t have good ways of graphically representing some code and showing in code connections between things? It may not be a limitation once we develop new notation, just like types help with understanding an aspect of the code.

        1. 1

          I don’t use parinfer, but I do use paredit in Emacs, and I agree! Structural editing lifts code out of being just plain text and into a form that can be programmatically manipulated, which is exactly what is needed for presenting different editing UIs. A sufficiently “live” Lisp environment would be ideal for such editing. There should be more experiments in this space!

        2. 3

          Simultaneously auto-formatting formatting two representations of code is tricky. What if you want to edit both!

          It’s hard to automatically lay out a good diagram.

          Discussing this problem space could benefit from terms like bijection/injection/surjection. At the end of the day that extra positional data isn’t editable or it needs to live in both locations/formats.

          1. 2

            I had a very positive experience with National Instrument’s LabVIEW ~10 years ago. It was both easier to pick up than text-based and allowed you to express state machines and parallel threads (parallel loops) in an intuitive yet powerful way.

            The only downside was that spaghetti code becomes literal spaghetti code that’s hard to see what’s going on. Architectural problems are hard to ignore when it’s staring you in the face. The other downside is that it’s proprietary.

            Anyway, I like mentioning it because a lot of programmers don’t know about it.

            1. 2

              Where is visual mathematics? Do mathematicians use visualizations when they work on proofs and new theories? I wonder…

              Also, in programming, things usually break down as soon as concurrency is introduced. Good luck trying to model “cocurrent-system-statemachines” visually. It’s already hard enough to do so with code.

              1. 1

                i mean yes exactly? matrixes are written in 2d right inside other expressions, fractions, and those can be inside and on the left of root signs, sum and product notation layout, sub and superscripts are everywhere, all unlike one-dimentional lines of ascii, and some fields like graph theory is not without visualizations

                Good luck trying to model “cocurrent-system-statemachines” visually

                that’s exactly what people are doing! and it’s going great, see for example https://www.thestrangeloop.com/2019/finding-bugs-without-running-or-even-looking-at-code.html, and another comment here

                1. 2

                  I don’t think that’s “visual math” to me. But if you draw the line at ASCII, fine. Then let’s define the difference properly first

              2. 2

                Oh, and if you are coding in a terminal, this party is not for you. Sorry. We are thinking about the future here.

                Fortunately we’ve got sixel - showing inline images in the terminal may be a bit weird but it’s definitely not impossible these days.