Saturday, June 30, 2012

Who you calling "coder", coder?

Although Coders at Work is a fine collection of interviews with a stellar cast of software people, I hate the title and the way "coder" has become the word of choice for the kind of stuff I do. But I still haven't found a good name for it.

"Programmer" is OK but drab, "Hacker" is good but it has an unfortunate criminal second meaning, "Maker" is both too new and too broad, "Software Engineer" always sounded vaguely pretentious to me. "Software Designer" is probably the most accurate, but it never caught on. "Software Architect" isn't bad, although it tends to get interpreted too narrowly most of the time. Real architects (of buildings) integrate engineering concerns, the knowledge of and need to support patterns of human activity, and artistic striving…it's a label I'm comfortable with. Or simply "Developer", that is open-ended enough while capturing the creative essence of the activity.

But "Coder" is the worst of the lot, it suggests a drone grinding away in some 19th century office with a complete lack of creativity or engagement – someone who simply mechanically encodes ideas that were dreamt up by someone else. Blah.

Maybe it's a function of social context. I would be embarassed to be a labeled a "coder" at some non-specialist social gathering, but among software types it functions something as a badge of honor; it means that you are still hands-on and not some kind of distant manager or philosopher/flamer. Maybe it functions like "queer" or the n-word…a derogation being reappropriated as a badge of pride.

[update: I forgot "Computer Scientist", which is my actual current job title. Of course it is also quite pretentious, and it always brings to mind the adage that any field with "science" in its name isn't one]

Friday, June 15, 2012

Envy and Computational Complexity

While reading this article by Sven Birkerts on artistic envy, it occurred to me that the situation of Salieri in Amadeus has some analogs in computational complexity theory, specifically, the curious dual nature of NP-hard problems. These are problems for which it is possible to recognize (verify) a solution in a reasonable amount of time, but finding that solution almost certainly takes an unreasonable (exponential) amount of time. A typical NP-hard problem involves searching through a very large space of possible solutions (eg, the possible routes a travelling salesman could take to visit all the cities on his circuit. So, given the problem of finding a route shorter than some given value, you need to examine a very large number of possibilities, which can be impossible to do in a reasonable amount of time. But checking that a given route satisfies the conditions is fast and easy.

In Amadeus, while being a genius is hard (and thus rare), recognizing genius is pretty easy. Which is the root of Salieri's problem. He can see Mozart's genius, but there is no way he can duplicate it. Recognizing genius is not necessarily a trivial capability, probably not everyone can do it, but it's a far cry from being a genius, from being able to create (or find?) works that exceed some threshold of quality from the unimaginably huge space of possible compositions. He does not have the processing power for that, and those who do seemed possessed of something supernatural, that is, beyond conceivable mortal power.

This is something of a follow-up to this post. I've been resorting my collection of old papers and grad-school detritus, and I have to say I've been fortunate to have spent a good bit of time in the presence of actual genius, at least the computer science version of it. Like Salieri, I could readily recognize it, even if I couldn't achieve it myself. I guess I was luckier than Salieri to be also almost completely clueless about social status and rank, so at least at the time it didn't occur to me to be envious, which meant it didn't interfere with my ability to learn what I could from these semi-supernatural beings.

Monday, June 11, 2012

Hating on Haidt

I read Jonathan Haidt's book The Righteous Mind, and may have a full review eventually. It's getting some quite nasty commentary from the left, due to its both-sides-do-it-can't-we-all-get-along conclusions. Haidt presents himself as a standard-issue liberal who has, through the course of study, come to appreciate conservatism for something other than mere selfish stupidity, and thinks that we all have to do the same. This bland bipartisanship infuriates a certain kind of leftist.

I'll reserve my own judgement about all that. But I wanted to note that some of the virulent reaction to this from the left actually works to disprove Haidt's thesis. Among the six dimensions of morality Haidt identifies, "Loyalty" is one of the three he says that liberals are generally deficient in, or do not appreciate, or do not factor into their own judgements. Yet here Haidt is getting dumped on essentially for the sin of apostasy, the quintessential sin against loyalty. Those angry leftists sure do seem to have a highly tuned sense of loyalty after all.

Yes this is only based on a random smattering of blog comments, but I thought the reflexive irony or whatever it is was so sweet as to be worth noting.

Here's a more serious critique of Haidt's sloppiness, and here's a humorous leftist jibe at former leftists.

Sunday, June 03, 2012

Great and Universal Ignorance

The Internet is full of experts, people busily self-branding themself as the go-to person for whatever is the current marketable bit of technology or business or academic fashion. Personally, I've never had much interest in passing myself off as an expert, I'm more fascinated by the huge and ever-growing ensemble of things that I don't know than what I actually do know. To get Rumsfeldian about it, there are the known unknowns – the things I know I don't know (but would like to, if time were infinite), and even at my advanced age there are unknown unknowns, knowable things I am not even aware exist.

Anyway, this passage from a curious little cult book I read in my youth has always stuck with me (emphasis added):
Discoveries of any great moment in mathematics and other disciplines, once they are discovered, are seen to be extremely simple and obvious, and make everybody, including their discoverer, appear foolish for not having discovered them before. It is all too often forgotten that the ancient symbol for the prenascence of the world is a fool, and that foolishness, being a divine state, is not a condition to be either proud or ashamed of.

Unfortunately, we find systems of education today which have departed so far from the plain truth, that they now teach us to be proud of what we know and ashamed of ignorance. This is doubly corrupt. It is corrupt not only because pride is in itself a mortal sin, but also because to teach pride in knowledge is to put up an effective barrier against any advance upon what is already known, since it makes one ashamed to look beyond the bonds imposed by one's ignorance.

To any person prepared to enter with respect into the realm of his great and universal ignorance, the secrets of being will eventually unfold, and they will do so in measure according to his freedom from natural and indoctrinated shame in his respect of their revelation.

– G. Spencer-Brown, Laws of Form