WordPress runs the web. The majority of websites currently run it and no one complains. When I see people struggling to start a website, I suggest they use WordPress. It takes the problem of figuring out what programming language, framework, subject, or theme out of the equations. All they have to do is click a few buttons and they have a powerful blogging engine at there fingertips.
WordPress is not only for developers but for everyone. Even if you never touched code in your life, you can still have strong solutions for your different needs. However maintaining WordPress websites over the years have left me bitter toward the engine.
All the websites I worked on that used the engine were not blogs, they didn't have commenting systems, they didn't have anything that is native to WordPress. They were web applications and that is bad.
WordPress is highly customizable. There is a plugin ecosystem as large as the android market. For every feature you can think of, there is at least 2 or 3 plugins that promise to do just that.
WordPress is a good thing because it is open to everyone. Even people that never touched code in their life. It takes all the tech and whatnot out of the picture. You focus solely on the meat of your product, whatever it is.
WordPress is a bad thing because eventually a developer has to maintain this blob. All too often, I become said developer. It is supposed to act like a "framework" that allows you to build anything you want on top of it but it is not. What it really is is a blog engine that we hack into doing whatever we want.
In order to not use it as a blog, you have to customize so many things that at the end an experience developer might just go with a real framework instead. But because it is PHP after all, you can hack anything you want on top of it.
I've worked on websites so customized that there are no way to upgrade WordPress without breaking everything.
Non-Blog website running on wordpress — WaybackMachine
It might be amazing that you can click buttons here and there and add new features, but the developers working on the website will have to maintain this code, even after the plugin's developer drop support for the tool. Trust me, it is not very pleasant to figure out what each of the 102 plugins are supposed to do.
WordPress was supposed to be a flexible blog engine but instead, it is used as a framework. It is not designed like a framework at all.
I talked about it before, but the thing that bothers me most about WordPress is all the exposed files. Even though there are some clever
.htaccess rules that prevents users from directly accessing them, they are still very much exposed. A simple mistake like VIM crashing will result in data leak.
WordPress is all about having the widest support possible which explains its presence in every single hosting package. I wouldn't want that to stop because it promotes a free Web. It promotes people hosting their own websites instead of relying on walled gardens. But hosting companies will have to improve their shared hosting packages to allow more secure and efficient blog engines.
WordPress is a miracle for users and a nightmare for developers. I hate working on it, but will hate myself if any of the things it made possible where to disappear.
WordPress was born out of the frustration of how difficult it was to host a blog. This problem is now solved and hosting companies should now do their part and help WordPress move to a framework friendly environment. One where adding a thing a simple as a symlink won't break the whole application.
Let WordPress on the Web 3.0 be not just another real time gimmick application, but a user and developer friendly environment.