The recent announcement that Drupal is looking to adopt React has inspired me to live up to my Twitter bio, and be an active advocate for open standards-based technologies. While my knee-jerk reaction to the announcement was to focus on React, this blog post addresses the topic of adopting technologies in a more general manner, still aiming to contribute to the current front-end framework discussion.
Company-led open source projects rarely prioritise standards
I’ve always thought that it is important for the core technologies of the web to be standards-based and to have good open source implementations that are accepted by everyone. A problem with standards is that it can take a long time for them to be completed and widely adopted. This is especially true when it comes to front-end web technologies, which have evolved so rapidly that standards have been struggling to keep up.
With most companies now embracing open source, company-led open source projects have become increasingly common. However, companies don’t usually prioritise standards over their own business interests, which is perfectly understandable of course. Many company-led projects are developed primarily for the companies’ own needs, and they want to steer these projects in the direction that best benefits them.
Companies may cease to exist or change their interests
If a company maintaining a project ceases to exist, or suddenly decides that its interests lie elsewhere, the project might be abandoned altogether. This is especially likely if the project hasn’t been a part of the company’s core business model. In a situation like this an open source project can of course usually be picked up or forked by someone else, but finding new people to maintain it can be very difficult.
Software patents and open source projects
It is common for large companies to acquire software patents, to be used in legal battles with competitors. Technologies invented in open source projects led by large companies have a higher probability of being patented. If the license doesn’t have an explicit patent grant, possible patents are a risk for all users of the project.
Large companies usually acquire patents for defensive patent portfolios, and this is why they aren’t considered by many to be a serious risk. But open source software and patents do not go well together. Neither do standards and patents. For a project to become a true part of web infrastructure, it needs to be accepted by all, including strict FLOSS projects and competitors of the company maintaining the project.
Drupal as infrastructure
I like to think of Drupal being a part of the infrastructure of the web, acceptable to all. This is possible because Drupal is open source, standards-based, community-led and it depends on other projects that adhere to these values. I believe these characteristics have had an important role in Drupal becoming so popular, in addition to Drupal being great technology, of course.
Whenever Drupal needs to choose a new technology to be included in its core, great importance should be placed on the acceptability of Drupal to everyone. By choosing a technology based on other merits alone, we could lose this general acceptability.
Staying relevant in the long run
Decisions on adopting new technologies should not be based on fear of losing relevance. We should not just choose the most popular technology to quickly capture the interest of lots of developers.
Even though standards are not moving as rapidly as some frameworks, standards are something everyone can depend on. For this reason, supporting and choosing established and emergent standards, in addition to being one of Drupal’s principles, are in my opinion the best way to ensure that Drupal stays relevant in the long run.
Do we really want to be advancing a future where the only options are to choose from non-standard technologies controlled by a handful of big companies like Facebook, Google and Apple?
Following others is not the only option, we can lead too
I also like to think that Drupal is an important project for the web, and that our decisions have an impact even outside the Drupal ecosystem. A technology used in Drupal core will create interest in adopting it on Drupal sites, and will make the technology more interesting for non-Drupal projects as well. As long as Drupal offers excellent support for other similar technologies, they can be used too, so Drupal won’t lose developers skilled in them either.