Featureitis

January 20, 2008

Are the features of a programming language symptomatic of disease? I was emailing my brother about the ideal camera. We’re both of an age when the number of pixels and features aren’t particularly important anymore.  Our camera straps don’t reach down to our crotches. But we, well I, used to be like that.  Bigger faster lenses.  Professional level cameras.  Zone System! And yet I still took just snapshots.  But you know the type of guy. Got to have the latest with a check mark against every bullet point on the feature list. Are programming languages built to that mentality? Even though we have to know several different languages for different niche applications, why do we want these portmanteau languages?  

In “The Social Life of Information” John Seely Brown and Paul Duguid wrote about how Xerox techs used to gather informally during breakfast and other times.  Although the purpose wasn’t for business or to exchange technical information or to share war stories about work practices, that is what they did.  In the olden days of mainframe computers, inbetween the era of punchcard machines and individual terminals in every cubicle, we programmers used to sit in bullpens where we shared terminals.  Then as now entering code was a relativity minor activity in our day.  Programming is thinking, not typing.  A side effect of sharing terminals arrayed in a bullpen is that we actually saw each other and could compare notes, ask questions, mentor and learn from each other.  Not unlike the Xerox techs. When we each have our own computers this enforced community breaks down.  Someone has to go to another person’s cubicle–or worse, make loud noises over the partitions.  Some cubicles are set up so that the terminals have to be placed in the shared intersection and the programmer has to sit with his back to the opening.  Which I personally find rather creepy but then I’ve seen too many horror flicks.  Cubicle terminals seem to make interruptions more intrusive.But in terms of the analyst – programmer relationship, I wonder if a communal environment would help foster the exchange of ideas, knowledge, identify areas of confusion and need.  Extreme programming already includes the concept of paired programming.  The idea of paired programming is that typing, again, is not programming so it’s not like one person typing is cutting productivity in half.  But you do gain two minds applied to a problem, sharing ideas, one debugging the other and so forth.  All to the good. But what if we expand the notion?  Have the analyst sit in and provide their perspective and expertise?  Swell.  Except that the analyst isn’t needed much at that phase in the process.  If they are, you’ve got serious design problems. Two people in one cubicle is rather intense.  A crowd just sucks up too much oxygen.   But what if we opened up physically, back to something like the bullpen where we could meet and talk without planning to.  For the analyst to participate, they shouldn’t have cubicles at all.  They should be in open seating just off the array of terminals in the bullpen.Two problems, at least.  The cubicle police would never go for it.  Second, when the analysts do need their own quiet concentrate time they will have to flee their own desks and all their materials.  Just a thought.

is the pc obsolete?

January 5, 2008

I keep reading blogs about a tablet mac from Apple.  I hope they don’t make one.  My first computer was an IBM 360/50, and I loved it, but somehow when personal computers came into my life, I didn’t miss mainframes. Mainframes were good at updating massive sequences of numerical data.  Checking accounts, utility bills, stuff like that. In that mindset a personal computer didn’t, well, compute. The amount of data that fit on a floppy disk was trivial. But it got the programming out of the box. And just about anybody would write a simple BASIC program. I still think of PCs as a way to store my text, but I’ve noticed that everybody else seems to use to store music and photos and craft their home videos.  But it feels like PCs don’t have much further to go.  What else can they do?  A tablet PC is just an untethered PC, kind of like, you know, a cellphone. Cellphones can take pictures, handle data, connect to the internet, handle debit transactions, locate you with GSP.  Some of them anyway.  All it seems we’re missing now is decent voice recognition/speech recognition.