Extreme Software Portability as an Art Form

*
Accepted Session
Short Form
Intermediate
Scheduled: Tuesday, June 24, 2014 from 2:30 – 3:15pm in B304

Excerpt

Writing portable software is hard. Throw in thousands of bad and worse shared hosting configurations, a decade of technical debt, the need to cater to a sprawling ecosystem, and PHP — and you have WordPress. We've found breaking changes harm our community and unfairly punish our users, so we don't make them. But that doesn't mean we don't innovate or evolve — we're just forced to get really clever. And it works, with adoption continuing to soar.

Description

Writing portable software is hard. Throw in thousands of bad and worse shared hosting configurations, a decade of technical debt, the need to cater to a sprawling ecosystem, and PHP — and you have WordPress.

Our portability has roots in draconian backwards compatibility requirements. Backwards compatibility is almost never broken. The technical requirements appeal to lowest common denominators. But because the project maintainers deal with all the pain — technical debt, undoing breakage in upstream libraries, working on as many server (mis)configurations as possible — its users don’t have to.

That doesn’t mean we don’t innovate or evolve. We’re just forced to get really clever. As we’ve found that “breaking changes” harm our community and unfairly punish our users, the WordPress core developers are forced into mind-bending challenges to dream up solutions that most software projects would never consider. But it works. The numbers don’t lie: By some estimates, WordPress powers more than 20 percent of the web.

It’s not hard to look at it as an art form — we’re forced to approach complex problems without breaking changes as our escape hatch, requiring a side of creativity that most projects would prefer to ignore. I’ll walk through the hosting configurations we’ve cried over, the hoops we’ve jumped through, the true engineering feats on both the front-end and backend that we’re truly proud of, the times we’ve messed up, and what we’ve learned along the way.

We believe maintainers should approach software development with an unwavering promise that they will deal with the nonsense instead of simply passing it off to the user. The way WordPress operates is not for everyone. But the challenges we’ve faced could help you see your code and community in a new light.

Tags

wordpress, portability, backwards compatibility, technical debt

Speaking experience

I've presented both technical and philosophical talks at three dozen WordPress conferences in North America and Europe, guest lectured for classes at four universities, and spoken at dozens of other events. A selection of video/resources: http://wordpress.tv/speakers/andrew-nacin/, http://lanyrd.com/profile/nacin/. (I'm working on building an index of everything at http://nacin.com/speaking/.)

Last year I keynoted a PHP conference on a variation of this general topic (I received some great feedback: https://joind.in/talk/view/8606). While the talk descriptions are similar, this talk is a different approach and content. The keynote focused on the choppy PHP landscape, centered around statistics. This language-agnostic talk is instead a series of case studies useful for any open source project, where I'll profile a series of backwards compatibility challenges and the considerations we needed to make to solve them.

Speaker

  • Gravatar

    Andrew Nacin

    WordPress

    Biography

    Lead Developer of WordPress. News junkie.

    Sessions

      • Title: Extreme Software Portability as an Art Form
      • Track: Hacks
      • Room: B304
      • Time: 2:303:15pm
      • Excerpt:

        Writing portable software is hard. Throw in thousands of bad and worse shared hosting configurations, a decade of technical debt, the need to cater to a sprawling ecosystem, and PHP — and you have WordPress. We’ve found breaking changes harm our community and unfairly punish our users, so we don’t make them. But that doesn’t mean we don’t innovate or evolve — we’re just forced to get really clever. And it works, with adoption continuing to soar.

      • Speakers: Andrew Nacin
      • Title: Trust, Community, and Automatic Updates
      • Track: Culture
      • Room: B304
      • Time: 1:302:15pm
      • Excerpt:

        WordPress shipped in October what is perhaps its most polarizing feature ever — automatic updates in the background of self-hosted web software, on by default and no easy way to turn it off. In most open source communities, this would be cause for open revolt. Learn how through trust, communication, and a steadfast commitment to its philosophies, the WordPress core team convinced a skeptical community to go along, even if it meant users giving up some control.

      • Speakers: Andrew Nacin