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

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

This is the "Fintech" version of this talk.

Abstract:

Conventional wisdom holds that you should never build your business on top of bleeding-edge technology. Yet, when we at Sendence set out to build our high-performance stream processing engine Wallaroo, we chose to build it in Pony- a high-performance actor-based programming language that has limited industry usage. So far, this decision has worked out very well for us. Pony has helped us move with speed and confidence. In this talk, I'll cover several Pony features that have contributed to moving us forward. I'll also discuss how Pony's immaturity has at times hindered us. By the end of this talk, you'll have a solid understanding of Pony's strengths and weakness and be better equipped to decide if it just might be the right language for your next project.

3c53e91d2a6ceb1b7f202d709f638b1b?s=128

Sean T Allen

June 26, 2017
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 Sendence
  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. “Fintech” Questions

  24. “Fintech” Questions How do I shard my data? How do

    I do priority queues? How do I only process the most recent messages?
  25. 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 for fintech in production now
  26. 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

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