Pony

Pony

Capabilities-secure, high-performance programming

Get PDF


Got errata or suggestions? Email us at info@grox.io

Release Schedule: 2019-11-15 through 2020-01-01

Version: Jan 1, 2020

Programmer Passport Pony



Itinerary


1. Exploring Pony

Description

Pony is an object-oriented, capabilities-secure, high-performance programming language. That’s a lot of hyphens in a short space. What makes Pony different is the high number of guarantees that compiling a Pony program will give you.


Pony programs are type-safe and memory-safe, without any unchecked exceptions. Pony also gives you a feature called reference capabilities. That means if your program compiles, it might do the wrong thing (if you have logic errors), but you won’t have crashes. Pony’s compiler also guarantees that concurrent programs won’t have data races or deadlocks.


Because Pony has some innovations including copy-free message passing and a powerful garbage collector, it’s extremely fast and excellent at concurrency.


History

In 2010, Sylvan Clebsch was working on a flight simulater and later distributed applications. The same problems kept popping up so he started working on a C-runtime to fix them. He found that while creating the library was possible, it was difficult to make sure that the clients of that library were fulfilling all of the obligations that would make his code safe and secure.


After doing quite a bit of research, he later abandoned that effort and formed a small team to shift to a language. Pony was created in 2014 and opensourced in 2014. By this time, a larger team was working with it.


The primary innovations were around the garbage collection model and a couple of language features called reference capabilites and object capabilities. These features allowed Sylvan and the Pony team to provide more and more guarantees by the compiler.


You can read more at the early history of Pony article.

Videos

Public & Private

Introducing Pony

This video sets the Pony Express into motion. Sean Allen, member of the Pony core team and programmer at Wallaroo, tells Pony's story from the inside. We examine the essence of Pony, including the things that make it so good for high-performance, high-concurrency programming.

Pony Chat Room Bones

In this video, we start working with a Pony project, but we'll stay away from the networking and testing that make Pony so complex. We'll focus on techniques with promise chaining along with the supporting techniques of generics and partial application to build a request-response type flow. This will be the bones; the network and terminal interface come next time.

Pony Reference Capabilities

This video explains the heart of Pony's concurrency control. The Pony language augments the type system with a piece of information called a reference capability (refcap). In this video, you'll find out how they work, and even create some tiny programs that trigger Pony's defenses against incorrect code. We'll focus on the iso, tag, ref, and val refcaps.

Pony, Rosie Pattern Language, O'Caml

The second vote for Programmer Passport.

Pony Wins

The announcement of the winner of the second Programmer Passport language vote.

Pony Exercises on exercism.io

Learn to work problems on the computer exercises platform called Exercism. Run tests; use Apply; invoke your solutions. We work through three Exercism problems.

Wrapping Up Pony

The last video for Pony. We talk about the lessons we've learned and work to

Community Resources

Cool quick trips for Pony

Learn It

These resources will get you on the path to learning with background information, tooling and exercises.

Do It

You decide how deep to go. These resources are exercises and projects to cement your learning.

Grok It

These resources will help you put your new knowledge into context so you'll be better at your everyday job.

Projects

Longer Excursions (chapters 3 and 4)