Lately I've been learning to use the ezPublish content management
system. One aspect of it that is causing me unneccessary frustration
and inconvience is it's templating language. I already have a
templating language thankyouverymuch. It's called PHP and it's
faster, better and cheaper than anything they're likely to produce.
And crucially
I already know it. They've wasted their own time
reinventing the wheel and now they're wasting mine by making me learn
it. The template language exists for one reason above all others - to
control me, to force me to submit to their ideas of good practice.
Their rules. I don't like that. Help me, give me tools, but let me
decide how to use them. I'll use them in ways you never imagined.
Of course template language designers aren't alone. Platforms and
languages are frequently used to impose the will of their designers on
their users. Java is a prominent current example. Programmers are
voting with their feet and migrating to Python (and PHP and Perl).
I've not heard any reports of programmers going the other way. Java
may well have advantages over Python in some other areas, but in user
freedom Python is the clear winner.
What motivates designers to dictate to their users like this? Perhaps
it's a hang-over from proprietary programming, where deliberately
incompatible systems insulate you from the competition. Maybe it's
nothing more than laziness. By imposing limits on their users they've
dramatically simplified the problem they have to solve - "But what if
I do this?" "You can't". Designing systems that aid users without
taking away their freedoms is hard but worth doing.