Drupal has a lot of great strengths and some weaknesses
The following are the key areas of Drupal that (as a programmer) I would like to see improved.
Negative testing
Drupal only seems to test the positive path, that is that given the right inputs you get the right results and apart from security nothing else matters.
The result of this is that incorrect inputs result in silent failures that can be very hard to debug.