Why did you do it that way?

I cam constantly in awe over how badly we all write code. We contort our ideas into one of three camps.

  1. Object Oriented
  2. Functional
  3. Curried Rice (aspect oriented, etc…)

And as such we loose much of the expressive nature in conforming to the rules of “Modern” programming.  I suspect that 30 years from now we (some of us anyway) will look back and marvel that anyone was able to write any meaningfully useful programs in the same way I now look back and am amazed that anyone wrote with punch cards.

Now I’m dancing on a line here and thats between the programming language and the programming model. I have heard it said that the language you code in will affect how you model your thoughts about programming. I agree with this as I have experienced it (I’m sure you have as well). But what about the inherent “model” of programming itself? Computers are an extension of (physical realization of) a mathematical idea. That is, you can feed one function into another function and end up with a more complex function. (I’m simplified it a bit but I hope you get the jist of what I’m saying – read Alan Turing‘s original paper) so in essence we are influenced by the rules of math when creating programs. Now I’m not saying there is anything wrong with that but in recent years with the proliferation of languages like Ruby etc. that call themselves 5th generational languages I wonder if we are not striving for something more than a mathematical way to express our ideas in programs?

I want a new way to think about and model my programs. Does anyone have any ideas?

Advertisements

1 Response to “Why did you do it that way?”


  1. 1 kriggio May 30, 2007 at 2:57 am

    I am a huge fan of Object Oriented Design/Programming and more recently of Curried Rice (OOP supplemented with Aspect Oriented Programming). I do feel an effective approach to modeling programs is to model them after the natural world. What I mean is, I feel application design is highly effective when it mirrors the “real world” objects and processes it is attempting to emulate. For business related applications, I attempt to define the business process model as the composition of actors, resources, and functions, supplying both the inputs and outputs of the activity. This business process model, is usually easily represented as objects.

    From what I have been hearing from the various development communities, it is not so much that the world cannot be accurately modeled using OO, it’s that an accurate model can often be too verbose. Most of the up and coming languages are merely trying to reduce the verbosity at a language level, yet I feel most of our gains in productivity are related to abstraction and encapsulation.

    In my opinion, Ruby, and similiar languages, are simply another form of abstraction on top of the “math.” I think we will be rooted in math as a foundation for an indefinite period of time.

    I think I lost focus a couple seconds after writing the first sentence. 😉


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: