Does a parametric IDE exist? I’m not sure if this...
# thinking-together
s
Does a parametric IDE exist? I’m not sure if this makes sense, but I’m thinking similar to Parametric CAD tools(&sketchpad), but for code? Maybe making use of type annotations, contracts, interfaces, etc. at edit-time (instead waiting for compile-time or run-time).
k
to some degree tools based on web stack offer parametrisation via extensions. For example there are plugins for VSCode to visualise complex data pipelines for enso lang Another example is Matlab IDE
i
Does smalltalk count? What about emacs? You might need to expand on what "parametric" means in the context of code, as opposed to CAD tools.
🔥 2
s
I’ll have to try matlab I have not looked at in decades
@Ivan Reese I don’t know. I don’t know what has been done and what is possible?
g
I’m thinking prolog (or other logic languages). There are a set of facts (these lines are parallel) then the engine solves for the shape that fits
d
I really like this thought and have been thinking about something similar: an IDE that does macro expansion across different files and supports direct manipulation of expanded code. So I want to view my code side-by-side-by-side at different levels of abstraction - on the left high-level abstractions, on the right “derived” (built?) code. But it doesn’t have to be just one source and one build, there would be arbitrary number of layers. And then I can imagine direct manipulation of expanded/built code. Perhaps when you focus on a line of code, all upstream dependencies are brought into view. This allows you to choose the level of abstraction on which to make the edit. If you choose to edit derived code, then that automatically clones the current function scope. Something about that feels kinda similar to a CAD function tree. Anyways, just throwing ideas out 🙂
🍰 1
👍 2
k
Me too! I have been dreaming of managing code at multiple levels of abstraction as well. However, I see the higher levels of abstractions as specifications, not traditional code, and the IDE integrating a model checker.
t
@Stephen De Gabrielle I am not quite sure what you mean by parametric, but Glamorous Toolkit was built exactly so that it can be molded for every development problem. We literally change the tool while we program. And this leads to a new way of programming.
2
k
@Daniel Sosebee Let me know if this is what you're looking for, but I believe the term is transclusion. This is having code in one place, and then referencing it in another. In that other reference, which is called a transclusion, it's possible to edit the original code. It's a bit like a portal to another location. And this transclusion can be viewed in different ways, for example just as a function name, or as a short preview, or even the entire piece of code. These are different levels of abstractions.
d
Hm cool I’ve come across transclusion with reference to media, but haven’t thought about it with regards to code. Yeah that might be exactly what I’m thinking of, good transclusion tools in an IDE, mixed with some controls for editing transcluded code and forking it in-scope rather than editing the global source of the transcluded code.
k
Glamorous Toolkit has transclusion. For example, you can reference a method of a class in a notebook, and get it shown there in a fully functional editor.
d
Wow yeah glamorous toolkit seems really cool. Do you use it / know of people who use it regularly?
t
@Daniel Sosebee We use it regularly 🙂. There is a community around it and there are a couple of companies that use it, too. If you are interested, I’d be happy to show you around.
d
Yeah that would be awesome! Will DM you.
k
I use it regularly as well. Be warned that it is addictive.
❤️ 2