2012年5月12日 星期六

Reading and Reflection- KK and computer eco-system

Reading Kevin Kelly out of control, and thinking about computer programming. The concept is that the system we designed will become so complicated that we will have to turn to biology to maintain the system.

If we separate software into internet and desktop based, I think that internet base software will do better in the long run. Because it has a more powerful feedback loop.

This morning, when I started my computer, some warning pop up, it seems that some of the item on my desktop has remained unused for a while, and some program suggest me to take it off of my desktop. This must be a code invent by MS programmers, that count the number of time that you have open each item. The underlining assumption is that, I will need to clean it.

The ultimate problem is, how do we know whether we need this line of code? How do we test the assumption of whether we want to have this function?

Maybe there is another master program that is counting the number of the program being used: if the clear the desktop program is not being used enough time, it will be wiped out. But this rule itself can't be guarantee to be a good one, as it is assessing the usefulness based on the frequency of the usage. Think of an extinguisher that is useful in case of incident, but is not been used as often.

And MS window does have a feedback system: it is the error message that it will send out to MS, when the computer crashed. But given the time that these message appears, it doesn't seem to be very efficient. Or it might be just the fact, that computer system is too complicated, and the whole network turn out to send out all kind of errors that is just impossible to deal with.

Or it might be the fact that the whole program is just too big. And it is not possible to just change one part of the program.

It might be possible to design the ultimate algorithm to emulate the feedback function on nature. When you think at the internet system, it is much closer: it let some line of program dies, they are replaced by more efficient-friendly one. The piece are smaller, and if they are not interdependent, you can easily change part of the program with something else. The system has the ultimate feedback loop, and that's why it can succeed.

Another point worth mentioning, I doubt that all software will be more open in the future: people are different, and when more people understand how programming works, they won't be satisfied with the level of control they have now. I am thinking about customization that are fundamentally different, not just the ones that allows you to change the size of the font.

When we talked about evolution, we often implies that all evolution are advancement, and that human  are, by far, the latest process of the evolution. Which might sound good, but think of this: can we said we are better than cockroach in surviving disaster?

The process of evolution just let new creature that can better take advantage of the current environment to prosper. Environment varies, and that is the reason why there are many different dominant species in different places.

If you think of this, you won't have version control that goes from v. 1.3-> v. 2.0. Instead, you will have multiple spin-off of version, that are all up-to-date.

And that may just the reason why Google has a android system that runs on smartphone is different than its desktop OS system. And that MS who try to just transfer its desktop based OS to mobile phone won't work: at the end, they have to create a totally new system instead.

Blackberry has similar problem when smartphone are changed from business to entertainment usage: they just can't make the change.



One last note on cockroach and human's comparison, if you only compare one cockroach to one human. Given the incredible things that one human can do vs. one cockroach can do, you probably won't feel intimated. But what about comparing all cockroach on earth to all human on earth?

And if you think of it, it is interesting, if human were to be defined as some biological program, we might be a very LARGE program. While if cockroach is to be a program, it might just have two line of code:  eat-> reproduce.

And in programming, the shorter the better, no?

沒有留言:

張貼留言