The Weary WordPress Dev
This isn't a post 'defending WordPress', or saying you should give it a shot. It's more about the general responses and attitudes I've experienced as someone who's put a decent amount of time into using the software, and building sites and apps with it. I totally get that some people don't like it, and that's something I understand and appreciate. You can download the ZIP file, put it on a thumb drive and kick it into moving traffic. It's dangerous, but I see what you mean.
I haven't touched a WordPress project in months after my move away from agency work, and I'm not particularly happy or sad about it. It's something I have in my toolkit should I need it again (you'd be surprised how many situations arise where you can become 'The WordPress Gal/Guy'), but beyond that life moves on and I'm sure I'll work with it again in the future.
Let's step back for a moment, though. Imagine you've entered the world of web development, and you've taken static sites as far as they can go. You figure that you need a content management system. Maybe you'd do a search for 'Best CMS for beginners', and dig through the articles and lists. The vast majority of these are going to be PHP-based, because most servers come with this as standard; especially cheaper shared hosting packages (I'm mentioning cost a lot because it's important). You also have the likes of XAMPP and MAMP that give you everything you need to start working with this stuff on your own machine. PHP isn't the most difficult language to get started in either; you can rename a file extension from
.php and now suddenly you can do things like dynamically set the year in the footer with
<?php echo date('Y'); ?> which for a beginner is a pretty nice feature to implement. With that it makes sense that the most popular open-source CMS solutions are built with PHP, and guess which CMS you're going to see suggested most often. WordPress! Ok, let's roll with that. Next you'll see the countless free plugins and themes available. If you can think of it, there's a plugin for it. You can argue that the quality of code for themes and plugins may not always be the best, but do you care at that stage when with a few clicks you have a CMS up and running with a good looking theme and powerful functionality, for free? That's pretty incredible for someone just starting out.
I felt empowered the first time I built a WordPress site (it's still alive), because I was only some young fella who didn't have the first clue about content management systems or PHP, and I was able to build something that could be maintained and updated by the client. I wasn't interested in finding out what I should or shouldn't be using, or what the internet thought, because this was more than enough at the time. Work was demanding, and this solved many problems. If I couldn't crack it myself, there was a massive, and helpful, community at hand to steer me in the right direction.
With the countless themes, plugins and ways of doing things, it's hard to nail down a consistent structure or guide in terms of best practice. A relative low barrier to entry coupled with popularity is a double-edged sword. Problems I've encountered are mostly due to projects I've inherited where the code is spaghetti and things seem to work by coincidence. I'm sure on my earlier projects I've left the same mess for future developers to handle, but you live and you learn. For example my initial impressions of Joomla! were mangled because of a build that no-one could make sense of to the point where the client wanted a WordPress blog alongside the Joomla! installation. It doesn't mean that's my opinion forever. If you use it, happy days, I'm sure you're out there solving problems with it. The bad experience I had doesn't make you wrong.
That's not to say WordPress is only for beginners or people trying to make a quick buck, absolutely not. I'm by no means a WordPress pro, but I've worked on a few large and complicated web apps with a WordPress back-end and it does the job just as well as anything else, especially from a client perspective where they can manage content themselves. I've been saved a few times from shifting sands with a one-click install for a plugin that instantly solved emerging problems for a client.
As you progress you start figuring out what you want from a CMS. This is where some people part ways. Maybe it doesn't fit your requirements any more, and you have more of a say in the tech being used. Perhaps the client wants more control and they starting installing a bunch of stuff that breaks the site, and you're tired of spending hours debugging. It's more about strategy in the last case, but that comes with time. Whatever way it goes, the browser still renders HTML and so we all converge on the same output. It doesn't matter what stack you're using.
It's tough seeing a WordPress related article with comments like 'Craft does this better', or 'Drupal has had this for ages' when the person is trying to share something cool they've found or created. It may not be the approach you'd take, and that's fine; maybe it's not for you. For the other thousands of developers using WordPress, however, it can be chance to learn and branch out into other aspects of development they were unsure of. When I was working with WordPress I was aware of the negative opinions surrounding it. I decided to keep using it because I could build cool things with it. It didn't mean I was oblivious to other choices out there, it just meant I was comfortable and confident enough in my abilities as a developer to get the job done.