WordPress’s slogan is “Code is Poetry”. Having just installed it to run this blog I can say it’s an aesthetically pleasing thing. The features you want are there, modifying it is easy, the dashboard is intuitive.
One thing that I love about WordPress is that it isn’t (all) written in object oriented code – a decision embodies Matt Mullenweg’s approach to the platform. If you haven’t come across this term before, object oriented refers to a style of writing code that has advantages for big projects with many authors, at the price of requiring you to learn to code with a more complex syntax. I would describe it as quite counterintuitive, and to make matters worse it’s often explained badly too.
There is no question, object oriented code is best practice – it’s what everyone uses. But if you are a beginner then you don’t want to be dealing with it, it’s just makes everything even more confusing. The people who write WordPress would no doubt naturally write everything object oriented, but they make their lives harder to make the beginner’s life easier, which is why WordPress has such a vibrant community of people doing creative things. The learning curve means anyone can have a mess around. I love this decision because it’s antithetical to being a geek, but it serves their users better.
There’s an interesting comparison with the way Adobe Flash has evolved. I taught myself ActionScript 2, which is a horrible language, but more-or-less legible to someone who hasn’t done a degree in programming. If you spoke to Adobe about the new version, ActionScript 3, they would tell you how much faster and more mature it is; how it has all the features that Java programmers love and how it’s suitable for writing massive web apps. All this is true but if you show it to someone who doesn’t write much code it just looks like a nightmare. All the new power they’ve added has come at the price of making simple things very hard to do, often turning one line of code into three. I’ve got a lot more to say about what’s wrong with Flash another day.
Flash has turned from a creative tool that you could use without writing any code at all into an engineer’s utopia – which would have been fine if the future for Flash was writing gigantic web apps, but actually it wasn’t, so now Flash is moribund.
It’s all very reminiscent of Brian Eno’s Wired article about using the most advanced mixing desk in the world. Very powerful, and it completely gets in the way of being creative. The lesson is to tame the impulse to engineering purity.
Another instructive example is Vanilla Forums, which is the only forum platform that I know of which looks modern. Unfortunately the underlying code is impossibly difficult to understand, and as a consequence their are few plugins and the community is full of confused people. No surprise that Vanilla hasn’t really taken off.Google+