Skip to content

Last Week in Pony May 28, 2023

Hey hey hey! It’s Sunday morning again, so you know what that means, it’s time to read about some of what happened last week as it relates to Pony…

Items of Note

ponyc 0.55.0 has been released

Version 0.55.0 of the Pony compiler was released on Saturday. There’s a bug fix for with blocks that is also a breaking change as well as a couple changes to supported platforms.

We no longer support Ubuntu 18.04. 18.04 is no longer receiving updates from Canonical and as such starting with 0.55.0, we no longer build ponyc releases for it. You can still build from source for it if you want.

Additionally, our supported MacOS platform is now Ventura. All testing is being done on Ventura and all ponyc releases are done for Ventura. You can continue to build for Monterey from source.

See the release notes for full details.

Office Hours

We have an open Zoom meeting every Friday for the community to get together and well, do whatever they want. In theory, Sean T. Allen “owns” the meeting and will often set an agenda. Anyone is welcome to show up and participate. Got a Pony related problem you need help solving and prefer to do it synchronously? Give Office Hours a try.

This past week’s Office Hours attendees were Sean T. Allen, Adrian Boyko, and Dipin Hora.

Topics of conversation were wide ranging and only somewhat related to Pony. We discussed Sean leaving Microsoft and his currently interviewing at other companies and the fun that is technical interviews.

From there, Sean explained what mutation testing is and how it relates to code coverage. Adrian nicely summarized mutation testing as “quality assurance for your quality assurance”. Sean asked Adrian and Dipin to think about how they might imagine utilizing mutation testing with Pony as Sean is thinking of “putting mutation testing into the compiler” i.e. allowing for mutation testing of Pony code without needing tools beyond ponyc.

After the mutation testing discussion, Adrian asked Sean for his opinions on D-Bus which lead to Sean saying “he didn’t have many”. We ended up discussing Bonobo (the GNOME predecessor) and CORBA which after a detour through some conversation about Cap n’ Proto and other serialization formats lead to a discussion about Hypermedia and the differences between RPC and REST.

Sean passed along a couple Hypermedia related links. The first, a link to an excellent book by Mike Amundsen that despite using “dated” technologies, does a wonderful job of describing why Hypermedia controls are a great data interchange format. The second link was to one of Steve Vinoski’s excellent talks comparing RPC and Hypermedia.

If you’d be interested in attending an Office Hours in the future, you should join some time, there’s a calendar you can subscribe to to stay up-to-date with the schedule. We do our best to keep the calendar up-to-date.

Releases

Community Resource Highlight

We like to take a moment in each Last Week in Pony to highlight a community resource. There are many community resources that can go unappreciated until just the right time when someone hops into the Ponylang Zulip asking a question or facing a problem we have all had at one time or another. Well here in Last Week in Pony, we make it just the right time to highlight one of our excellent community resources.

This week we return to the Tutorial in order to discuss one way we can get a concrete type out of an abstract type: the as operator.

In Pony, every object has a concrete type, but sometimes it is more appropriate to discuss abstract types. In order to check an abstract type for some concrete type we use the as operator. This operator has a few different uses: 1) get a concrete type out of a union of disjoint types (see the Animal example), 2) check that a type has additional functionality (see the Person example), 3) specify a type in an array literal (see the Main.foo example). All of these uses will error if invalid. The first two will error at runtime, while the third will fail to type check and therefore compile.


Last Week In Pony is a weekly blog post to catch you up on the latest news for the Pony programming language. To learn more about Pony, check out our website, our Twitter account @ponylang, or our Zulip community.

Got something you think should be featured? There’s a GitHub issue for that! Add a comment to the open “Last Week in Pony” issue.

Interested in making a change, or keeping up with changes to Pony? Check out the RFC repo. Contributors welcome!