Numfar, do the dance of compatibility: moving languages forward without leaving users behind

Short Form


Moving a language forward in backward incompatible ways is often necessary, but can be hard on users. In this talk, I'll compare and contrast approaches used to support older code bases in different languages, and look at what works and what doesn't.


In recent years, many popular languages have released new, backward compatibility breaking versions, with varying degrees of success. This list includes Python 3, Ruby 1.9, and Perl 6, and PHP is due to join their ranks with version 7 later in the year.

All of these languages have done some things right, and all have done some things wrong. In this talk, I’ll examine what pain points have been created for users, and what can be done better in future cases to ease the transition, particularly for users who need to straddle both the old and new worlds.

Speaking experience

I’ve spoken twice at OSCON (2013 and 2014), twice on the main programme of (2013 and 2014), five times at miniconfs (2011-2014, inclusive), at OSDC in 2011, True North PHP in 2013, php[tek] in 2014, and DrupalCon Austin in 2014. Examples of my presenting style can be seen in the videos posted by is probably a good (and relatively short!) example of one of my earlier talks.

This is also a new talk.


  • Profile picture by lgnome d4cmdq3

    Adam Harvey

    New Relic


    Adam is a PHP Agenteer (it’s totally a word) at New Relic who spends most of his time swearing at C compilers and the PHP API, usually not in that order. In between said bouts of invective, Adam works on various open source projects, including PHP, plays cricket, kayaks, and continues in his ongoing quest to find the best beer in the world. (Well, OK, it’s totally Westvleteren 12, but it’s a good excuse to drink more beer.)