Power in programming, and another research idea I’ll never have time to get into

I have friends who code. Some of my most favorite friends code. We talk about coding, and since I don’t really do it (not yet, anyway) I let them talk at me and over years I’ve started to develop some understanding of the experience.

One thing that has regularly popped out at me in these conversations is when they talk about power and things in coding-land that are powerful. I think, “What does powerful mean? Code can’t move itself, can’t move at all. It doesn’t generate or expend energy. It can’t punch me out. What is power in computer science?” So I started asking these questions out loud and got what I can only describe as fuzzy answers (which indicated I was on to something). And I think I’ve finally developed a working definition of what power means in the coding/computer science context.

My hypothesis: when something is described as powerful, it means that that thing realizes some higher objectives particularly well. For instance, if one objective is expressivity (apparently this is a word only in biology), something is powerful if it allows for a high degree of expressivity. But there are I think two issues here: 1) power is only really used when multiple objectives are realized with minimal mutual sacrifice, and 2) to some extent, people disagree on which objectives are important.

I look forward to teasing this out, particularly that last issue, in my own informal grounded theory way.

(And seriously, are linguists looking at the extent and degree of metaphor used in computer science terminology? They really ought to be.)

And my random research idea stems from this post over at The Shifted Librarian, which is a reference to another post altogether regarding using tag cloud mechanisms for “pattern recognition.” I want to call it text analysis, or coding as it is often done in qualitative research studies. In any case, my idea is to conduct some kind of study on qualitative research(ers), with a control group doing traditional coding of interviews, and an experimental group using this automation hack, and see if conclusions differ. I wonder if there’s any way to test the influence of the display, since that’s what many find so evocative of tag clouds.

Yet another thing I will do in my copious spare time with my massive resources. Indeed.


2 Responses to “Power in programming, and another research idea I’ll never have time to get into”

  1. 1 Zane January 31, 2008 at 2:46 pm

    In my view one programming language is more powerful than another if it allows you to express the same ideas more succinctly without sacrificing clarity. I acknowledge that there are many ways in which that statement is ambiguous, subjective or both, but it’s a complicated question.

    Paul Graham, a luminary in the Lisp world, wrote about the importance of succinctness in programming languages, but he didn’t place as much importance on clarity:

    Steve Yegge, another developer and essayist, wrote a bit about this too:

  2. 2 George V. Reilly February 3, 2008 at 9:45 pm

    Graham also has more to say about power in his most recent essay, http://www.paulgraham.com/arcchallenge.html

    His main point is succinctness = power. This captures most of what ‘power’ means to me, but here are a couple of counter-examples.

    A DSL (Domain-Specific Language), such as GraphViz or regular expression notation, can be very succinct and powerful in its domain, but be useless for anything else, such as manipulating a network socket. A more-general language may not have the expressiveness of a DSL, but it can solve far more problems.

    A low-level language, such as C or assembler, can be used to write any program — if you work at it hard enough — many of which cannot be written in other languages. You won’t be able to move a disk head around in Lisp, but a typical Lisp program will be more succinct than its C equivalent.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: