Monthly Archives: May 2011

Oooopss….

Being a software engineer has its advantages and disadvantages. Advantages include an AC office cubicle, sedentary job and a decent pay checque.Disadvantages of course include how we tend to see code and patterns even in banal conversations. Given this is almost the end of a half yearly cycle the dreaded appraisal process is all set to begin in a month’s time.

Couple of days ago I was talking to a friend of mine at office. we have known each other for almost eight years now and we got talking and you know ended up discussing how we had gotten introduced by a common friend and how little that people despite eight years, got to know about me, how I was so aloof and never mingled unless people were of similar frequency and forth.

Though there was a serious topic in discussion all I could think was,

Karthik – Dependency Injected – Absract- loosely coupled – Role access – Security – singleton – manifest – known types – strong names.

I find this very weird. If I were to be a part of an application and an architect identified the application to behave the way it has been stated, he would be happy to have such a decoupled and easily replaceable component. I am an architect and I would be happy of such a component.

This is probably one of the key requirements of any plug and play system. Which deems the presence of which not a mandate for the functioning of the overall system itself.

When we think of object orientation in the programming paradigm, it is a concept that has evolved from what is around us. How this world behave and that behavior modeled into the famous OOPs. Nowadays I see people finding it difficult to trace the concepts back to the root (which is the world around us). For something that has evolved from the world as we see, if it is good for the application, then shouldn’t it be good for the world or your instance of the world too…

So how does this world look like when you take it apart and dis-assemble the conversations and map to the OOP world…

Abstraction: idea not associated with anything concrete

Inheritance: attributes acquired

Polymorphismexistence of two or more forms


On a different not, What does Proactive mean? What it is something you will never know, neither will your boss know. Still it remains what it is and surfaces every 6 months, whatever you do it will still be there, it is so abstract that nobody can define what it means. This word is the mother of all abstractions…

If only the world was a plug and play :) it would have been a lot easier… But as my friend had stated earlier, the level of abstraction that is being enjoyed is not the same :) Every body abstracts, every body has access roles defined. We have our own layers of people and relationships around. We expose different views of ourselves to this world, We have our own business logics that drive us, we are all hardwired to a specific program. It only makes sense that we keep the program maintainable and the basic requirement would be loose-coupling. The pattern is unquestionable, but can we fathom what the developer of this program intended to do with these little modules?

PS: If you end up thinking like this, you will go insane

PS1: What the friend told was true and it hurt. Might Change. I don’t think he reads my blog, but if you are reading :) am not belittling the conversation or your time :)

Follow

Get every new post delivered to your Inbox.