Fueling innovative software
July 15-18, 2019
Portland, OR

The philosophy of versions

Adam Harvey (New Relic)
11:00am11:40am Wednesday, July 17, 2019
Secondary topics:  Customer Centered
Average rating: ****.
(4.27, 15 ratings)

Who is this presentation for?

  • Developers and architects

Level

Beginner

Description

In 2015, the PHP project released version 7.0 of the PHP language. Doing so was the culmination of several years of discussion and hard work to resolve what a new major version would look like, what would be included, and most importantly, what would be broken for existing users. In the end, PHP 7 was released with almost no backward compatibility breaks for well-written, modern PHP 5 code. As a result, uptake of PHP 7 after three years has been—depending on which source you use and how you measure it—between 33% and 67%.

Adam Harvey explores the PHP project’s significant advantage: other languages had been through the same thing before. By reference to peers—Python, Perl, C++—developers were able to learn from their experiences. And since then, the process has only continued as languages such as Rust, Go, and JavaScript go through similar transitions. He walks you through the insights gleaned from the PHP 7 process and explains how other projects—whether languages or libraries—can better handle their road maps, backward and forward compatibility stories, and ultimately, their versions.

Prerequisite knowledge

  • Experience with the concept of semantic versioning (useful but not required)

What you'll learn

  • Learn how to keep your users happy while you move fast and break things (or move slowly and break things)
Photo of Adam Harvey

Adam Harvey

New Relic

Adam Harvey is a software developer working on PHP, Go, and C language support at New Relic. Adam has worked on a number of interesting and occasionally even useful things in his two-decade career, including prototyping the worst mesh network of all time (based on Android phones), discovering how to reliably lock up a Windows computer by writing an in-browser video editor, and (most usefully) removing the original mysql_* API from PHP. In his spare time, he contributes to a variety of open source projects, a secret robot project that may have some Asimov-related issues, and a variety of half-finished websites and is attempting to drink every beer Vancouver produces.