19 August 2009

Plugin analogies

Plugins suckAs it seems a lot of people totally adore plugins, I thought I'd come up with some ideas if their precious plugins would be used in the same way in the outside world. Then let's reconsider if they're still so cool or if plugins truly suck.

Analogy 1
I am Dutch. I barely speak German. If I'd meet someone from Germany, chances are they don't speak Dutch. Now how would I tell them something I think they should know (like, "go back, there's a dangerous fire over there")? Well, if we think of languages as plugins, I have Dutch installed and they have German installed. The two are only mildly compatible.
Well apparently a software developer would simply use his Dutch plugin and requires from the German to also install it (learn the language). Maybe some people fall for that, but I think it's not going to get you very far.
Isn't the most sensible thing to do to check if we both maybe happen to have the same language plugin? We could check for English, for example. It is a widely used plugin and is an excellent alternative. If that fails, I can try to see what's left of the old German v.1.0 plugin I used to have installed. And if that also fails, let's try the good old Primordial Scream Darwin Extension software which is installed at the very core of every person's brain.
So you see, I, as messenger, attempt to deliver my content to the user in any possible way he understands. The plugins themselves may not suck, it is the way developers force them down your throat that sucks.

"Yes but," the developer says, "Dutch is teh coolest language ever! You can say things with it you can't say in any other language!" That's all cool, but if the German doesn't want to learn it, you can't force them, you'll have to think of a method to say something equivalent in a way they do understand!

Analogy 2a
You buy a car. But it has no windscreen wipers. No, the manufacturer tells you you now have the option to choose whichever wipers you want yourself. So you drive off to any windscreen wiper manufacturer to get the wipers. They do not install them for you, you have to do it yourself. Oh sure, they gave instructions, but they're either incomprehensible (insert Nut A in Blowhole B and tighten it with Screw U) or they are instructions for an older type of car. You attempt to install the wipers as best you can, but they will never really function well.
Well aren't things that are necessary for basic operation already supposed to be bolted on your car! Sure, if there are mechanics that want to take off the basic wipers and install UberWiper 2.0 instead, they are free to do so, but manufacterers should understand that not everybody is a car mechanic. So it would be a stupid idea to just give everybody a car building kit and expect them to properly build the thing themselves.

"But," says the developer, "you can choose your own windscreen wiper! What if you like Wiper X better than Wiper Z, wouldn't you want to have the option?" Maybe so, but just pre-install Wiper Z to at least have something. If I want to use Wiper X instead, I will ask a mechanic to install it for me.

Analogy 2b
Luckily the manufacterers aren't stupid and give you a fully functioning car, with windscreen wipers pre-installed.
Now somebody invents some new type of windscreen, that tones down too bright outside objects (like the sun), so you won't get blinded while driving. This awesome FireBlocks technology is great, but my neighbour doesn't need it as he never drives while the sun is low enough to blind him. Or he just uses the sun blocker thingy you can manually pull down.
The downside of these FireBlocks screens though is that they also tone down traffic lights. This prompts the government to update all traffic lights so they can only be seen through FireBlocks windscreens. Now my neighbour (and 80% of all drivers) are in trouble, because they don't have those windscreens and thus cannot see traffic lights anymore.
I ask you (rhetorically), is that normal? Of course not! A developer should make sure everybody sees the traffic lights! If one method of lighting doesn't work too well everywhere, try to improve it, but you cannot block content just because people don't have or want FireBlocks windscreens! You, as a developer need to give the user an alternative.

"But it blocks the sun," says the developer, "you gotta love a sunblocker. And that's not all, the FireBlocks windscreens are superior in many more ways." Fine, but you have to accept there are people out there who don't want or can't install this new windscreen and you cannot deny them service over that fact alone.

So you see the stupidity? I'm sure you can think for yourself how this applies for software. A lot of developers create content and completely ignore people who don't have a certain plugin installed. Or they get the message "get plugin X here!!1!1". But it is not the user's task to get all the necessary tools to hear your message. You should make sure users can comprehend what you're saying. You cannot ask somebody to learn another language because you don't want to talk to them in a language they can understand; you cannot ask somebody to install another plugin because you don't want to code for a plugin or software the user already has installed.
This simple principle means that plugins, unless natively available or much easier installed and uninstalled than they are now, are completely useless.

No comments: