Avoiding Feature Creep: or On the Up-Sides and Down-Sides of Having an Evolving Language

I feel the need to say something here, inspired by recent language feature discussions and suggestions, both on our public Chrome newsgroups but also in the betas.

I know that many of you, our users, originally come from a Delphi background, and traditionally, Borland introduced about one change to the language per decade, or so it felt like, at least. In contrast, we’ve been quite “liberal” with extending and evolving the Chrome language; Chrome is only some four years old, and we’ve added a lot of cool stuff over the course of its life. And don’t get me wrong, i think that’s a good thing!

However, there’s a fine line (a very fine line) between keeping a language evolving and growing on one hand, and implementing everybody’s “wouldn’t it be fun if” suggestions, on the other.

We will of course keep expanding the Chrome language according to our vision of where the language should go (and in fact we have many good concepts planned for ‘Oxygène’ and versions beyond), but that does not mean that we can (or will) jump at every suggestion or language change request that is brought up. This should not be taken personally by those of you who submit suggestions; it’s not that your ideas are bad (at least not all of em ;-), but we do need to keep the balance and evolve the language into a consistent direction – not just add every neat gimmick that someone can come up with.

Otherwise, we’ll end up with a language that no-one recognizes and where no two features work consistently between themselves, five years from now. We don’t want that, and i’m sure our users don’t want that, either.

And if you want something that feels like every singe syntax element was devised by a different person new to the language, there’s always Ruby ;)

This is of course not to discourage the submission of ideas – many of the language features we’ve introduced into Chrome have originated from ideas submitted by users and beta testers (sometimes verbatim, and sometimes by evolving the original idea into what we same fit best). Please keep bringing us your ideas, but also please keep in mind that we simply cannot run with each and every one of them!

Let me know what you think…

Yours,
marc hoffman
Chief Software Architect