commenting on iphigenie's post, i think one way to view the root of the problem with Drupal is that it is extremely schizophrenic in that a huge part of it is clearly focused on addressing developer's needs, as if it was a development platform, but then another half of it is all about providing these really intricate configuration systems that are designed to bypass the need to do any coding. It's this part that i find intensely frustrating from a developer's standpoint.
The result of this, at least from this programmer's perspective, is an extremely painful experience where you may set something up and if you come back to it next week you'll have no hope in the world of remembering what exactly you did and why the system is behaving the way it is.
As an example of this, take a look at the Views module
, which is seeing widespread adoption and praise. This is a very very powerful module that is insanely flexible and let's you create all kinds of very intricate configurations all using a very complicated user interface. Web designers and community maintainers who are not programmers can manage to eventually figure it out, which is fine for a one-time use, but from a developer's standpoint i find it just the completely wrong approach. This is a case where trying to build something that can be configured to do everything using a user interface that bypasses any coding, results in something totally opaque that becomes unmaintainable.
I feel like there are a lot of things like that in Drupal -- it's like half of the team was/is building drupal for developers to use as a platform, and the other half was/is trying to wrestle control out of the hands of developers and make it something that can be infinitely configured to do a million different things using not just a million options, but options that involve multi-step creation of recursive filter structures using a drag and drop user interface. Stuff that once you create becomes opaque and undecipherable.
Again, there is much to love about Drupal -- but as a developer wanting to use it as the cms foundation to custom web service creation, i find it frustrating, and likely moving in the wrong direction. I'd really love to find a more developer-centric cms platform/framework, where the focus was not on making it infinitely configurable through a million options from the online gui configuration dialog, but rather through a programming API.