Archive for October, 2004

On Success and Failure


Quote:
Would you like me to give you a formula for success? It’s quite simple, really. Double your rate of failure. You are thinking of failure as the enemy of success. But it isn’t at all. You can be discouraged by failure—or you can learn from it. So go ahead and make mistakes. Make all you can. Because, remember that’s where you will find success.

Thomas J. Watson, Sr.

That is about the only formula for success I know. Our single biggest fear is fear of failure. Conquering that fear is success. T J Watson Sr. built IBM, and his son T J Watson Jr. made it the most important company in the world in his lifetime.

AMD offers $185 computer design, consuming only 1W power

Just as Intel announced that it won’t chase GHz increases any more, AMD has announced an Internet-enabled computer design, capable of being sold at around $185 in countries like India and China. The more interesting point for me was that this computer would only consume 1 W of power - for comparison a full featured PC with latest everything consumes 100-200 Watts of power. Apparently AMD was going to support Linux, but Microsoft has provided them with a Win CE based OS that is cheaper than their traditional PC versions. We can assume it would only be a matter of time before Linux also runs on that device.

Given how power constrained India and China are, this is a very good development. The world cannot afford the environmental consequences of 2 billion PCs consuming hundreds of watts and sitting idle! With the advent of mobility, the relevant parameter may not be GHz or Mips, but Mips/Watt.

Just as in the case of the Intel announcement, this has important consquences for software. It is becoming more and more important to write tight code capable of running in very power contrained (in both senses of the word!) devices. Already, software for mobile devices is a major growth area. Now more and more consumer software may be driven by similar constraints.

Intel moving away from focus on clock speed

ITWorld.com article says


Quote:
Intel Corp. President and Chief Operating Officer Paul Otellini served notice at the company’s recent developer conference that the megahertz era was coming to a close, and the decision Thursday to remove the 4GHz Pentium 4 processor from its road map is clear evidence that Intel has once and for all kicked its speed habit, according to industry analysts.

This is going to be major signficance, especially for the software industry. Traditionally, software developers just kind of assumed that however inefficient the code is, Intel will bail us all out. This is going to put a premium on writing tighter code, as applications get ever more sophisticated and start taxing the CPU.

Not that current processors are slow by any reckoning. But the days of free riding on silicon improvements are coming to a close.

From an economic point of view, this may further accelerate the deflation in the computer industry. PCs are coming down to cell phone prices, and just like cell phones, may even start being given away with software or online subscriptions.

Turing Machines vs Lambda Calculus

I have lately been educating myself on the foundations of Computer Science. I come from a more physical engineering background, with a strong dose of mathematical modeling, which in engineering is governed by experimental verifiability as well as analytical tractability.

With that background, it seems to me that theory of computing can be approached in two distinct ways. Though the two approaches are equivalent, they lead to different insights, and different kinds of programming languages.

For an engineer, the more familiar approach is the Turing Machine (by the mathematician Alan Turing), as the model of a computer program. This machine consists of an infinitely long tape with a read/write head, and a state machine that drives the read/write head.

For the mathematician, the preferred model seems to be the Lambda Calculus, invented by Alonzo Church. It deals with mathematical functions and recursion.

The most amazing thing, suggestive of the wave/particle duality in Quantum Mechanics, is that these two models have equivalent computing power: i.e you can represent any computer program in either of the two models. In fact, the famous Church Thesis postulates that there is a universal computing model, and the Turing Machine (or equivalently the Lambda Calculus) represents that ultimate computing model.

Roughly speaking, programming langauges like C or even Java, called “imperative languages”, are remotely (very remotely!) evocative of the Turing model, while “functional languages” like Lisp or Scheme are (somewhat more closely) evocative of the Church model. Most languages, including the four mentioned above, mix the two perspectives, so it is really a matter of degree.

As an engineer, I personally find imperative languages much easier to understand and use. Judging by their popularity, that seems to be a common feeling. Yet, there exist purists, mostly from the “functional” camp, who suggest that such a preference is somehow indicative of a lower IQ, under the assumption that anything that is popular must be of low quality. You can see this line of argument in the Lisp community.

The imperative vs functional perspectives can be compared with the Physicist vs Mathematician arguments I have heard in college. Physicists are the logical precursors to engineers, while mathematicians are the ancestors of pure computer scientists. Mathematicians will charge that physicists rely on intuition too much, and lack mathematical rigor, while physicists will charge mathematicians with abstraction for its own sake.

Which one is “right”? I suppose it is really a matter of personal taste. My experience is that human intuition comes first, and then the mathematical rigor. I don’t know of anyone who can write down formally constructed mathematical proofs out of thin air - I am sure they exist but I haven’t met them. Physical intuition is fallible, but that is the only weapon we have.

And then there is Godel, the ultimate weapon that physicists have against the mathematicians - a subject for another day.