WordPress 3.5 is about to be officially released and there is a lot of awesome stuff coming out like the new Media Manager and the ability to easily add your favorite plugins to your site. There is truly a lot of brilliant stuff. But there is one issue with the new release that not many people seem to be commenting on.
Automattic, the company that manages WordPress, has chosen to remove the Links Manager, and this is totally fine; very few people use it and Automattic is moving the functionality into a plugin so that the few people who do want to use it can continue to do so. The problem is that to maintain backwards compatibility Automattic left the code in their system so that the Links Manager isn't actually removed it's just hidden.
What's the Problem With Unused Code?
Well technically not much: there is a negligible amount of processing time while executing code and a negligible amount of file space being used. The real issue is that forevermore there will be unused code in the codebase. The problems will appear a few years down the road when a developer is trying to update WordPress core and they come across this unused code that will just confuse them.
What happens after Automattic removes not just one piece of code but they remove a dozen? Developers have to remember which pieces of code are “removed” and why they still need to be there. Also, if there are bugs with the Link Manager you now have to ask if the user upgraded to 3.5 (and the code is still being used) or if they downloaded a plugin.
Redundant code is a terrible idea; it is the antithesis of DRY programming. Keeping the code in the codebase will only cause headaches.
Is it Even Possible to Do it Any Other Way?
Sure. Automattic wrote the Links Manager plugin – they could just include it with the default 3.5 install. They could even delete the plugin if the Links Manager isn't used. This way they can continue to be fully backwards compatible while reducing the old code from WordPress core. This would be a win win in my eyes; it's too bad that they didn't choose to do go this route. I hope that they reevaluate this option before the choose to remove another piece of code.