Thursday, May 10, 2007

The Vasa Tale

I'm left thinking about feature overload thanks to an interesting chain of posts: The language of the future is JavaScript -> The browser wars are upon us again -> Brendan Eich's JavaScript 2 and the Future of the Web.

Due to the nature of the typical software development process (add features -> release -> repeat), software seems destined to destroy itself through feature overload. It's true for applications, but even programming languages aren't immune.

There's a beautiful simplicity in JavaScript, and I hope it doesn't get bloated to death.

Thinking about this left me recalling a classic anecdote offered by C++ language designer Bjarne Stroustroup regarding the demise of a Swedish warship named the Vasa.

CUJ: You have often used the story of the Vasa to encourage taking the simple route in defining the C++ language. But it is pretty much common public opinion that C++ is one the most complicated languages in existence. Any comment on that? If there are different "levels'' of C++ usage, how would you characterize them?

BS: Clearly there was a danger; why else would I bother telling a cautionary tale? Construction of the Vasa started in 1625, at the request of King Gustav. It was originally intended to be a regular warship, but during the construction the king saw bigger and better ships elsewhere and changed his mind. He insisted on a flagship with two gundecks; he also insisted on a lot of statues suitable for a Royal flagship. The result was (and is) very impressive. Rather top heavy, though. On its maiden voyage the Vasa only made it half way across Stockholm harbor before a gust of wind blew it over; it sank killing about 50 people."

(The CUJ interview is here.)

Even though the creator of C++ seems like an unlikely teller of the story, it's still a great story.


Post a Comment

Subscribe to Post Comments [Atom]

<< Home