The nature of our business is change, and in our opinion we’re on the cusp of another major change.

Update: Part of the team behind the WordPress REST API released a White Paper outlining much of what is said below.

The technology landscape is in constant motion, none more so than web technology: what is favored today can quickly become yesterday’s legacy. In our capacity as developers, strategists and Virtual CTOs we keep vigilant for emerging technologies. We watch with intense interest for events which herald future technology directions, not only for services we initiate today, but for the environments in which they may have to operate years from now.

In our opinion, the average web technology project should achieve a minimum of 2 years viability, with an ideal lifespan of 3-5 years. With this in mind, you don’t want to be the last company investing in a project built on yesterday’s technology.

In their latest release, WordPress has initiated an approach that might signal a huge shift in the technology that powers much of the Internet.

Bellwether events in technology

Something we have found important to look for are those bellwether events when technologies combine and find mainstream adoption. These are easy to recognize in hindsight, yet not always so contemporaneously. They are often a collection of small incremental changes leading to a more significant event when they finally tie together.

For example, the emergence of JavaScript/Ajax as a platform for building browser based applications did not occur until Google released Maps and Gmail. This was a major event in web technology, it led to client-side JavaScript being taken seriously, which begat the JavaScript client-side libraries (JQuery, Prototype, etc.) which in turn brought about the modern web.

The release of Calypso by Automattic (the company behind WordPress) has the potential to be another one of these events. There are reasons this event in particular stands out: The technologies chosen for implementation, the technological history of the company that chose them and the means of release.

So we asked ourselves a big question. What would we build if we were starting from scratch today, knowing all we’ve learned over the past 13 years of building WordPress? At the beginning of last year, we decided to start experimenting and see.
Matt Mullenweg / CEO Automattic

PHP & WordPress, the core of the modern web

The PHP language was instrumental in creating the web as we know it today. Before PHP, CGI scripts and languages such as Perl were used to dynamically generate most of the web. Yet now usage of Perl as the server scripting language of choice has fallen below 1%.

Things that started with PHP and started small, like Facebook and WordPress, are giants today. They are still using this technology to power their infrastructure and there is a sense that the traditional use of PHP is holding them back. Facebook has PHP so entrenched that it is redeveloping elements of the PHP toolchain just to keep their massive infrastructure running. It is easier (but still hard) to improve the fundamental tools of PHP than try a wholesale replacement.

Difficult to verify statistics claim PHP powers a large portion of the web today and without a doubt much of that is is via WordPress. WordPress is believed to power something north of 25% of all websites. Much of the rebuttal to any negative outlook for PHP’s future uses some version of this statistic. If you are looking at future trends in PHP you must also look at future trends with WordPress.

Facebook has an advantage that their infrastructure is private, how they upgrade it can be run by their own experts in-house. The problems for WordPress are trickier in that they have a large distributed installed userbase of varying technical know-how. Any updates they make must remain somewhat backward compatible for those users. Their challenge is significantly more difficult and how they navigate the necessary changes will be illuminating. What is their plan and how does it reflect on future web technology?

WordPress REST API, accessing the core through other languages

The JSON REST API used in WordPress, currently as a plugin, is being integrated into WordPress core. This will open up a more of less standard interface to WordPress to be utilized by other languages and environments and provide for a more open access standard to core WordPress functionality. This is a vital element in the future direction of WordPress as it allows other systems to be integrated independent of implementation platform. No longer will PHP be an absolute requirement in solutions built around WordPress.

We are very close to the 2.0 release of the plugin (currently in beta). This will be the inclusion of the JSON REST API into WordPress core, slated to happen any day now. Soon PHP will no longer be a required language in order to influence core WordPress operations. This opens up the WordPress developer base to other implementation languages/environments and inversely brings other developers into the ecosystem.

JavaScript moves from the client to the server

JavaScript has been a client technology for the web for more than 20 years. Only relatively recently via Node.js has it also been used for they type of server side processing typically performed in a language like PHP.

JavaScript has also begun to dominate the area of web tooling: the environments developers use to automate the creation and deployment of websites/applications. In short, JavaScript is starting to appear everywhere and be used for everything.

It is worth noting that the J in JSON specifically refers to JavaScript, and as such it is a naturally better choice to work with something like the WordPress JSON REST API. While usable with almost any programming language environment, JavaScript has taken the lead in interfacing with REST services.

The REST API release is an event leading to the ability to build applications against WordPress without PHP. The opportunity for more modern interfaces is here and already underway. The first major one is released and was developed by Automattic/WordPress themselves: Calypso.

JavaScript + REST API = Calypso, the next Bellwether

The REST API has allowed old to meet new in the just-released administrative application for WordPress: Calypso. As explained in the earlier quote, Calypso is an ultra-modern interface for WordPress administration from the ground up.

It is notable as a major release of a JavaScript application using a forward-facing technology solution stack. These technologies include Node, Express, Babel and React. The JavaScript stack has resulted in a number of improvements to the WordPress administrative interface especially in areas of performance.

Calypso may be the first in a series of incremental upgrades to WordPress which allow for a modern (JavaScript) stack experience.

This is a major leap forward for WordPress. It demonstrates the capabilities of the new REST API to allow for new integrations in different (modern) environments. It likewise may represent a changing of the guard from PHP to a JavaScript stack and encourage other organizations to do the same. JavaScript adoption has been increasing year-over-year, and now WordPress developers previously locked into PHP have a demonstrated path towards JavaScript.

What makes this distinct from other JavaScript/Node based projects is that:

  • We can see it and how it works. It is open source, most other Node adoptions are made known via description only or as short glimpses of systems built and operating privately in corporate environments. Successful open source projects encourage other projects in the same technologies. There is a lack of examples of large multi-contributor open source Node applications. As one, the Calypso architecture may become a blueprint for other similar solutions.
  • It is an alternative technology release from a company that is synonymous with and found great success in PHP. This will encourage other companies who may be entrenched with an older technology to also try an migration path with similar technologies.

This is an Automattic team throwing off some of its older paradigms and seeing what they can do with a more modern web development stack. The results are promising thus far.

The Technology Stack of the Future

Calypso is the first of the major WordPress elements to utilize the REST API to migrate away from PHP as the platform language. It is a vote of confidence for the JavaScript solution stack from a company best known for the previous generation of technologies. This is a good indicator that Automattic now has a clear technological upgrade path for WordPress without abandoning the core platform for the sake of backward compatibility.

In our opinion, this move by WordPress could signal a bellwether event for the adoption of JavaScript for applications and a clear indicator that PHP is becoming a legacy platform. We have performed work in a multitude of technologies including PHP and JavaScript for the last 20+ years and are watching closely as the preferred technology stack is shifting to the latter. Strategically if you are thinking about moving into the PHP ecosystem (or are currently entrenched there) it may be time to look at a platform neutral REST API + JavaScript for the future.

Capitalizing on this technology shift

If you are a general WordPress end user, it is a little early to start using these new technologies, they are still being fleshed out and you may expect some growing pains till they are stable. However, if you are a WordPress developer, or your WordPress infrastructure depends on a great degree of customization, you should be starting to look seriously at the REST API as an alternative means to achieve your goals.

This shift towards server-side Javascript could have a cascading effect for your hiring and training strategies; if you don’t have high JavaScript competency, indications are that you may need to prioritize it in the near future. If you are planning out a next phase of an implementation against WordPress, using the Calypso model may give you a advantage against the competition if you can harness the advantages of a modern JavaScript stack against the REST API.