I found this article over at Global Grind(Ryan517) and it sheds some light on this subject a bunch of other bloggers and I have been discussing about how safe is the WordPress Platform. A lot of stuff may go over the average bloggers head but this important information nonetheless.
This is not an “I hate WordPress” post. I love WordPress. It has been a great playground for me, for the last few years. It has an amazing community behind it. WordPress has contributed more to the blogging world and blog economy than we can possibly imagine. I just think it’s not for me anymore. Who is WordPress for? I think companies and publications still need it. It’s excellent for multi-user, editorial affairs where you need drafting and previews and user levels and whatnot. My blog is not such a blog. In the past couple of days I wrote a (very) simple home-grown platform that uses Code Igniter and Tumblr to produce all that you see before you (more on the technicalities of the platform in another post). Here’s why I’m ditching WordPress in favour of my own thang. Caution, this might get quite long…
1) WordPress is a centralised system and I want to be de-centralised
I no longer want to have everything on my own server. For my personal blog, I no longer want to install a monolithic platform and add plugins that I have to maintain and upgrade myself, and use one single interface that gets increasingly cluttered with each piece of additional functionality. We are living in an age now where we can outsource almost all the major functionality of an individual blog to external services – notably content and comments, and these services do a better job of digesting and managing our data than any WordPress plugin on your $50-a-month server can hope to compete with.
2) WordPress is quite the resource hog
Bottom line is, WordPress hearts resources. Run WordPress without any caching plugins and it can keel over and die quite quickly during high load. I’m not saying I’ve written the most efficient blog platform ever for this site, but by developing it myself I certainly have more control over how content is fetched. Look at any given WordPress blog and you’ll probably find there are about 20 db queries being performed for each page (which kind of brings me onto the point below). On my platform, there is one query per page. That query is cached until the next data import, and I’m even using a full page cache for extra cachey goodness.
3) WordPress encourages you to write iffy code
Everyone loves WordPress because it’s easy to dive into and start making themes for. I heartily agree – and it is easy to work with for all the wrong reasons. Writing a “theme” for WordPress encourages you to mix up logic and display code in the same files. Plugin code is often a visual hemorrhage of all sorts of HTML mixed in with miscellaneous, cryptically-named php functions. Lukewarm code soup. Eugh. The world of MVC in framework such as Code Igniter is a much cleaner, maintainable place.
4) WordPress requires a lot of hacking and patching
At some point you will want to increase the functionality of WordPress. This is your very own private world of pain, that none of your blog readers will ever know or care about. You’ll run into plugins that don’t work with your WordPress version. Plugins that are unsupported (I’m guilty of writing a plugin like that…ahem). Plugins that just plain break your WordPress install. Well done, you’ve become a slave to your blog instead of getting your blog to work for you. My philosophy? Outsource all this extra functionality wherever possible. Don’t install some crazy, hacked-together plugin to give you more comment functionality, use an external service like disqus.com where it’s someone’s job to provide you with the best commenting system they possibly can. Use enough of these external, 3rd party services (which are often way better implemented than a plugin) and you’ll find that you need WordPress and its plugins less and less.
5) WordPress turns me into a publisher when I’m not a publisher
Draft, Preview, Editor, Author, Subscriber – at some point I may have needed these functions, or thought them neat enough to convince myself I need them. I don’t want to be a slave! I don’t want to be saving drafts until later, I just want to write something and put it on the web. I think we’ve convinced ourselves we need similar functionality to the CMS that runs the fricking New York Times, because that functionality is free and open source. I took a step back, looked at what I really need to share content, and decided that WordPress does a bunch of stuff that I really don’t need, as an individual blogger.
6) Upgrading WordPress can be a nightmare
I recently tried to upgrade to 2.3 and it borked on me. Somewhere, a metaphorical camel split in two, then exploded in a mess of guts and hump.
7) Blogging is evolving
Tumblr shows us how elegant and simple it can be to produce a microblog from content you are already creating on other websites. Think about that for a second. I’m creating content on other websites – photos, bookmarks, videos; and to post it on my blog I’d have to faff around with adding the content a 2nd time around. That doesn’t make sense. Yeah yeah I’m pretty sure you can get a plugin for WordPress that aggregates your feeds from other sites, but, well, see point (4). I’m not saying that all blogging is going in this direction. I’m saying the paradigm is changing – and I’m much more open to using well-produced, external 3rd party services (that are maintained by other people) to facilitate this than piling more and more functionality on top of a centralised platform like WordPress (that has to be maintained by me).
8) I want to have more control over my code and file structure
So I want to outsource functionality to services such as Tumblr and Disqus. Less work for me. More time for looking at lolcat pics. That means what little code I DO have to manage, I want it to be as maintainable as possible and WordPress is slowly becoming quite bloated. WordPress doesn’t seem to have been built with any particular architectural rules in place – it’s kind of evolved from some proprietary structure and now they are basically stuck using it. I don’t mean to flog a dead horse, but working with MVC architecture just makes so much more sense than the non-standard way files are laid out in the WordPress core.
9) It’s the “Windows” of the blogging world.
I feel bad for WordPress. The team behind it obviously work really bloody hard. They work so hard because their product has such a massive user base and they have to make sure it works across all sorts of platforms and configurations. It also has to provide a shedload of functionality, to please the maximum amount of people. It’s getting bigger and more feature-ful with each release. How long before it’s a 10mb folder with 1000 separate files in it, I wonder…
10) Everyone is fricking using WordPress and I want to be the nail that sticks out 😉
And that’s that. My clever little rant is over. Don’t I feel all smug.
BUT WAIT.
If you’re a freelance web developer, or a small web shop – I think WordPress still has a place for your clients. One of the great things about WordPress is the management functionality. The wp-admin interface to log in and manipulate data (publish / unpublish, change dates, add categories, add users etc). This is tedious functionality to recode. Also, WordPress comes with a fairly flexible, tried-and-tested DB schema that you can bend to pretty much any purpose. This is its strength.
When clients approach me to build a cool little content-based site, I now offer them what I think is the ultimate solution. We install WordPress as their back end. Then I write a custom front-end application in Code Igniter to handle the display of all the content. They get all the benefits of the exhaustive and excellent CMS functionality WordPress offers, plus a beautifully-architectured, highly maintainable front-end application that simply pulls data from the WordPress database. The back end software basically never needs to be upgraded – any sexy functionality the client wants is simply built into the Code Igniter app on the front end. This way we keep the main app neat and tidy, and the developer doesn’t get into a kerfuffle messing around with obscure plugins or hacking around in the WordPress core files.
If you are comfortable working with MVC, I highly recommend this approach to building content-based websites for clients.
Le Fook.