Having just gotten through a really big chunk of Drupal development, I think I've come to terms with its pros and cons.
Best: The CSS options give you total control over the display of your content. A single piece of content is usually surrounded by multiple CSS classes or ids with different levels of specificity, separated by spaces. Example: <div class="view view-alert view-id-alert view-display-id-block_2 view-dom-id-1"> This is an example of our simple alerts system which displays notices at the top of the page in a nice pink box.
At first, all these options are a bit dizzying--especially when you view source. But what they mean is that you can choose to style everything, everything of one content type, all displays of one view or just one, different levels of a menu, all the menus, and so forth. I believe I can say that I've never found myself in a situation, using Drupal, where I wanted to style something and either didn't have a way to select the content I wanted through the CSS, or couldn't separate out the part I wanted from similar content that I didn't want.
Worst: Because Drupal sites involve so many pieces of code written by many people, in a combination that is likely unique to your site, it can be difficult to troubleshoot problems. Now, I don't mind the troubleshooting--what bothers me is that the unpredictability of the problems makes it devilishly difficult to schedule a Drupal project. You might think "This will take about two hours of work," but then you run into a problem and have to revise that to "This will take somewhere between two hours and five minutes, and the rest of my natural life, depending on what's going on here."
With experience, I've gotten better at fixing Drupal problems, but not much better about predicting when they'll appear. I'm not sure how to mitigate this problem, other than by communicating realistically about the upsides and downsides of open-source software.





Comments
Post new comment