Posts tagged ‘javascript’

April 30, 2012

Split Peas, Distraction, and the enemies of Abstraction

by Jacob Lee

While reading Marijn Haverbeke’s book Eloquent JavaScript: A Modern Introduction to Programming, I came across this passage, extolling the virtues of abstraction:

When writing a program, it is easy to get sidetracked into small details at every point. You come across some little issue, and you deal with it, and then proceed to the next little problem, and so on. This makes the code read like a grandmother’s tale.

Yes, dear, to make pea soup you will need split peas, the dry kind. And you have to soak them at least for a night, or you will have to cook them for hours and hours. I remember one time, when my dull son tried to make pea soup. Would you believe he hadn’t soaked the peas? We almost broke our teeth, all of us. Anyway, when you have soaked the peas, and you’ll want about a cup of them per person, and pay attention because they will expand a bit while they are soaking, so if you aren’t careful they will spill out of whatever you use to hold them, so also use plenty water to soak in, but as I said, about a cup of them, when they are dry, and after they are soaked you cook them in four cups of water per cup of dry peas. Let it simmer for two hours, which means you cover it and keep it barely cooking, and then add some diced onions, sliced celery stalk, and maybe a carrot or two and some ham. Let it all cook for a few minutes more, and it is ready to eat.

Another way to describe this recipe:

Per person: one cup dried split peas, half a chopped onion, half a carrot, a celery stalk, and optionally ham.

Soak peas overnight, simmer them for two hours in four cups of water (per person), add vegetables and ham, and cook for ten more minutes.

This is shorter, but if you don’t know how to soak peas you’ll surely screw up and put them in too little water. But how to soak peas can be looked up, and that is the trick. If you assume a certain basic knowledge in the audience, you can talk in a language that deals with bigger concepts, and express things in a much shorter and clearer way. (emphasis added) This, more or less, is what abstraction is.

Now, after reading this, I could not help but think about how blogs, listserves, and other open forums for expert discussion can become bogged down by the participation of non-experts, or the badly informed and opinionated, or even people merely coming from different domains of expertise. Eventually, this can lead to the departure of those experts for less congested locales.

There is immense value in the continued existence of open forums. So the question is, how can a forum remain open, but circumvent, or at least diminish the challenges just mentioned? I can think of at least one way, suitable for highly topical forums: namely, the FAQ, or Primer.

So, for example, New Economic Perspectives, a group blog of academic and professional economists interested in Modern Monetary Theory (MMT), has an extensive primer on MMT available on its blog. But a Primer or FAQ is probably not enough, unless it is tied into some kind of policy and practice of policing. An interesting, if extreme, policy might involve some kind of test of the basic knowledge presumed by the epistemic community in question. For example, New Economic Perspectives might test users knowledge of MMT in order to obtain the credentials to participate in the forum, or their scores on such a test could be associated with their comments in all cases. Annoying perhaps. But then, I am reminded of John’s idea of an online community based on concentric circles:

While agreeing fundamentally with grad student guy’s observation about the need for filtering, it is far from clear to me that any currently available technological solution is likely to solve the problem. As far as I can make out, the patterns that emerge in forums like OAC are not that different from those that emerge on listservs. After an initial period of enthusiasm in which people jump on board and stake out positions, things settle down to a handful of contributors accounting for most of the traffic and occasional outbursts of concern about why more people aren’t contributing.

The alternative is to consider filtering as a political problem, where the fundamental dilemma is the gap between the ideal of openness and ease of access and the reality that most people can’t or don’t want to spend large amounts of their day responding to a mass of material that grows exponentially and is mostly repetitious and, in event the best sense, juvenile — an endless rehashing of old arguments that rarely goes anywhere.

The only plausible scheme that I have been able to imagine is modeled on secret societies with a hierarchy of concentric circles, in which it requires an invitation to move toward the center for all but the outermost circle, to which everyone is invited. Are there other options to consider?