Pony Course




What's in this preview?

We want you to get the feel for typical Groxio content and the reasons we provide each type of content. Each Groxio module comes in four scheduled releases consisting of the central PDF, videos, and resource links. Later releases have projects as well. You can see part of the first release here.

Capabilities-secure, high-performance programming



Buy Course Today!



Preview PDF!

Version: Jan 1, 2020


Just $35.00, A La Carte
(other options available)




Programmer Passport Pony






Why a book?

The scientific teaching method we follow is the Dreyfus learning model. Books provide the metaphors experts need to build context, step-by-step instructions for beginners, and the exercises that intermediates need to learn.

Itinerary


1. Exploring Pony

2. Herds of Ponies

3. Concurrent Programs

4. Chat Room

Why an itinerary?

The itinerary is a virtual guide. This optional list describes the highlights of each release to maximize your learning time.

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




Why videos?

Groxio language modules have two kinds of videos. Our overview videos set the history and context of a language, or wrap up the work we've done, and are free to support language ecosystems. Our coding instruction videos, mostly starting with the second release, are paid content, and each one offers a live coding project.

Every learning level benefits from pair programming. Our videos are professional, but do not scrub away every tiny mistake. That way, you can see how experienced programmers deal with errors and changes in code organization.

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.

Video

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.
Subscriber content

Video

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.
Subscriber content

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




Why resource links?

Each new chapter has a set of links, separated into three categories. The categories reflect different competency levels and resources that match that stage of learning, for each Groxio release.

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)






Why projects?

The Dreyfus model is originally instruction for pilots. A typical pilot course is based on reading material to understand context, and then flying a plane. Our videos and PDFs are important, but in the end, programmers need to program in order to learn. Our projects offer different levels of assistance, from "give me the answer" to "make this test pass".