Let's swim around in some InkBlotSoftwareEngineering a bit. I think there are features of people's personalities that leads them to favor different paradigms or languages. Myself, I am a visual thinker and also lean toward declarative interfaces such that I want to just describe facts about nouns and then have something else take care of processing the nouns based on noun descriptions alone, or nearly alone. To me this splits the problem into two dichotomies for DivideAndConquer purposes. This is easier on my mind than behavioral interfaces, but I have not quite figured out why yet. To me declariative information is usually more "mathable". Perhaps the mathability of it helps in ad-hoc pattern identification in my mind, as described below.
I know many of you prefer behavioral interfaces, but I have not figured out why yet either. Attempts to unlock your thinking processes have not been successful, often turning into flame-wars. For the sake of discussion, let's not put value judgements on perception techniques and preferences here. There are many valid paths to the same mountain.
Back to the visual thinking thing. My visual nature is one of the reasons I like TableOrientedProgramming. I can see patterns in information that a code-wise version of the same thing does not make readily appearent to me. Plus, I can change the presentation to hilite patterns.
For example, suppose I wanted to study the relationship between column a and column b and see if there is any correlation to c in a table:
select a, b, c, decode(a>b, '>>>', a=b, '===', '<') as foo from mytableThis would result in something like this:
a b c foo -- -- --- --- 5 2 34 >>> 19 20 18 < 40 39 77 >>> 7 7 12 === ....(The "decode" statement is kind of a functional if-elseif statement where even-odd pairs create a kind of look-up map. The less-than is kept short to make it visually more distinct from greater-than.)
This provides an ad-hoc way to exaggerate patterns present in data. It turns information into visual patterns. I am more productive when I can see visual patterns. If the pattern is merely linguistical, then I often miss it. Some seem better at linguistical patterns: their brains read in the code and then process it as language and internally "spot" the linguistical patterns.
I don't necessarily think that being visual is "defective". After all, visual information is often very compact and descriptive. However, I think I am kind of a minority in the computer field, at least among those who create and promote languages and tools. I don't know if it is a chicken or egg thing.
If tools divorced presentation from meaning, then different people can see stuff any way they please. However, perhaps there is a tax or penalty in making information more transformable. Maybe not enough people are bothered by a liguistic reality, or perhaps thrive in it, such that I am one of the few who cares; a minority. I don't know if there really such a "tax" though. But, maybe non-liguistic people are scared out of the software field and transformability may bring them back in (ignoring the existing glut). I believe that NobodyIsSummarilyDumb
-- top
I was hoping that others would jump in with their point of view (ie. "minddumps"), but so far there is none. Maybe after a few months, this topic should be deleted and the content merged to a similar existing topic. -- top
RefactorMe: last edited November 29, 2004, no backlinks