Most WordPress developers take an existing theme and modify it here and there to finish the project, leaving a lot of excess code and functions in place that add overhead to both server and client side processing. The arguments for this approach are:
If debugging is the process of removing software bugs, then programming must be the process of putting them in.
- The processing overhead is minimal. While for a single instance this may be true, hundreds or even thousands of unnecessary resource hits begin to add up very quickly, both server side and client side. When someone asks why their site is so slow, this is the first place I look, can we eliminate anything not being used?
- If it’s slow, the server/client needs more resources. One of Tim Berner Lee’s hopes for the web was that universal access is just that – anyone should be able to access your site regardless of platform, disability, or resources. We should not be allowed to tell our users they need a faster computer or server. It is our job to figure out how to make our apps efficient and accessible.
- The budget doesn’t allow it. I get it, time is money. There is a point at which optimization and cleanup exceeds the budget expectations of a given customer. The selling point for optimization and clean code is simply this: consider the long term maintenance and loss of revenue from not working optimization into the budget. It will most certainly kill the long term ROI.
- It’s in the plan, just not now. If you’ve been developing for any length of time, you know a procrastinated task seldom comes to fruition, especially if it produces no visible front end changes. It’s our job to create solutions that do both, create optimized apps within customer budgets.
As you’ve probably gathered I don’t agree with any of these points. This is why I start with a blank theme – no styles, no pre-existing stuff to clean up, and even then it requires a bit of tweaking as described in Stripping the Cruft. It gives us an opportunity to avoid the entire "cleanup" and debugging steps by putting in only what is needed.