Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Why Pony?

Why Pony?

Pony is a new language designed to make fast, concurrent programing simple. Its actor-based concurrency and advanced type system ensure programs are data race and deadlock free. We'll compare Pony to more mature technologies, starting with when you shouldn't use it, when you should, and what your alternatives might be. You'll learn about Pony's design philosophy, how the actors simplify writing safe code and more. You'll leave understanding what Pony is and if it's something you might use.

Sean T Allen

July 08, 2017
Tweet

More Decks by Sean T Allen

Other Decks in Technology

Transcript

  1. Why Pony?
    Bleeding edge technology for your concurrency woes

    View Slide

  2. Sean T Allen
    Author of Storm Applied
    Member of the Pony core team
    VP of Engineering at Sendence

    View Slide

  3. Pony
    Open-source, object-oriented,
    actor-model, capabilities-
    secure, high-performance
    programming language

    View Slide

  4. -Sylvan Clebsch

    A programming language is just
    another tool. It’s not about syntax.
    It’s not about expressiveness. It’s
    not about paradigms or models.
    It’s about managing hard
    problems.”

    View Slide

  5. Why Pony?

    View Slide

  6. Why Pony?
    Highly Concurrent
    Predictable latencies
    Data Safety

    View Slide

  7. Highly Concurrent

    View Slide

  8. Highly Concurrent
    Actor model
    Async messaging
    Work stealing scheduler
    Mechanical sympathy

    View Slide

  9. Predictable latencies

    View Slide

  10. Predictable Latencies
    No “stop the world” GC
    Per-actor heaps
    Better clustering

    View Slide

  11. Data Safety

    View Slide

  12. Data Safety
    Reference Capabilities

    View Slide

  13. Why Not Pony?

    View Slide

  14. Why Not Pony?
    Concurrency isn’t your problem
    Lack of API Stability
    “Batteries Not Included”
    Limited Native Tooling

    View Slide

  15. Is Pony right for you?

    View Slide

  16. Is Pony right for you?
    You have a hard concurrency
    problem
    You aren’t reliant on a lot of
    existing libraries
    You are willing to write “most
    everything” from scratch
    Yes, if…

    View Slide

  17. Takeaways…
    Pony has a powerful, data-race free,
    concurrency-aware type system

    The Pony runtime can help you solve
    hard concurrency problems

    You might be able to use Pony

    in production now

    View Slide

  18. Trash Day paper:
    https://www.usenix.org/system/files/conference/hotos15/
    hotos15-paper-maas.pdf
    ORCA paper:
    https://www.ponylang.org/media/papers/OGC.pdf

    View Slide

  19. @seantallen
    www.monkeysnatchbanana.com
    @SendenceEng
    www.sendence.com
    @ponylang
    www.ponylang.org
    #ponylang on freenode

    View Slide