Weekly notes #9

MRI 2.4.1 is out, on error handling design, Algol’s influence + proof why we’ll all end up on Go :)

Ruby, systems, performance, and programming links from last week.

Ruby

Understanding Ruby GC through GC.stat - Nate Berkopec explains MRI Ruby GC.stat hash keys in detail.

Ruby 2.4.1 Released: What’s Changed – Ruby Inside – Medium - new MRI Ruby version is out - details of some of the more interesting commits. New version of Onigmo (regexp engine), rubygems, many small fixes.

Ruby’s new RegExp absent operator - Peter Cooper writes out about the Onigmo update bringing in a new absent operator to RegExp.

Quickly find environment variables in a Ruby Project - a simple script that does just that.

On errors and error handling

The Error Model - Joe Duffy worked on Midori OS and the language underpinning it. During the development, the team had a chance to explore and experiment with various models of error handling. Describes the fundamental difference between bugs and recoverable errors, evaluates return codes, checked, and unchecked exceptions along various engineering criteria. Interesting insight on type-system complexity vs. contracts / asserts. Touches on designing for fault-tolerance and isolation as well.

Other

Children of the Miracle: from Algol to Prolog - beautiful piece of computer language history and the influence of Algol.

The eigenvector of “Why we moved from language X to language Y” - we’ll all end up switching to Go, eventually :)