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

Pony: How I learned to stop worrying and embrace an unproven technology - OSCON 2018

Pony: How I learned to stop worrying and embrace an unproven technology - OSCON 2018

Conventional wisdom holds that you should never build your business on top of bleeding-edge technology. However, when Wallaroo Labs set out to build its high-performance stream processing engine, Wallaroo, the company chose to implement it in Pony—a high-performance actor-based programming language that has limited industry usage. So far, this decision has worked out very well.

Sean T. Allen explains what makes Pony different from other languages, the types of problems it can help solve, why he and his team used Pony, how it has made their jobs easier, and the times when Pony’s immaturity hindered them. You’ll leave with a solid understanding of Pony’s strengths and weakness so you can determine if it just might be the right language for your next project.

Sean T Allen

July 19, 2018
Tweet

More Decks by Sean T Allen

Other Decks in Technology

Transcript

  1. Pony
    How I learned to stop worrying and embrace an unproven technology

    View full-size slide

  2. Sean T Allen
    Author of Storm Applied
    Member of the Pony core team
    VP of Engineering at Wallaroo Labs
    @SeanTAllen

    View full-size slide

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

    View full-size slide

  4. This talk is…
    The story of Pony told through the story of Wallaroo;
    the product we built with it…

    View full-size slide

  5. Wallaroo
    High-performance, distributed
    stream processor
    High-throughput
    Low-Latency
    Consistent performance
    Resource efficient

    View full-size slide

  6. -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 full-size slide

  7. Why Pony?
    Highly concurrent
    Predictable latency demands
    Data Safety
    “Batteries” not required

    View full-size slide

  8. Highly Concurrent

    View full-size slide

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

    View full-size slide

  10. Predictable latencies

    View full-size slide

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

    View full-size slide

  12. Data Safety
    Reference Capabilities

    View full-size slide

  13. Batteries not required

    View full-size slide

  14. Batteries not required
    Small Standard Library
    C-FFI

    View full-size slide

  15. Results
    18 month jumpstart for “free”
    Excellent performance
    More confident refactoring
    Some pain

    View full-size slide

  16. Pain
    Pre-1.0
    Compiler bugs
    Breaking changes
    Limited tooling
    Runtime knowledge required

    View full-size slide

  17. Is Pony right for you?

    View full-size slide

  18. 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 full-size slide

  19. 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 full-size slide

  20. Links, references, and more…
    https://github.com/SeanTAllen/pony-how-i-learned-to-stop-
    worrying

    View full-size slide