Pluggable, Please

Developers: make your applications pluggable.

One strong similarity between Firefox and Rails is the ability for developers to write plugins (or extensions for Firefox). Firefox would be a better browser than IE even without extensions. Rails would be a better web framework than the majority of web frameworks even without plugins. However, the plugins/extensions really put them over the top.

Wish Firefox had some feature? It probably does through an extension. Wish Rails had some feature? It probably does through a plugin.

Mozilla and 37signals have both made their jobs much easier by providing a really solid core product, and then allowing the developer community to add to it. Anytime new software design comes up on a TopCoder board, one of the first requests is always to make it pluggable.

Although some Rails plugins are already popularly used, I wonder how soon blog posts start appearing everywhere with "the top 10 Rails plugins for task foo," much like the frequently blogged "favorite Firefox extensions". Geoffrey Grosenbach commented on his most recent PeepCode screencast (on Restful Rails) that one of the first things he does with a new project is visit Rick Olsen's plugins repository. It is exciting that developers can make a new Rails project, install a few plugins, and have exactly what they need in a web framework - not too much, but also not too little.