Use the best tool for the job.
These big name CMS’s are great for building typical run of the mill websites. What happens when you start working with clients who want edginess in their site?
In my experience things like Drupal and Joomla are by default somewhat slow and clunky. Yes they build sites and satisfy requirements well, but when it comes to intricate user interface and optimizing queries, running things on strange server set ups… something like Drupal becomes more of a “ok, now we need to figure out how to make drupal do this”.
Another thing about using Drupal is that it starts to drive requirements and capabilities. The company I am at a lot of the time will use Drupals in ability to do something as a scapegoat to get out of spending time developing a feature.
Anyways, the alternative to Drupal or WP or whatever isnt a custom coded application. I agree that in this day and age writing validation code for email addresses or writing database access code is a complete waste of time. Those sorts of things have been abstracted to the point where we have things like ORMs and form validation tools, user authentication etc.
Application development frameworks such as Symfony, Kohana, Ruby on Rails etc give the developer the chance to take advantage of ORM’s, validation, emailing etc etc while allowing them to build user interfaces that make sense, are interest, unique, and not clunky and generic like so many Drupal and Wordpress sites end up being. Its not all about spending less money, its about spending the right amount of money to captivate your audience.
I can always tell a wordpress blog when I go to one, because they all look the same. I find some people are forgetting about the element of creative expression when they are building apps. Its almost as if Drupal and Wordpress are making it too easy for people who don’t know what they are doing and dont understand all the different web technologies to call themselves a web developer and build little magazine style websites.
All in all, you get what you pay for. Anyone who goes to brain surgury school can call themselves a brain surgury and convince you to let them in your head, but do you really want the guy who uses some all encompassing brain surgury kit? Or do you want someone who has selected tools based on preference and their passion for being a brain surgeon and understands what tools they are using and why.
This isnt to say that I think Drupal and word press are for beginners and only noobs use them. They have their place. But Drupal and Wordpress have a misconception of being an easy web solution. It has a lot of features that make menial tasks take a lot less time and allow you to focus more on building the over all product. But you still need to know what you are doing. You still need to understand http request and response. You need to know how and why ajax works. You need to know about caching. Data models. Don’t let the plague of “Drupal is easy” let you guide your choice of platform. You need to understand the web and choose a solution based what you need.
I use symfony because I prefer looking at code than a settings page. I find I can do things faster with symfony because it is immediately obvious how to do something because it uses software architecture and design principles. Symfony’s code generation makes it really easy to setup sites. Things like migrations, Doctrine, all the validation, fixtures, etc etc make it soooo fast to build sites. Not easy. Fast. You still need to understand requirements and build a way for users or your client to deal with their problems effectively.
Alot of CMS’s have plugins that have some sort of generic functionality out of the box for sure, but sometimes its better to implement that your own way to make it work better for a specific case.
I don’t think clients should really care what you use to build a site… but don’t let Drupal and Wordpress destroy your knowledge of how to build websites and start charging up the yang because you don’t know how to build anything that there isn’t a plug in for.