vvvv / VL-Language

The official repo for the design of the VL programming language
31 stars 0 forks source link

[Import proposal] Process node Trees directly reflecting the mutating Object Graph #32

Open gregsn opened 3 years ago

gregsn commented 3 years ago

A solution for #30

31 is elegant but

Again we argue that we need a high-level node-set, which when done right gives the user the possibility to

This combination should be superior to any special UI you could come up with.

But this time we want to get rid of any wrapping. Meaning:

Object Tree Graphs

In essence, this means that a user patch is always tree-shaped. We don't want to have nodes fighting for the one living thing. And we don't want to have warnings on links all over the place about possibly unwanted mutation. In order to guide the user, there is the possibility to make use of TreeNodeManagers.

The philosophy of this proposal

Too tedious to build object graphs?

The user might say: This too tedious. I want a node that builds the object graph for me. I don't want to patch a material from scratch each time.

Answer: We need a way to start from a template and let the user mutate that patch template at design time. This sort of mutation is about replacing one node by another, deleting or adding nodes. By that we end up with a readable patch describing the object graph, which was easy to build, since we were allowed to start from a template.

Implementation

We only need to build process nodes managing the live time of an instance of the original data type(s).

Summary

In order to sell this pattern - together with the bold claim that there shall be only one way of expression - we need templates to start from. Which is a quest on its own.