Elgg and Drupal: Benefits to competition?

Bill Fitzgerald from the Elgg project recently responded to my previous post, "Moodle, Elgg, CivicSpace, CiviCRM and Drupal should join forces".

"All in all, it's an interesting idea, but not one I'd get behind. The different apps -- particularly Drupal and Elgg -- have some overlapping functionality, that indicate against joining the projects..... Variety is a good thing. To create a loose metaphor, I see it as akin to genetic variability. Differences within the open source community make us stronger."

Ben Werdmuller, the technical lead on Elgg followed up by saying:

"We're big on integration through open standards and would like to encourage that wherever possible; we're not so big on merging and creating bloated, monolithic systems."

In my experience with CivicSpace, Drupal, and now CiviCRM I have found the opposite of what Bill and Ben have said to be true.

Tight interlocking of open-source projects make us stronger, not differences

  • I can garuntee you that if we had chosen to build CivicSpace as a stand-alone app like Elgg instead of on top of Drupal the project would have failed.
  • At the recent Drupal Con in Vancouver there were well over 100 attendees, many of whom make a living around the platform. By my estimates about nearly a third of those people came to Drupal via the CivicSpace project. While our core code contributions to the Drupal project so far have been pretty modest our evangalizing and community support efforts (like DrupalDocs) have had a notable impact to the Drupal ecology.

Building on the same web-app stack makes for a cleaner implementation

  • If two web applications were not built from the ground up to work together they will not be easily integrated. We've seen numerous efforts in the Drupal community to try to integrate external user / content management applications such as PHPList and Gallery but even though the applications provide unique functionality, the integration difficulties are so intense it is yet to be seen if the effort is worth it in the end.
  • Drupal's succesfull Ecommerce module package is a full blown commerce system that handles all product point of sales, billing, and shipping, and tracking inside Drupal. It is a great example of the avantages afforded by building on the Drupal application framework rather than integrating an external specialized application like OSCommerce.
  • Even with an application like CiviCRM that was built from the ground up to be integrated into CMS's like Drupal it is still very costly to integrate.

Building Elgg independently from Drupal will lead to unnecessary competition instead of collaboration between the two projects

  • Not a single functionality point of Elgg is unique. Drupal + contributed modules can be configured to power a site that does _basically_ what Elgg is designed to do. This means virtually all engineering effort going into Elgg is in duplicate to work done in the Drupal community.
  • Decision makers in Universities IT departments will be forced to choose between adopting Elgg or Drupal instead of being able to invest in a solution that captures the best of both projects.
  • The KDE vs. GNOME battle is a great example of the negative effects of open-source project competition vs. the dramatic recent success of the Ubuntu project built on top of Debian.

Comments

Re: Elgg and Drupal: Benefits to competition?

I very much do agree with what you say: There is so much effort and capacity wasted in small open source projects which would have a tremendous effect if it could be geared towards the promising large open source projects.

The more open source applications mature and the more they are used in business environments "application integration" becomes a crucial question. The drupal module concept is a very strong concept and it would be great if it could be used and extended in a way that integrating applications like moodle and elgg become very easy. Not only the users would benefit from such integration but also the projects themselves because they would then be able to concentrate on the functionality which is unique to their application.

So I do hope, that thinking "modules" and "integration" becomes one of the basic concepts of open source projects!

Loose vs tight integration

Hello, Zack,

First, to clarify one thing, I am not part of the Elgg design team. I love the project, and I'm (working on getting more) involved in the community, but I'm more active in the Drupal and DrupalEd community right now. I definitely do not speak for Elgg, or the direction of Elgg development.

You make some great points in calling for increased integration between Drupal and Elgg. You are also right on in pointing out that unless such integration results from a ground level design choice, it does require more: more time, more code, more hassle.

However, the examples you cite are not precisely analogous to Drupal and Elgg. CivicRM extends Drupal's functionality. CivicSpace focuses Drupal's functionality and simplifies the end user experience. Drupal and Elgg, however, do similar things in different ways. These differences will appeal to different users, and I see that as a good thing.

I am not advocating a disconnect between Drupal and Elgg.

