Zac muses, semi-frequently and with zest.

The other night I posted something of a stream of consciousness about my impressions of where programming paradigms are headed. In short I tried to state the following (even if it was not obvious):

  1. Object-orientation, while useful, does not scale well to the size of the data sets we now work with and try to manipulate. Following closely to the OO mantra and making most everything an object works but becomes unwieldy as you create programs of sufficient size. I cannot say that program size scales linearly with dataset size, but program size does scale in proportion to dataset size AND what you want to do to that data.
  2. Functional programming does deal with the complexity of many environments  by pulling program state out of the equation and letting the developer focus on the data. The problem with functional languages is that they often do not convey the meaning of their code quite as clearly as one would hope. It seems to me that many functional languages lead toward writing clever or novel code. In software engineering, clever code is never really as clever as you thought it was.
  3. I did not even mention Structured/Procedural programming (i.e. classic Pascal or C) since we have passed the point of those languages being useful with large data sets.

Cook is certainly on to something with a “Smalltalk of Modeling.” I spent most of my college years programming computational models for biologists. In that time, I got a lot of experience trying to build models of large data sets using Java. I would create these complex and mind boggling programs in order to achieve the model constraints we were looking for. This is the single greatest influence for my statement in #1. The rest of the influence comes from experience in designing systems recently. When dealing with large data sets, a model-based approach appears to be a more tenable approach.

§19 · May 9, 2011 · programming · · [Print]

Leave a Reply

You must be logged in to post a comment.