| home | forums |
resources |
search |
news | join | members: 6370 |
Wordpress London Hotels
Adobe Flex Drupal Laptop Reviews
PHP Just Dial International Calls
Windows Excel Training Courses
Joomla! excel courses in london
Web Developers Data Recovery
|
|||||||
NewsletterGet updates on Hiveminds services, articles and downloads by signing up for the newsletter. |
Editor's choiceSome of the better articles, stories and tutorials found at Hiveminds. |
Find moreFind more of Hiveminds articles, stories, tutorials and user comments by searching. |
Picked linksHand picked websites and articles from around the web that provide quality reading. |
it isn't just Drupal, but Drupal is certainly a good example of the opensource methodology gone wrong; I think you have it exactly right that they introduced these hacks because it was politically too much trouble to change the database, and because the original data model was never designed to be modular and flexible. The same is true of the stylesheets, although much progress has been done on that front, and the theme engine.
However, the HARD question is not what is wrong with it -- you only need to use the debug-version of the db-query function to see that -- the really hard question is "How do we fix it?"
The answer to that question underlines another problem with the ad-hoc design so prevalent in software, both commercial and open source: Programmers never know when to quit.
At some point, you have to say enough is enough, close the chapter, learn from the past and move on. But we don't. We add another hack, add another feature, support another device, heaping mistake upon mistake, until the legacy weight of the thing sets up a programmer inertia, an increasing of the complexity mass into a black-hole from which no developers can escape.
What is most sad is that this was not the philosophy of the original computer scientists, it is a perversion brought about by the commercial interests who needed to be all things to all people under a single brand name in order to please shareholders. Why, for example, did Drupal need to re-invent the forum when BB was already mature and proven code? Why re-invent shopping carts, classifieds, calendars, spam filters? Did they have some genius brilliant new revolutionary design that obsolesced all prior art in those domains? No.
Instead they built half-assed almost-solutions and clumped them to the side of the project using cardboard and duct-tape.
But think about that ... if this is "open source software", if the purpose and meaning of open source is to foster a sharing and community construction then WHY NOT design a system to simply INTEGRATE solutions? Why not work TOGETHER? The Java-based JSR standard for portlets tried to do just that, yet did any of these "open source bazaar" programmers jump on board and blow our minds with it? No.
The foundational philosophy of computer science was "small tools, new combinations" exemplified in the *nix operating systems where small simple actions are done by small simple programs that can be infinitely reconnected and recombined to produce novel results. Monolithic applications belonged in the days of SAS-assembler and COBOL. The modern computing paradigm was of cooperative components precisely because we observed how the monolithic application always exceeded the authors' capacity for complexity. Always.
So back to Drupal, what can we do? I recall Dykstra's advice to programmers: "Write two programs, throw the first one away."