Many CMS's or frameworks have a "community" but what Drupal has is incredibly unique. Drupal has a truly international community, with a huge amount of communication, sharing of responsibility and participation of all kinds going on across borders at all times.
DrupalCon is an international event that brings together the people who use, develop, design, and support the Drupal platform. During the period 2007-2011, there were 7,977 unique attendees to ten different DrupalCon events. The community shares best practices and methods used to release the most recent projects. There are also CodeSprints where the community actively work together to advance specific projects. Right now the focus is building Drupal 8 for release in August 2013.
Users aren't expected to always download Drupal core then build their own intranets, online stores, event management systems, news publication sites or Government portals. Instead free distributions of Drupal are available that come pre-built for just those scenarios. See a full list of distributions available.
Drupal has an impressive presence within the market share as a whole. As you move through the Alexa 2million list, the stronger Drupal gets as the others are dropping from view. Drupal is rapidly becoming the OpenSource CMS of choice for some very serious, important, widely used sites for Government, Entertainment, and more. See a list of featured showcases
This can be a curse and a blessing, but right now the income for a Drupal developer is quite high. This is a result of simple supply and demand, most developers who saw a good thing years ago didn't know demand would be like this. Thus, here we sit today with a tremendous value being placed on their skills by the market place. The flipside of that is that some people failed to see this coming and have not jumped onboard and now a lot more talent is needed.
Since highly talented people are attracted, solutions emerge constantly which keep those leveraging Drupal on the technological vanguard with minimal effort. There is virtually 'a module for everything' and not just those with sexy features, but also integration with all major players in the modern web app universe.
The Drupal API
Drupal is a hybrid between a standard CMS and a very progressive framework. It is not a framework like CodeIgnitor, Cake or Zend, but there is an extraordinary API that allows for amazing granularity of workflow control. The implementation of "Hooks" and "Callbacks" through a clever "Function Naming Convention" hands the raw power of customisation to the developer who's client is a control freak. Developers' tend not to say, "That's just the way Drupal does it. Live with it!" By being a rapid deployment system, Drupal allows more time for tweaking what needs tweaked or adding what needs added.
Module Developer Practices
In Drupal everything is a module and all modules are free, there aren't plugins, widgets and components, etc. most modules are listed at drupal.org and are well categorised. You are unlikely to find a personal website where they sell a module. If you want a custom module built you can find someone to build it for you.
Developers' share our time and talents in building these modules together as a community. Rather than haveing multiple Twitter modules, there is one Twitter module which has many developers' working on it. Security, increased-functionality, UI enhancement and documentation patches are submitted to modules so that they are the best they can be.
Support for Drupal is provided by Acquia, that started in 2007 and now supplies a wide range of services to Governments, Military and Private entities around the world. Their recent round of funding added $30Million to bring them to a total of $68.5Million. See Forbes article: Acquia Looks To 2014 IPO With New $30M Round.
Acquia provides a very strong "3rd Party Validator" role in winning bids. Companies of any size can, after winning a contract, have the client rely on Acquia for hosting, and/or Support and/or Training for the client. The company can move on to build the next big Drupal project while Acquia supports the client. If a additional work is needed in the future, the company can choose to take on the additional work or Acquia can help the client find someone who can.
It wouldn't be fair to have a post about Drupal's strengths without also highlighting some weaknesses too:
- Confusing administrator navigation - improving with every major release, but it's still confusing to some.
- File management is somewhat lacking - uploaded files should become higher-level data like nodes.
- High learning curve - users who are not familiar with site back-ends or CMS's, there is often a lot of training required.
- Some language isn't human-friendly - there is a lot core language built into Drupal that makes complete sense to a developer, but a client who's just now learning the difference between content types, can easily get overwhelmed.
- Where are the instructions? - the documentation is frustrating for clients. There's some built in notes and also a mess of a 'help section', but a basic client-targeted, built-in instruction manual for clients' is required.
- Drupal is designed to be incomplete - the responsibility falls on the developer to consider a client's comfort level and build a good system around them. An inexperienced developer will end up causing a lot of client complaints.
- Every site is different - this seems obvious, but the open nature means that no two sites are alike.
- Performance issues - on shared hosting, a high-traffic or highly complex site needs to be perfomance tweaked using caching and more than likely a CDN.