vladimir piskarev's blog

Musings on the Eclipse Handly project and software development in general

Tag: Alan Kay

Alan Kay on delight in complexity and the joy of simplicity

It seems that I’m in the mood to paste some quotes on the blog. I hope that the reader will forgive this weakness of me; my purpose is not to amuse you per se (though I would be happy if you’re amused), but rather to leave some reminders to myself on what can be important to think about in general.

This quote is from Alan Kay’s Turing Award talk at OOPSLA ‘04:

An ancillary problem is that our field and people in general take great delight in complexity. If you go to schools, it’s remarkable how much work they make the poor kids do, when if they taught the math better and differently, the kids would be doing much less work. But in fact, people delight in complexity and think that putting immense amounts of hard work in, even if there’s an easier way, is actually — there’s something morally good about it.

And so I think for our field, one of the hardest things is the delight in complexity. Because of many levels of structure in computing, and difficulty of going from one level to another, pretty much everyone who gets interested in computing and successful at it is a person who has mastered staggering amounts of complexity. I believe that most of this complexity is absolutely unnecessary, and I believe it can be proved that it’s unnecessary.

So what we really want is to find the joy of simplicity… All the projects I’ve been involved in have been successful, successful because the people who worked in them put quite a bit of effort into keeping things simple, and this community of ARPA and then Xerox PARC was outstanding at being simple.


On scalability and why it’s so important

I’m not going to say anything really new here. Rather, it’s a way to summarize thoughts on that, quite important to me, matter.

I have a deep interest in object-oriented programming; more in the original idea than in any specific implementation (though I find Smalltalk to be an execution par excellence) or methodology (however helpful design patterns can be). I was immensely impressed by Alan Kay’s talk at OOPSLA 97. Here’s the link. I continue to enjoy it every time I’m reading it. It’s influential, to say the least. Without doubt, Alan is one of the most important thinkers of our time, probably of all time.

Of course, the central idea underlying object-oriented programming is how we can deal with large-scale structures effectively. It’s all about scalability. As Alan Kay excellently put it: “As size and complexity increase, architecture always dominates materials”. When ARPANET was being designed in the sixties, its designers thought deeply about scalability of “the intergalactic network” — the result is, of course, the Internet as we know it — probably, the largest structure ever made by the human.

Now, many seem to be concerned more about performance than scalability. Some may even believe it’s the same thing. It’s hard to say why this syndrome is so deeply embedded in our nature, as programmers. Indeed, system programmers may be thought of as “high priests of a low cult”. The cult is, of course, optimization. But the irony is that staying in the “pink plane”, strongly focused on optimization, we are often optimizing something that can’t be optimized very much. While such optimization can bring tangible tactical benefits, it can also bring much less tangible, but strategic losses (skewed design, closed options, hard to maintain inflated code base, etc.). In contrast, thoroughly thinking about scalability is strategically important, though perhaps less perceivable tactically. When a first Smalltalk took a while to compute “3 plus 4”, Alan could not care less. He knew about the Moore’s law and designed for scalability, not for performance per se. The rest is history.

“If you think programming is small, that’s why your programs are so big.” Our industry as a whole could benefit if we begin to think more deeply about all aspects of scalability when doing system design. And that’s the main lesson from Alan Curtis Kay, to me.

P.S. Once you start blogging, it’s hard to stop. That’s why I’ve long resisted creating a personal blog. Now it’s frightening to think what will happen when I discover Facebook and Twitter.