I've received this question a lot lately so I thought I'd put it on the blog. The question is: Why is Drupal the best web app platform? Here's the answer.
The truth is Drupal can never be everything to everyone. I have friends who made a lot of money as Drupal devs and then decided to "upgrade" to newer, flashier platforms like Python and Ruby on Rails. I have other friends who are doing just fine with Java (yup, that's still around). But here's why Drupal might be a good idea for you.
Why you'd use a PHP CMS
- The engine is already written for you. If you use java, you'll end up writing everything from scratch.
- A lot of plug-in features are already written for you. If you use a CMS written in another language, like Python or Ruby on Rails, you can get a basic CMS engine (like Django) but you'll end up writing all the actual functionality for your site.
Note: Some people see that as a good thing; the argument is that if you build it all yourself, it will be leaner, faster, and easier to maintain. Those are all true, but you'll also end up doing a lot more work yourself to get to the same place. Also, open source communities like Drupal are really good about finding and fixing bugs and security flaws. If you use Drupal, you're benefiting from the efforts of 30,000 other engineers. In my opinion that actually gets better results than doing it yourself. It's also an advantage over closed-source solutions like Sharepoint, where security fixes are slow at best.
Why you'd choose Drupal over the other PHP options
- Joomla is a terrible program. I've used it just enough to know better. The architecture is clunky and awkward, things that should be fast and easy are difficult and time-consuming, and most of the really good plugins cost money. Even though it's technically an open source project, the entire Joomla developer community has an attitude that seems contrary to open source. They're not as friendly and they don't like to share.
- Wordpress is a phenomenal program, easier to use than Drupal, has wider market adoption, and there are way more Wordpress engineers than there are Drupal engineers. The conventional wisdom is that Drupal is more powerful, although I don't think Wordpress gets enough credit for what it can actually do. The truth is both Drupal and Wordpress are more than just content management systems; they are true web app platforms. I've seen entertainment venues, e-commerce sites, and even major universities use Wordpress.
- Wordpress also has a large and friendly developer community and most of the really good plugins are free on Wordpress.org. It will be easy to find Wordpress engineers to help you.
- That said, Drupal's main advantage is Views. Using that module, you can basically create your own database without a single line of custom code. That's incredibly powerful. You can slice and dice your data and display maps, tables, graphs, and galleries. Wordpress doesn't have anything that comes close. If you need to deal with a lot of data, you should use Drupal.
- Drupal also has a large and active developer community in San Francisco and the greater Bay Area. Some of the largest and best Drupal design firms in the country (if not the world) are located here in the Bay Area. Every year they host Badcamp, which is a four day conference dedicated to Drupal. It's free.
- In my opinion, Drupal is also a more marketable skill. The number of Drupal devs available does not currently meet demand, which is great for the developers.
- Finally, I simply have more experience with Drupal which is why I prefer it to the other options. I can whip up a quick prototype in Drupal faster than I could do it with plain html. Wordpress is also an excellent platform, as long as it does everything you need. Just stay away from Joomla. Trust me on that one.