Make your product do one thing well instead of a hundred poorly [UPDATED]

Few weeks ago, I was joking with my colleages about how iTunes is some kind of virus on Windows, and that I'm so old school in some things like using Winamp 2 still today :)

Well, for me it is way more valuable to have one application that does one task pretty well, instead of a gigantic frankenstein that manages to do a hundred things at once (much poorly in comparison to a specialiced product). I just prefer 100 individual apps, each one excelling on a specific purpose, instead of a swiss knife mega-application.

And why not using Winamp and other media players as an example?

Latest Winamp 2 version released was 2.95, and still works flawlessly with Windows 7. For the other media players, I just went to the official page and downloaded the latest available Windows XP version and tested it into a fresh, clean Windows XP SP3 Virtual Machine.

All players will reproduce the same 128 CBR 3 MB MP3 file. No playlists, no effects, just playing a single song.

Winamp 2

Winamp 2 memory consumption

This was checked at work with a Windows 7 Professional x64. Still, memory consumption is incredibly low.

Winamp 5

Winamp 5 memory consumption

I thought that after Winamp 3 things would be better. And while the response is fast and has tons of features, memory consumption is always quite high, and I still think they missed the point of being the best at playing MP3s when they added all this multimedia crap around.

UPDATE: As a comment pointed out, I was using the normal WinAmp 5.x version. If you opt to use the Live version the memory consumption is at least as low as 2.x, minimized even less! All of this while featuring lots of new features.

iTunes 9

iTunes 9 memory consumption

At first looks seems relatively small memory footprint: 31 MB. But if we sum the 5 total processes it really is, we get 65 MB for playing a single tune. Adding 4 resident processes (not counting the dreaded Bonjour service), is more than enough to avoid using itunes under Windows unless mandatory...

Windows Media Player 11

Windows Media Player 11 memory consumption

This one quite surprised me. Without minimizing, the memory consumption was pretty similar to Winamp 5, around 50 MB. But once minimized, check the screenshot, 7 MB, taking the second place!

All players are supposed to play music. Except itunes all support custom skins/themes, Winamps allow custom plugins as advanced as new music formats, cue list interpreters or visualization effects...

But except Winamp 2, all of them do many more things that might not be as interesting, like playing movies, viewing PDFs and font files (Winamp5 WTF) or downloading applications and games to your media devices (itunes all-in-one-monster).

iTunes gives many problems under Windows and is full of DRM, WMP11 is still not capable of watching all movie formats and has limited features, and Winamp5 is a load of unwanted stuff having Winamp 2 around and working nicely.

Make your application/product do one thing and do it well. Dropbox and Netflix are two examples of this philosophy, and it quite works for them.

Tags: Architecture

Make your product do one thing well instead of a hundred poorly [UPDATED] published @ . Author: