RFC 159, by Nathan Wiger: True Polymorphic Objects

Proposed on 25 August 2000, frozen on 16 September 2000 On polymorphism RFC159 introduces the concept of true polymorphic object. Objects that can morph into numbers, strings, booleans and much more on-demand. As such, objects can be freely passed around and manipulated without having to care what they contain (or even that they’re objects). WhenContinue reading “RFC 159, by Nathan Wiger: True Polymorphic Objects”

RFC 188, by Damian Conway: Objects: Private keys and methods

Break someone’s code today! On September 1st of 2000 Damian Conway sent a proposal №188, promoting the idea of Private Keys and Methods. In those days, Perl’s object-oriented programming relied heavily on hashes. Indeed, a hash can store data values by keys, as well as references to routines, which is how you can describe anContinue reading “RFC 188, by Damian Conway: Objects: Private keys and methods”

RFC 190, by Damian Conway: NEXT pseudoclass for method redispatch

In his series of object orientation RFC’s Perl/Raku luminary Damian Conway includes a proposal for method redispatch, RFC 190, which is the subject of today’s article. On method dispatch Perl has a pseudoclass named SUPER which an object can use to invoke a method of its parent class that it has overridden. It looks approximatelyContinue reading “RFC 190, by Damian Conway: NEXT pseudoclass for method redispatch”

RFC22: Control flow: Builtin switch statement, by Damian Conway

The problem C has switch/case, and many other languages either copied it, or created a similar construct. Perl in 2000 didn’t have any such thing, and this was seen as a lack. A Tale of Two Languages This RFC not only became two (related) features, it did so in both Perl and Raku with dramaticallyContinue reading “RFC22: Control flow: Builtin switch statement, by Damian Conway”

RFC 43: Integrate BigInts (and BigRats) Support Tightly With The Basic Scalars

Intro RFC 43, titled ‘Integrate BigInts (and BigRats) Support Tightly With The Basic Scalars’ was submitted by Jarkko Hietaniemi on 5 August 2000. It remains at version 1 and was never frozen during the official RFC review process. Despite this somewhat “unoffical” seeming status, the rational (or Rat) numeric type, by default, powers all ofContinue reading “RFC 43: Integrate BigInts (and BigRats) Support Tightly With The Basic Scalars”

RFC 54, by Damian Conway: Operators: Polymorphic comparisons

This RFC was originally proposed on August 7th 2020 and frozen in six weeks. It described a frustration with comparison operations in Perl. The expression: “cat” == “dog” #True Perl (and now Raku) has excellent support for generic programming because of dynamic typing, generic data types and interface polymorphism. Just about the only place whereContinue reading “RFC 54, by Damian Conway: Operators: Polymorphic comparisons”

RFC 64: New pragma ‘scope’ to change Perl’s default scoping

Let’s talk about a fun RFC that mostly did not make its way into current day Raku, nor is it planned for later implementation. This is about RFC 64 by Nathan Wiger. Let me quote the abstract: Historically, Perl has had the default “everything’s global” scope. This means that you must explicitly define every variableContinue reading “RFC 64: New pragma ‘scope’ to change Perl’s default scoping”

RFC 5, by Michael J. Mathews: Multiline comments

This is the first RFC proposed related to documentation. It asks for a common feature in most of the modern programming languages: multiline comments. The problem of not having multi-line comments is quite obvious: if you need to comment a large chunk of code, you need to manually insert a # symbol at the beginningContinue reading “RFC 5, by Michael J. Mathews: Multiline comments”

RFC 225: Superpositions (aka Junctions)

Damian Conway is one of those names in the Perl and Raku world that almost doesn’t need explaining. He is one of the most prolific contributors to CPAN and was foundational in the design of Raku (then Perl 6). One of his more interesting proposals came in RFC225 on Superpositions, which suggested making his PerlContinue reading “RFC 225: Superpositions (aka Junctions)”