The Unbearable Lightness of Being a Plumber

In his book The Unbearable Lightness of Being, Milan Kundera makes an interesting case that kitsch is the absolute denial of shit. Lately I’ve wondered if this implies other activities that deny the existence of shit are really exercises in kitsch creation.

Is Linq Kitsch?
Google for linq and plumbing and notice how many hits you get. Plumbing code is discussed with a sort of subtle condescension. The message is that plumbing is dirty, uncreative work – something better not thought about, hidden below the surface.

While Linq looks exciting, I wonder if we run the risk of abstracting the database to the point we overlook solutions requiring an understanding of internal design. Will someday our children forget the obvious solution: sometimes you just need to jiggle the handle after flushing objects (rows). Linq must be smart, but I can’t help but think there must be cases where plumbing your own O/R mapping might work better. It’s really not that bad, if you’ve ever played around with piecing together PVC pipe you probably realize that plumbing can actually be fun, with lots of room for creativity.

And it’s not just programming, but other aspects of GIS. Physicians seem to get credit for the longer lifespans we enjoy these days, but I wonder if more credit is due to plumbers. John Snows’ cholera maps revealed a plumbing problem. As far as I can tell he wasn’t using medical knowledge so much as taking on the role of a plumber and recognizing that, yes, shit does truly exist.

But beyond Snow’s maps, sewer datasets receive little attention. Could it be our kitsch sensibilities prevent us from publishing them on the web? Where I live there is a sign saying “Entering Edwards Aquifer Recharge Zone”, but never a sign that says “Warning Sewer Line is Here”. Last year a road construction crew broke a sewer pipe over the aquifer. They reported it twice. It leaked for a couple of weeks as the bureaucrats bungled through what could best be described as kitsch performance art: two different agencies denying the existence of the sewer line. Maybe we need more sewer museums to combat the kitsch, and give plumbing the respect it deserves.


3 comments so far

  1. viswaug on

    Hi Kirk,

    If you are of the opinion that Linq is taking abstraction too far then the ADO.NET Entity Data Model will blow your mind. It is another level of abstraction over Linq per se.

    But it is easy to see it as being too abstract being developers who are used to doing both database and application design. I would say that abstraction is good for people who don’t NEED to know the inner workings of the system and just need stuff like reports out of it. I think abstraction pushes the user to do more to get what he needs.

    I agree that if performance ranks high on your requirements then create your own O/R mapper and make extensive use of DataReaders and Cursors instead of Datasets like I suspect Linq does.


  2. Brian Flood on

    not sure if I’m sold on Linq yet (especially as applied to GIS), the law of leaky abstractions keeps jumping to mind…

    for a great book on Snow and his revolutionary cholera map, look no further then Ghost Map. excellent read.


  3. Kirk on

    @vish Yeah it is all a bit overwhelming, I’m sure if I took the time to learn it though I would be indoctrinated into thinking Linq is always good. I’m thinking I’d be able to write a fairly robust O/R mapper by inheriting BindingList.

    @brian Book looks good, thanks!

    BTW, after playing with storing code in the geodatabase, my gut feeling is that storing O/R mapping code in the geodatabase might be a more robust approach than Linq. It would be nice if IWorkspaceExtensions could be compiled dynamically. That way I could hide the tables from ArcCatalog etc, via IWorkspaceExtension.PrivateDatasetNames. Looks like workspaceextensions are joined at the hip with COM though. Same way with custom GxObject dlls.


Leave a Reply

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

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

Google+ photo

You are commenting using your Google+ 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 )


Connecting to %s

%d bloggers like this: