Values, community and technological choices

Submitted by aleksip on Wed, 10/04/2017 - 21:10

Drupal needs to adopt a JavaScript framework for its administrative interfaces. The selection of this framework is an important decision, which should not be based on just technical merits or popularity. Drupal has been an open source project and a community for over 17 years, and when we make decisions like this, our values should weigh more than what is the hottest JavaScript framework at the moment.

Dries has written and spoken several times about how we should not let a handful of companies like Facebook, Google and Apple control how we experience the web. One aspect of this control is the technologies and standards these companies support or do not support. These companies also acquire software patents, which they can enforce when it best suits their business interests.

Dries and select core maintainers, JavaScript subsystem maintainers, and framework managers are now advocating Facebook’s React to be the adopted JavaScript framework for Drupal.

React was initially licensed under a permissive and GPL3-compatible Apache 2.0 license, which specifically covers possible patents. However, since then Facebook has relicensed React under two different versions of the infamous BSD + Patents license, and, most recently, the MIT license.

The MIT license is widely used, and is arguably better than the BSD + Patents license. However, the MIT license does not mention patents, and according to the Free Software Foundation “leaves room for patent treachery”. Why did Facebook not return to using the Apache 2.0 license if they really want to “ensure that developers can use [their] projects with confidence”?

Even if we trusted Facebook to not have patents on React technology, or at least to not enforce them against React users, patents are not the only issue to consider. Facebook maintains and controls React, deciding its direction. And currently this direction does not seem to be very standards-based. React is developed by Facebook for Facebook. Many decisions are made behind closed doors, and we don’t know the motives behind all of them.

So should Drupal, an open, community-based, GPL-licensed open source project, trust a company like Facebook? Do we want to use technology possibly patented by Facebook, with uncertain license coverage? Do we want Drupal to become a part of an open source ecosystem steered by Facebook? A decision to adopt Facebook technology will affect every Drupal site owner.

Even though we are currently only talking about administrative interfaces, a framework used in core will no doubt influence framework choices for user-facing front ends. People will choose and learn this framework because Drupal core uses it. We should also remember that the Drupal ecosystem is big and important enough for our choices to make a difference even outside of Drupal.

We should cherish our values of openness and being standards-based, and if we value our community, we should prefer community-led projects over company-led projects. These are the things that I’ve understood to be the true ‘core’ of Drupal, things that come before technological trends and details.

Comments

Submitted by just-passin-thru (not verified) on Thu, 10/05/2017 - 18:41

Simple answer... No. We don't want to get into bed with facebook. Under any circumstances imo.

But this def has the feel of a drupal 'edict'. Just dropped on the community in spite of the still in progress lengthy and lively discussion on WHICH framework(s) to consider.

Moreover, in light of Acquia's recent announcement of adding node.js to its drupal stack, I won't be surprised to see the 'add node.js to drupal' thread pop back up in the issue queue again either.

Give all this and the recent community events of the summer, for the first time in over a decade, I'm looking for something else to use instead of Drupal.

I really don't like the direction I'm seeing. It seems Dublin Drupaller was more prescient than originally thought (and I was one of his skeptics)-- it's just took longer to materialize.

Add new comment

The content of this field is kept private and will not be shown publicly.