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 Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View 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 Slide

  7. Why Pony?

    View Slide

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

    View Slide

  9. Highly Concurrent

    View Slide

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

    View Slide

  11. Predictable latencies

    View Slide

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

    View Slide

  13. Data Safety

    View Slide

  14. Data Safety
    Reference Capabilities

    View Slide

  15. Batteries not required

    View Slide

  16. Batteries not required
    Small Standard Library
    C-FFI

    View Slide

  17. Results

    View Slide

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

    View Slide

  19. Pain

    View Slide

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

    View Slide

  21. Is Pony right for you?

    View Slide

  22. 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

  23. 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

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

    View Slide