What I am advocating -- and, what I think will be in the best interests of both projects, as well as in the best interests of students, teachers, educational institutions -- is a well documented, easy, single sign on solution. I would also love to see each Elgg community get a Drupal site as a space to do its community work (a multisite/one codebase solution accompanying an Elgg install). Then, if there was an easy way to allow users to export work from their different community sites into their Elgg blog, then both projects would be doing what they do best: Elgg is a learner centered platform, where Drupal is a community centered platform. In some ways, this discussion has implications for ePortfolios and how they interact (or don't) with online classes.

RE Drupal's capacity to duplicate Elgg's functionality -- while it can be approximated, it can't be duplicated, and it certainly can't be accomplished with Elgg's ease of use. Organic Groups gets you most of the way there, and Taxonomy Access Control and Simple Access can do a fair amount toward this as well, but both require a level of knowledge about how Drupal functions that will be beyond the grasp of the average users. Elgg lets users with less technical proficiency do more. As Drupal currently ships, it requires a fair amount of work to duplicate the functionality of Elgg out of the box, and the Drupal version will not be (IMO,obviously) as easy to use.

A simple, single sign on solution with clean sharing of content would allow for the projects to be bundled together when they are pitched to decision makers. I agree with you completely that the best solution is one where there are some explicit design choices made on both sides to allow for this integration. However, the integration should stop short of making one app dependent on the other. Decision makers care most about ease of implementation, and less about how that ease is achieved. This type of loose integration would also allow users who just want to Drupal to get Drupal, and those who just want Elgg to get Elgg, and for those who want both to get both.

Questions / Comments

Thanks for the substantive response Bill. I have further questions / comments.

"However, the examples you cite are not precisely analogous to Drupal and Elgg. CivicRM extends Drupal's functionality. CivicSpace focuses Drupal's functionality and simplifies the end user experience. Drupal and Elgg, however, do similar things in different ways. These differences will appeal to different users, and I see that as a good thing."

Can you tell me more about what you see the differences between Drupal+Elgg and Drupal+CivicSpace/CiviCRM? The CivicSpace distribution (including Drupal and CiviCRM) is an installable web-app that covers a wide range of functionality (CMS, CRM, Community) all focused towards community organizing. Why couldn't Elgg become a Drupal distribution akin to CivicSpace that includes social networking / learning functionality tuned to meet the needs of students and teachers?

"As Drupal currently ships, it requires a fair amount of work to duplicate the functionality of Elgg out of the box, and the Drupal version will not be (IMO,obviously)"

I would be extremely surprised if it took more engineering effort to create a Drupal distribution that provided the same functionality and ease of use of Elgg than it takes to code and mantain Elgg from scratch.

Regardless, I agree - a single sign on solution between the two applications is a no-brainer :)

Small but meaningful differences

Hello, Zack,

In looking at Drupal and Elgg, the main difference I see between the two comes down to focus: Drupal focuses on building communities around a common interest or goal, where Elgg focuses on helping the user find communities and individuals with common interests and goals. Like most simplifications, this one has its weaknesses, but it will do for a starting point.

In looking at how this affects functionality, within Drupal you can set site-wide rss feeds. Within Elgg, each individual user can specify personal rss feeds.

Within Drupal, if users have upload privileges, they can upload files as attachments to nodes. Using the workspace module, they can get a listing of all files that they have uploaded. However, the workspace module only approximates the idea of a personal file storage space, and it's not particularly intuitive, or easy for a user with limited technical proficiency. Within Elgg, all users have the ability to upload and store files. These files can be designated private or public, as determined by the individual user. Users can categorize files via freetagging, and these freetagged categories create rss feeds -- so, people can subscribe to an Elgg user's file storage, or simply to a specific category of file. Additionally, these feeds work for podcasting out of the box, something which, within Drupal, requires another module.

Don't get me wrong. Drupal is my first choice for setting up a class. Drupal gives a user more options to organize content, and Drupal themes allow for a level of graphical/functional customization that Elgg does not approach. A well designed Drupal site is very easy to navigate, and this is one of Drupal's many strengths. However, given the different focus of Drupal and Elgg, I think loose integration makes the most of the strong points of both apps.

RE

I would be extremely surprised if it took more engineering effort to create a Drupal distribution that provided the same functionality and ease of use of Elgg than it takes to code and mantain Elgg from scratch.

That's true -- but, Elgg already exists, so that doesn't seem like a valid comparison. And, now that Elgg does exist, I'm busy thinking about scalable, easy to maintain solutions that allow for single sign on, shared content, and shared users between the two apps. If that leads to tighter integration, or points to a need for tighter integration, then that would be a good conversation to have. As a starting point, though, I'd love to see what possibilities become apparent as a result of loose integration.

All true

But for Elgg the cost sunk into developing the application so far are minimal compared to the costs over time building and mantaining it. Because of this the project has more to gain from harvesting drupal code over time than the initial build out.

That said, I agree - loose integration / SSO is a no-brainer.

Drupal Native Solutions

One of the strengths of Drupal is the diversity of modules available and how easy it is to integrate their functionality. For example I recently worked on a project where answers to a survey where automatically used to populate a forum (survey => forum, question => post, answers => comments) - less than a days work.

If Drupal's forum and survey functionality came from two bolted on third party applications I suspect this would have taken considerably more work, and maintenance would involve supporting three applications.

One of the other downsides of integrating with external applications is that it may suppress efforts to create Drupal native solutions, which in the long term will be far more flexible.

Re: Elgg and Drupal: Benefits to competition?

Yes, but we're dealing with open source code here; this means that closer cooperation as Zack depicts it will result in a Drupal-CivicSpace type relationship between Drupal and Elgg.

If that happens, then there is greater incentive to build modules / functionality that work on both platforms. Moving towards single sign-on and single log-in sessions would be a great first step in that direction. As long as Elgg developers are looking closely at Drupal in their work, it'll be a little easier for them to pitch in a Drupal module here or there, or even just communicate with Drupal developers in creating similar functionality. Even if the projects never grow as close as Drupal and CivicSpace with interdependencies, the projects could still benefit from closer coordination.

I haven't used Elgg, so I can't comment on whether they should redevelop on a Drupal platform, but I'd suggest that the "sell" in that argument is convincing Elgg developers and maintainers that Drupal is flexible enough to move exactly in the directions they want to move, without compromising Elgg's emphases.

Dave.