For my use case, the bracket notation would be more convenient, but are the two forms identical from the point of view of property bindings?
In other words, do bindings or property change listeners that depend on view.custom.myprop1 behave the same way in both cases, or is the bracket version treated differently?
Yes, Perspective has been engineered to make those operations the same. It would not be true for native jython objects. It is true for the VarMap objects in my Integration Toolkit, too.
FWIW, your sample code shows the storage of a stringified datetime. You should never do that. Always work with timestamps as objects, and only stringify for presentation (and only if the component you use cannot present it for you).
Thanks @pturmel — your note about Jython objects caught my eye.
In my case, the target lives under a Designer “Object” (JSON-like) in view.custom, e.g.:
Since that “Object” is created/configured by Perspective, does your Jython caveat apply here at all?
In other words, is view.custom.settings ever a Jython object in this context, or is it strictly a Perspective/JSON structure so that dot vs bracket remains equivalent for bindings and onPropertyChange?
Jython scripts only work with jython objects. Full stop.
Jython converts java objects to jython automatically at point of use. Perspective installs customizations of that java-to-jython conversion (wrapping, really) to support the non-jythonic dual access methods. (As I do with VarMap wrapping.)