Sunday, August 22, 2010


Every subject, philosophy, area of interest defines some set of principles which provide the basic framework for thinking about the subject. Be it physics or computer science or politics or economics, every subject will define something. It is impossible to talk about anything unless we define it. This act of definition does two things: it simplifies thinking about the subject and at the same time what is doesn't defines becomes insignificant, forgettable. Think of a clean sheet of paper and then think of a line drawn on it or a circle. Suddenly we have a left side and a right side or inside of circle and outside of the circle. The act of definition allows us to focus on somethings and make us blind to what is not defined.

Einstein talked about countable and uncountable things, I am taking this one step behind....only what is defined could be countable or uncountable, what is not defined is simply outside the scope, irrelevant, unknown, unthinkable.

As a programmer I need to define endless concepts to simplify my code. And often the concepts become weak when new features are added, which break the existing code contracts. I don't think it is possible to avoid inventing concepts, but I feel the less the better. If it was possible to write code without inventing these concepts, I would be happy, but they are necessary evil. They allow understanding the code, they make some things very easy to do, but the very act of defining them limits the kind of problems that can be solved using them. And eventually the code rewrite/refactoring is needed.

I find this very similar to what happens in life, except that the code is the "language" we talk (the sum total of human knowledge) and every one speaking that language is its "developer".  The whole world is writing a software called "language" and it is hard to change meanings when everyone in the world is working on the same piece of code. So the human race continues to be backward compatible, maintaining the legacy code, even though we might be badly needing a rewrite.  Things like nation states, religion, money, government, inheritance, etc. the foundations of our existence may already have reached their end of life, but we will continue to be trapped because we defined them sometime in our history. May be the problem of poverty, corruption, unemployment, wars,  nuclear race, global warming, religious intolerance,  alienation, etc cannot be solved in the realm of our "language".  They are end result or logically valid outcomes of the conceptual models of world we have defined over the years.

May be we need a redesign but that too will need to be defined...and then thousands of years later it will also becomes obsolete.

1 comment:

  1. I like the analogy in the last paragraph.

    I guess, nature has some answers to these problems ... wipe out everything once in a while and let the whole thing start all over again - Not too different from what you do when the code that you had written earlier doesn't work well or doesn't make sense any more- at some point you drop the whole thing and start all over again.