Drupal 6 vs. Drupal 7
For now, the winner is clear.
We recently uncovered an excellent example of the immature state of Drupal 7 versus its well-established predecessor Drupal 6. We noticed early on in a recent project that the underlying data structure for content had changed in Drupal—there is now a component of the content-element data object that stores a Language ID for each value, which didn’t exist in D6 (granted, it’s always set to “undefined”, but it is there). This means that, in theory, individual content elements can have different language values, even in a single node (e.g. /node/123 can be displayed with English or French content).
In previous versions of Drupal, including Drupal 6, each language-version of a page was really a separate node (e.g. /node/123 in English, but /node/234 in French). That approach meant the nodes were only slightly related to each other, which often complicated the design and management of navigation menus, path aliases, taxonomies and other structural elements. In theory at least, Drupal 7 has improved the model by making it more granular and more unified, allowing a single node to be truly multilingual. While that may sound nice, in actual practice, the new data structure can be really frustrating to work with because none of the core Drupal 7 modules take advantage of it. As an example, since there is no user interface, developing a multilingual site in Drupal 7 still requires creating separate nodes for each version of a page. To be fair though, there is a new, and still experimental, D7 module called “Entity Translation” that utilizes this new language-data structure, but that module was just released in early September and it has yet to be truly tested in a real-world environment. Therefore, it’s not prudent to release a live site for a client until the module has been thoroughly exercised. Who knows how many bug fixes and other yet-to-be-written supporting modules will be needed to eventually make this new paradigm compatible with all the core system modules, and practical for use in real-world projects and translation workflows.
Drupal 7 is promising, but it’s not there yet
There are, in fact, several new immature features of Drupal 7 that are either incomplete and/or only partially implemented. In general, the fact that D6 has so many more modules available along with a vast knowledge base, means that in practical terms, Drupal 7 is actually less functional than Drupal 6 for anything other than testing or non-critical applications.
There’s nothing we can point to that the current iteration of Drupal 7 can do that can’t be accomplished in Drupal 6—often better and with a much higher degree of stability and confidence using modules that have been refined and improved over time. Don’t get me wrong, Drupal7 isn’t horrible, it’s good just not as good as D6 yet. So far, we can’t enthusiastically recommend it to our clients. However, we are hopeful that the structural changes will eventually lead to something that greatly improves the model for creating multi-language sites.
Post submitted by Michael Madden, ThoughtMatrix