Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

Why Pony?

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

Highly Concurrent

Slide 10

Slide 10 text

Highly Concurrent Actor model Async messaging Work stealing scheduler Mechanical sympathy

Slide 11

Slide 11 text

Predictable latencies

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

Data Safety

Slide 14

Slide 14 text

Data Safety Reference Capabilities

Slide 15

Slide 15 text

Batteries not required

Slide 16

Slide 16 text

Batteries not required Small Standard Library C-FFI

Slide 17

Slide 17 text

Results

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

Pain

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

Is Pony right for you?

Slide 22

Slide 22 text

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…

Slide 23

Slide 23 text

“Fintech” Questions

Slide 24

Slide 24 text

“Fintech” Questions How do I shard my data? How do I do priority queues? How do I only process the most recent messages?

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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