A few weeks ago, Facebook introduced and open-sourced Hack, a gradually-typed programming language for HHVM that interoperates seamlessly with PHP. Yesterday we hosted our first Hack Developer Day to bring together members of the developer community for a deeper dive into Hack and HHVM.
We had a great group of 150 developers here throughout the day, and more than 2,000 people checked into the live stream. The team behind Hack and HHVM gave six presentations, and the day culminated with a hackathon that brought attendees together to begin to test Hack and provide feedback.
Opening Remarks (Jay Parikh)
Jay, head of global engineering for Facebook, opened the event with remarks on Facebook's approach to building infrastructure and the company's commitment to open source.
Introducing Hack (Julien Verlaguet)
Julien, one of the creators of Hack, introduced the language. He stressed how Hack is a real bridge between the dynamic and statically-typed world — providing code correctness while maintaining a fast feedback loop. He also went under the covers of Hack, introducing how the type checker actually works. And he gave us a glimpse of a surprise that was to come toward the end of the day.
Convert your PHP code to Hack: a HOW-TO (Josh Watzman)
Josh, a developer on the Hack team, demonstrated one approach to converting your PHP code to Hack (a project he helped lead for Facebook's own codebase) and showed off some tools to help make your conversion process as smooth as possible. The Hackificator kick-starts the conversion by converting
<?php> code to
hh_server —convert attempts to annotate your code with soft types. And then
remove_soft_types —harden removes the soft types — at which point your code is hopefully fully and correctly “hackified.” There are, of course, some manual steps during these phases, but these tools really can help increase your conversion productivity.
Craig and Peter gave an overview of the Heroku platform. With their custom build pack, Heroku is one of the first hosting providers with out-of-the-box support for HHVM and Hack — definitely worth checking out.
Drew and Eugene toured some of Hack's language features and APIs. Features such as Collections, lambdas, and async/await were well received by the audience. The demo using
Vector::filter() was a hit. Oh, and look for a little nugget around trailing comma support in the presentation.
Paul and Sara gave the state of the HHVM open source world: As Paul put it, “we are a real open source project now.” Our open source story basically boils down to two main tenants. First is our commitment to run the world's PHP and Hack code — 18 of the top 33 open source PHP frameworks have a 100% unit test pass rate, and we are so very close on most of the others. Second is to enable the community to contribute easily and openly. We have developed HNI to allow for easy third-party extension development. And we are moving to an open code review process.
HHVM Performance Status (Edwin Smith)
Ed went down to the metal to discuss how we try to keep making HHVM run your Hack and PHP code faster and faster. Dig in for a discussion of how we hacked away to get really fast in 2013 and of what's planned for 2014, with technologies like bytecode optimizing and region compiling.
FBIDE has been a great success internally at Facebook. At a company where vim and emacs are the dominant choices for development, a large percentage of Facebook engineers are using FBIDE, and the number is growing quickly. We believe FBIDE will be useful to Hack developers outside of Facebook, allowing them to productively become familiar with the language, so we're working on plans to make it more widely available — hopefully toward the end of summer 2014.
Hack Developer Day provided an exciting opportunity to meet members of the community interested in Hack and HHVM. Many of them have already made invaluable contributions to the implementation and direction of these two technologies. We also had some awesome community member questions and feedback throughout the day of presentations.
Next on the horizon is to continue working with the community to improve and refine the Hack language, helping interested developers migrate to Hack, and narrowing the HHVM compatibility gap with PHP5 and popular frameworks.
We'd like to give a huge thanks to everyone who attended live and online. We look forward to working with you all to keep taking Hack, PHP, and HHVM to the next level.