Hack - Why Should I Care?

2fe1b2866cfd498a513295d60d5cad0f?s=47 Joel Clermont
November 07, 2014

Hack - Why Should I Care?

In March, Facebook released a new language called Hack. It adds static typing, generics and lambda expressions on top of the rest of the familiar PHP syntax. In addition, it allows for gradual adoption of these features and continued interoperability with existing PHP code. But why should you care? Do you need to work in a massive environment like Facebook to reap the rewards of learning a new language? I'll make a strong case that Hack (and HHVM) are worth your time, give you a good demo of the language and show you how to get started. I don't work for Facebook, but I dove into Hack the day it was announced and I've continued to follow its development with great interest. I have applications in production running on Hack and I'm eager to show PHP developers of all skill levels why it's worth their time to give Hack a look.

2fe1b2866cfd498a513295d60d5cad0f?s=128

Joel Clermont

November 07, 2014
Tweet

Transcript

  1. 4.

    What to expect • No insider secrets • High-level tour

    of Hack’s unique features • Make the case why you should try it out
  2. 5.

    What to expect • No insider secrets • High-level tour

    of Hack’s unique features • Make the case why you should try it out • Show you how to get started
  3. 6.

    What to expect • No insider secrets • High-level tour

    of Hack’s unique features • Make the case why you should try it out • Show you how to get started • Answer all your questions
  4. 10.

    Type Annotations
 What do we get out of it? •

    Easier for developers to understand intent
  5. 11.

    Type Annotations
 What do we get out of it? •

    Easier for developers to understand intent • Correctness of our type system
  6. 12.

    Type Annotations
 What do we get out of it? •

    Easier for developers to understand intent • Correctness of our type system • Easier to refactor
  7. 16.
  8. 17.

    Doesn’t PHP already have type hints? • Scalar type hints

    • Typed arrays • Nullable types • Function return type hints
  9. 18.

    Doesn’t PHP already have type hints? • Scalar type hints

    • Typed arrays • Nullable types • Function return type hints • Type checker
  10. 23.
  11. 24.
  12. 32.

    Collections Other nice features • Familiar interface • OutOfBoundsException •

    Collections are objects (no more passing by ref) • Immutable collections too
  13. 34.

    And more . . . • User attributes • Enhancements

    to traits • Async / await • Constructor promotion • Shapes • Type aliases . . . .
  14. 39.

    Trying out Hack is not scary • Gradual process •

    Full PHP interoperability • Not just for multi-million line codebases
  15. 40.

    Trying out Hack is not scary • Gradual process •

    Full PHP interoperability • Not just for multi-million line codebases • Awesome tooling
  16. 42.

    How to get started • Install HHVM (packages available) •

    Convert existing code with hackificator
  17. 43.

    How to get started • Install HHVM (packages available) •

    Convert existing code with hackificator • Monitor logs for type errors
  18. 44.

    How to get started • Install HHVM (packages available) •

    Convert existing code with hackificator • Monitor logs for type errors • Harden your types over time
  19. 45.

    Resources • Conversion guide
 http://docs.hhvm.com/manual/en/install.hack.conversion.php • HHVM blog http://hhvm.com/blog •

    IRC channel #hhvm • http://hhvm.com/frameworks/ • https://github.com/facebook/hhvm/wiki/Extensions