A programming language has adopted “Perspectivity as a programming language” if it has a Perspective construct (a direct extension of a class construct) that enforces the following on everything:
interface iPerspective<O extends iObservation> {
O toObservation<OP iPerspective objectivePerspective>(OP objectivePerspective);
}
This should be read as:
A Perspective construct asserts observations about any Perspective construct that it is presented with (there is a default null observation, which is a lack of any viewpoint).
Key note: I will repeat what was mentioned above. For a programming language to implement Perspectivity, it must enforce (with an optional <not safe> markup to enable primitives/classes) that any instantiated construct is a Perspective, not an object or primitive. This can be informal enforcement via discipline, but the spirit of Perspectivity requires that all “things” are viewed as both being and having a Perspective about anything, even if it’s the null Perspective, which is the default.
iObservation PerspectivityLlc<iPerspective SomeOtherPerpective>.toObservation(...) {...}
So:
PerspectivityLlc<YouWillGetAnotherAwsCertSoon>.toObservation() = heIsExcited
or:
PerspectivityLlc<YouWillGetAnotherAwsCertSoon> @> heIsExcited
is the typical, standard way (no earlier instantiation needed!) to apply the language to talk about what PerspectivityLlc thinks about the owner getting an AWS ML learning certification. Then you talk about the definition of iObservation heIsExcited to learn more.
This is KEY. You can know anything that is to be known (in your limited context) about what PerspectivityLlc thinks about this because you have this observation. The observation can observe anything. And, yes, iObservation is a Perspective and does implement iPerspective (everything IS a Perspective and everything DOES implement iPerspective).
This is what this language does. It asserts Perspectives as a massive network of observations. Then it does fun stuff with it.