In PLDI this year: Ben Titzer, "Harmonizing Classes, Functions, Tuples, and Type Parameters in Virgil III" [pdf]
Given a fresh start, a new language designer is faced with a daunting array of potential features. Where to start? What is important to get right first, and what can be added later? What features must work together, and what features are orthogonal? We report on our experience with Virgil III, a practical language with a careful balance of classes, functions, tuples and type parameters. Virgil intentionally lacks many advanced features, yet we find its core feature set enables new species of design patterns that bridge multiple paradigms and emulate features not directly supported such as interfaces, abstract data types, ad hoc polymorphism, and variant types. Surprisingly, we find variance for function types and tuple types often replaces the need for other kinds of type variance when libraries are designed in a more functional style.
Recent comments
20 hours 25 min ago
22 hours 13 min ago
17 weeks 5 days ago
17 weeks 5 days ago
17 weeks 5 days ago
23 weeks 6 days ago
1 year 11 weeks ago
1 year 12 weeks ago
1 year 12 weeks ago
1 year 34 weeks ago