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.

3c53e91d2a6ceb1b7f202d709f638b1b?s=128

Sean T Allen

July 19, 2018
Tweet

Transcript

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

    unproven technology
  2. Sean T Allen Author of Storm Applied Member of the

    Pony core team VP of Engineering at Wallaroo Labs @SeanTAllen
  3. Pony Open-source, object-oriented, actor-model, capabilities- secure, high-performance programming language

  4. This talk is… The story of Pony told through the

    story of Wallaroo; the product we built with it…
  5. Wallaroo High-performance, distributed stream processor High-throughput Low-Latency Consistent performance Resource

    efficient
  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.”
  7. Why Pony?

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

    not required
  9. Highly Concurrent

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

    sympathy
  11. Predictable latencies

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

    clustering
  13. Data Safety

  14. Data Safety Reference Capabilities

  15. Batteries not required

  16. Batteries not required Small Standard Library C-FFI

  17. Results

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

    refactoring Some pain
  19. Pain

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

    required
  21. Is Pony right for you?

  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…
  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
  24. Links, references, and more… https://github.com/SeanTAllen/pony-how-i-learned-to-stop- worrying