4 ms·
I like this as a more systematic starting point, with more direct application than the high-level conceptual approach I gravitate towards. One quibble -- I wou
by davesims 13y ago
I like this as a more systematic starting point, with more direct application than the high-level conceptual approach I gravitate towards.
One quibble -- I would prefer non-negative(!) terminology, i.e., what is a "nonsymbol"? A collection? A monad? A duration? An event? A process? A closure? Some category that encompasses all of these? If so, can we find a positive semantic rather than negative?
>> Object-oriented programming hasn't stepped away from the full space of nonsymbolness-- and that's a big part of why it's so damn hard to reason about it.
Well, this gets back to the ancient problem of "The Third Man" and categories in general, right? One must categorize and "contain" meaning, trap it in language a moment in order for it to remain meaningful, but paradoxically the external thing that it symbolizes is always changing, so it's always escaping any semantic trap we set for it. This of course has practical (concurrent) implications in software as well as the high-falutin metaphysical stuff Plato was talking about.
These days I'm starting to wonder more about how we may not be using state-machines quite as effectively, or as often, as we might -- changing functionality more aggressively as the data changes, in order to move towards a better analogy with the ever-changing "real world" that software is trying to model. Might this be more self-aware starting place to integrate functional and object concerns -- both of which are necessary?
- michaelochurch 13y agoOne quibble -- I would prefer non-negative(!) terminology, i.e., what is a "nonsymbol"? A collection? A monad? A duration? An event? A process? A closure? Some category that encompasses all of these? If so, can we find a positive semantic rather than negative? Good question. I tend to think of it as a stateless (I haven't added state to the model yet, and there are myriad ways of doing it so I'm debating how to do it) object. To apply it to something (symbol or nonsymbol) is like sending a message, and the result of the apply is what it returns. Nonsymbol is deliberately vague, meaning "we don't know what this is". We need a context to make sense of it (e.g. observe _size, then if that's a natural k, observe 0, ..., k-1; it it's not, it's not in the Vector context) and if it doesn't play by the rules of a known context, we're screwed. We continue to need context when we "array-ize" nonsymbols into natural numbers. Nonsymbols are like functions; however, a function has a well-defined domain and non-symbols don't. However, the only useful nonsymbols are "function-like" in that some sequence of symbols and known nonsymbols will produce an observable (symbol).