Sunday, July 31, 2005

Digital Revolution

Revolutions come when the thesis of ruling paradigm creates its own antithesis. Marx predicted that the very thing which constitutes capitalism will lead to its downfall. Though it didnt happen Marx was really right in the way revolutions occur.
So is the case of digital computing or computing in a "discrete" "digital" manner. The inherent discreteness in its nature the clear cut division of 0 and 1. The logic crispness of if then else tends to limit it. Though modern dey computers are good number crunching machines and bear there lineage to Turing's machine and Neumann architecture the need for today is not number crunching but networking, data analysis(much more than statistical analysis), AI etc.
(To be continued)

Monday, July 25, 2005

Software Engineering and Religion

I had a course on software engineering where different life cycle models, stages of a software creation process is given. Different processes and methods are given to manage the process. When i had a similar session in the company it said that these things should be a second nature to you not a checklist or laws to be followed to the word each and every time.
So i think is religion it is a set or collection of principles rules general rule of thumb which are not "that" sacrosanct to be not to violated. They are "GUIDE"lines which can be broken in cases.
It is when we concretize these knowledge wisdom that we create laws as a bar beyond which one cannot fall. This let people to fall to the common level so as to be on the safer side.

We all cry about public conduct of indians and our habits. Can these be encompassed in law? Can we really encompass ethics, morality, intent within concrete and crisp definitions of law. NO

Law as a father to the truant child can work in extreme cases who will provide the solace that things dont get out of hand but what will happen when things are not in an emergency state but the soceity is slowly degrading without anybody noticing. This same problem comes in the form of cinema censorship, ip copyrrights.
I think it needs mother of ethics and culture.
Following is another related article written by me which could not get published, Though similar thoughts are given do read it whole:

What exactly is religion? One of the many perspectives is belief in and reverence for a supernatural power. But hardly anybody sees miracles (except some movies) in this life. Alternate view of religion could be a way of life which prescribes some do's and dont's so as to create individual and social harmony. They are principles, guides to be followed so that society doesn't go astray.

Religion is belief on what has been written in sacred text, spoken by great leaders for humans to follow for happiness of all. So is software engineering.

Let me clarify my point. You may differ in it in many ways.Let us identify both of there domains. Both of them tend to be dogmatic i.e. they will preach about practises which would best result in work or life. Both of them have a connection to source of knowledge, priests in religion and software engineering (SE) practitioners who would reveal sacred secrets of the field.

Now comes my main point. Religion and SE are both guidelines, heuristics, thumbrules or synthesis of knowledge that great people have made and told to lesser mortals. You can use them in case they are helpful but those are not absolute truths. You should have a pragmatic approach and look for yourself wether you are being benefitted by them rather than blindly following them.

They should be like second nature to you.

PS: Matters of religion are quite touchy these are my personal views and you can always differ with them

Thursday, July 21, 2005

We look at the software creation process and analyze it from starting by requirement analysis. We look at what the software has to do but we dont look at the process of computing as such. Probably it is from the evolution of computing for calculating. Computers where started as number crunching machines. But nowadays who uses it for pure number crunching we have concepts like logic programming where the user/programmer gives/states the problem not how to solve it. Why not apply it on the machine level?
Why not have machines which dont processon numbers like 0/1 but on symbols? That way the whole basics of computing will change . To bring a revolution we have to identify the underlying conflicts and provide newer solutions? Question everything. What was best 10 year back may not be the best today. We chose binary system because it is easy to identify two levels of electronic signals. We chose 0 and 1 so that we can do complex mathematics in series of small steps. But why do we still do it. Why not lookup for alternatives.

Friday, July 15, 2005

Computing creates a different world which is not easily manageable. Why ?
let me be more clear.

We have a raw resources, developers/manufacturer and end -user. Now if i have an object say knife it is really multipurpose for the "end-user". The developer/manufacturer doesnt specify as to how this knife may be used or it can be used for killing only or cutting vegetable only.

The argument software(s/w) companies give is that "knowledge" as to the the "know how" of making a s/w or doing a task by s/w is easily transferable and copyable so they would be out of business if they give there knowledge for free with the product

This is not so with knife. Because one cannot create another knife out of a knife and call it his own.

now let me get back to the origianl statement.
If i give a product to my customer he can push it pull it throw it he can do anything but software is such a "constraint" thing. A software module can be used in only one way. Try seeing software as an object and see the differences.....