This is just a thread to share something useful I recently discovered by a discussion with @tonfilm and @gregsn in the chat.
Basically I was asking myself, what the feature of enabling a Process for a Record is good for. Speaking of this one:
I primarily was asking this myself, because in the StandardLibs I could find lots and lots of examples where a process was enabled for a class, but not for a record. The use case I was pointed to was related to the immutable nature of records, which allows to detect changes with the Changed node or the Cache region.
So its pretty handy, when one wants to
- have a tidy patch / application using a process
- and detect changes of a whole data structure of the record
Because then we can simply detect the change on the state output of the process node of the record. Also works if again records are nested inside of the record, which is really cool.
It’s a really nice use case for advanced users - but maybe it’s worth considering to make a setting which allows to hide and show the menu of processes for records and classes, and have it disabled by default?
Thinking here of the fellow beginner and also even advanced patcher - I think it’s good to confront people with the ability to create Processes, Records and Classes, because that is one of the core concepts of VL and important to grasp. To reason about which of these three to pick can easily keep someone busy for a few months mentally, at least this is my experience.
But then again: The possibility to enable a Process for a Record or Class (and even for a Process, which I think is the weirdest setting in the environment) is imo a bit too much to cope with so early. For me as someone, who has been learning VL now for a longer time I start to see the benefits of this feature, but also have the impression it is mainly there for people who want to get into designing larger systems or libraries and are really experienced. Also its more important to get the mechanics of methods and pads into your brain, and not get distracted by this feature.
Summing up - I think the feature of enabling a process for a record is cool, although probably a rather minor use case, and the UX of the object explorer could use an overhaul.