I can appreciate what wordpress has achieved over the years, and what it has helped to create. But the current wordpress code base is a nightmare to work with, and doesn't scale well.
Having said that, it is an excellent blogging platform and CMS, but this is something that is usually forgotten, resulting in it finding itself shoehorned into the most inappropriate places.
I have scaled Wordpress to multiple front end servers with not to much work (because Wordpress is stateless and doesn't have sessions you dont even have to worry bout sharing sessions).
The only thing you need to worry about is having a shared storage for the uploads. You can do this through a NAS or I just upload to s3 then use a CDN.
If you get to the size that you need to have multiple databases (which you shouldn't if your using a page cache plugin like the official Batcache plugin) wordpress offers HyperDB as a solution.
I am actually going to be working on a Wordpress-a-a-Service type hosting solution where speed and scalability will never be a problem for the customer.
Where Wordpress does not scale is the default install on shared hosting or a VPS with little resources.
Finally I just wanted to thank Matt and the whole team at automatic for all their hard work into a maybe in-prefect but much used work-horse of the internet.
> Where Wordpress does not scale is the default install on shared hosting or a VPS with little resources.
True for shared environment but WP does fine even on a low-end vps. 2-3 years ago I helped someone setup wp on a lowend vps server which successfully handled ~5million pageviews under 24 hours, the vps had a measly 1gb memory and the memory usage never went over 700mb. nginx/php-fpm/varnish/apc/w3t done. Took me less than 1 hour to set it up.
I don't understand when people complain about wordpress being bloat but at the same time wants it to solve all kinds of problem right out of the box.
Unfortunately most of the issues come from WordPress being written for a web that existed 10 years ago. Static pages with little dynamic content.
This doesn't really work on a more "modern" style of site, where the content is more dynamic and changeable.
Again, a lot of these issues only really arise when your product moves past being a blogging-style platform (such as happened to us), but this is something that either WP, or the WP community, seems to be striving for more and more.
Yes, yes, the famous hosting environment argument. It comes up whenever the WP team just don't want to do work on the actual guts of the system as opposed to tickbox features.
When they added autoupdate, that had large host environment implications. Import/export has host environment implications. It goes on and on.
There's no technical reason they can't have a simple page cache in mainline that turns itself off when there's no write access.
Not to mention that WordPress is now popular enough to bully hosting companies if they wished to do so. What hosting company would want to admit that their services are incompatible with the latest version of WordPress? WordPress is no longer under any realistic obligation to respect the lowest common denominator of hosting environments, because whatever it requires will become the norm. It's a trememdous power that few open-source projects enjoy, and one that could be used for the greater good. If the next version of WordPress just went ahead and required PHP 5.4, for example, the hosting industry would have no choice but to upgrade their PHP versions a.s.a.p.
A lot of software developers are seduced by the old "80/20" rule. It seems to make a lot of sense: 80% of the people use 20% of the features. So you convince yourself that you only need to implement 20% of the features, and you can still sell 80% as many copies.
Unfortunately, it's never the same 20%. Everybody uses a different set of features. In the last 10 years I have probably heard of dozens of companies who, determined not to learn from each other, tried to release "lite" word processors that only implement 20% of the features. This story is as old as the PC. Most of the time, what happens is that they give their program to a journalist to review, and the journalist reviews it by writing their review using the new word processor, and then the journalist tries to find the "word count" feature which they need because most journalists have precise word count requirements, and it's not there, because it's in the "80% that nobody uses," and the journalist ends up writing a story that attempts to claim simultaneously that lite programs are good, bloat is bad, and I can't use this damn thing 'cause it won't count my words. If I had a dollar for every time this has happened I would be very happy.
When you start marketing your "lite" product, and you tell people, "hey, it's lite, only 1MB," they tend to be very happy, then they ask you if it has their crucial feature, and it doesn't, so they don't buy your product.
Wordpress seems to have everyone's critical feature, or critical plug-in, or a developer intimately familiar with the platform who can be hired to write your critical plug-in. By the time "more specialised blogging engines" have the flexibility and pervasiveness of Wordpress, I bet they'll resemble. . . Wordpress.
I'm not fan of the codebase, but until something else comes along that's as easy for my clients to learn/use - I'm going to keep on recommending and installing WordPress for them.
Anybody who's used a word processor can pick up most of what they need to know to work as an author or editor in WordPress in a afternoon. I'm not about to recreate all the widely available documentation and tutorials WordPress has available - or explain to my clients "all you need to do is write all your website content in MarkDown, then run this Ruby script from the command line to publish it to S3/CloudFront!"
I imagine the reason most people use WordPress isn't because of the authoring or editing — most of which can be replicated easily using things like TinyMCE — but the ecosystem of themes and plugins. Your technologically-inept client has access to a vast number of free, cheap, and easily installable themes to style their website whatever gaudy way they want.
There are plenty of better publishing solutions in terms of codebase, and there are plenty of solutions that offer equal or better user interfaces, but none that bring the ability to choose from hundreds of thousands of themes to style a website, which is the main focus of your average blog publisher.
If other specialized blogging engines had one-tenth the extensibility that WP has, then I could see myself switching. But when you have hundreds of thousands of people willing to write plugins for free or very little money that integrate with the most complex payment systems and third-party APIs, you tend to deal with the crappy core code of the main module.
Having said that, it is an excellent blogging platform and CMS, but this is something that is usually forgotten, resulting in it finding itself shoehorned into the most inappropriate places.