I think Rico’s spot on when he says that the real way you win the performance war is 5% at a time. Actually, I think he’s been overly optimistic — a lot of the time, it seems like you win the performance war 1% at a time. It’s much more like trench warfare than blitzkreig.
There’s also a larger idea at work here. Rico’s point is that in a mature product, you shouldn’t be able to come up with a huge performance win in most cases because, if you can, why didn’t somebody think of it before? The thing is, this applies to pretty much any aspect of a mature product. As we think about the future of Visual Basic, I can assure you that we all sit around dreaming of the revolutionary new feature that will return us to the days of explosive growth that the product experienced early in its life. And, hey, it’s always possible that we’re going to latch on to the next game-changing development methodology that will revolutionize how people write programs and causes an influx of another 30 million or so programmers. It just isn’t likely. After all, a lot of very smart people inside and outside of Microsoft have been looking at this problem for a very long time and so far we haven’t gotten radically beyond many of the fundamental ideas that made VB so hot a decade ago.
It’s also why I really don’t envy the guys working on Office. After all, if you’re a developer in Word, what are you doing? It’s not like there’s some new radical paradigm for text editing out there — we’ve wrung most of the major gains that are to be had out of WYSIWYG. Same goes for Excel — the spreadsheet metaphor has reached a high level of maturity. So what do you do besides dreaming up newer and newer ways to arrange your toolbars and menus? Collect your paycheck and go home?
This is where we get back to trench warfare. Even though, yes, a lot of the “big ideas” have been pretty mined out, it’s not like we’ve reached a state of perfection. Looking at Word and Excel and Visual Basic, there are still lots and lots and lots of little things that can be better. Refactoring isn’t going to revolutionize programming the way that a GUI builder did, but it’s still a nice, incremental improvement over what came before. It’s the 5% gain or the 1% gain instead of the 50% gain, and that’s in many ways just where we are as an industry.
Personally, I would love to be the guy who dreams up the next really big thing in the programming world, the one that’s going to put my name in the history books (or, at least, computer history books). And, who knows? Maybe I’ll win the lottery. It happens. But if that day never does come, I’d still be happy improving the lives of VB developers by 50% or 75% just by making those incremental improvements that makes their lives easier one step at a time. It might not be enough to get us another 30 million developers in one shot, but in the long run, who knows?