Reading about program synthesis, I noticed a major...
# thinking-together
j
Reading about program synthesis, I noticed a major implicit assumption in most programming tools. The assumption is that the format that’s best for reading code is also the format that’s best for manipulating it. I’m sure that’s often, probably mostly true. Really terse DSLs (regex, date formats, sprintf) seem like a good candidate where they might come apart. This is probably old news, but I hadn’t thought about it that way.
t
Reading should indeed be considered separately from editing. The two look similar, but they are not.
👍 3
p
It would be really nice to be able to see multiple, related pieces of code as “Views” which belong together for a given scenario - to be able to omit navigation back and forth. Do you know any IDE level tool for that? Something like a tree diagram with pieces of code (functions) as nodes and calls as edges.
d
@Pezo - Zoltan Peto I wrote my own tool for this. The idea is to search through a collection of source files for code fragments relating to a scenario, and put all of those fragments into a single file. Each fragment is tagged with location data (file name/line number). Then you read and edit the fragment file. Then you run the reverse transformation, which writes the modified fragments back into the original source files. No GUI is necessary, so it's easy to implement (mine is 83 lines of code). This is a CLI tool, and the CLI is the original extensible IDE. I'd use a graphical IDE if it was as easy to extend as the CLI. (Maybe there's an IDE that is as malleable as the CLI? Thanks to this list, I now know about Glamorous Toolkit, but I haven't tried it yet. It probably doesn't help me because I can't use Smalltalk for my programming.)
👍 1
p
@Doug Moen Jesus! That is interesting! Is your tool available somewhere? How do you know what parts are related? Anyways I don’t want to off the thread too much, that is my last comment here related to that.
t
@Doug Moen Glamorous Toolkit is a platform for IDEs. It currently works for editing Pharo code, but we already have extensive analysis for other languages in place 🙂.
👍 3