Drupal strengths:
- It’s open source – anyone can access the code. If you don’t like the way something works, or you want to make an enhancement, you are free to do so. In other words, you aren’t dependent on a commercial vendor to approve your request and make the change for you.
- It’s a powerful platform. With enough effort, you can do just about anything you want to do.
- There are thousands of developers continually working on it and available to provide you with guidance and recommendations.
- If you want commercial support, you can get it.
- Some very large and/or well-known sites use it. For example, whitehouse.gov, Sony, Twitter's developer community, weather.com, etc. Listly has an interesting list of sites using Drupal.
- Many many sites use it. As of this post, builtwith.com reports that, of the top 10,000 sites, about 20% are built on Drupal.
Weaknesses:
- While there are a lot of Drupal developers, they are not cheap. Demand for their services is incredibly high.
- If you host your own site(s), know that major version upgrades (which happen about every 2 years), are not trivial. You can get by skipping a version, leaving you with a 4-year upgrade cycle. While this will cut your upgrade costs in half, you should still be prepared for a lot of work for the upgrades you do. Note that you shouldn't skip more than one version - The Drupal community only supports the current and previous versions. If you have an older version, you're on your own. It will be interesting to see what Drupal hosting companies do in terms of migrating customer sites to the next major version. If they handle it, that’s a significant benefit of those services.
- If you host your own site(s), you cannot simply install Drupal and leave it alone. You need to employ (or contract) system administrators to manage your database (normally MySQL), your web server stack, PHP, and Drupal. Each of these has periodic security fixes and version upgrades, and you shouldn't ignore them.
- For any site of any complexity, you can't install Drupal and simply let authors "have at it". You should do a professional site design (preferrably by designers with experience with Drupal sites), and then you will need Drupal developers to select pre-existing community modules and develop custom modules to meet your requirements. You will then either need to keep developers on staff or retain a consultancy for the inevitable on-going enhancements you want to make to your site(s).