-
Notifications
You must be signed in to change notification settings - Fork 19
Home
Please see the main page of the repo for the actual RFC. As it states there:
Anything in the Wiki should be considered "rough drafts."
"Good enough" is not good enough.
Please read the README to understand the overall approach here.
Corinna, previously called “Cor” is an attempt to bring effective OO to the Perl core and leapfrog the capabilities of many OO languages today.
It is important to note that Corinna must not simply be better than Perl's current OO. That's an absolute mistake to think that way. Corinna must be better than what you can get in Python 3, Ruby, Swift, and so on. It must be the OO language that people want to work with.
Read The Lisp Curse to get a sense of why this is so important.
The "canonical" description of Corinna is at Corinna Overview. This page should be the "go to" page for all descriptions of Corinna behavior. If other pages disagree (they do!), please create an issue. The overview is part of an attempt to move from specifying Corinna to getting her into the Perl core.
- Rationale
- Grammar
- Classes
- Attributes
- Constructors
- Destructors
- Methods
- UNIVERSAL::Corinna base class
- Class Data and Methods
- Roles (WIP)
- Cookbook (WIP)
- Open Questions
- Things we're not implementing right now
If you're curious, the original proposal is here. We've come a long way since then.
Catch us on irc.perl.org, #cor.
Corinna is the product of Ovid's deranged mind, but he largely stole a bunch of ideas from Stevan Little, who's working on a prototype. Sawyer X asked great questions and gave a few good ideas to make it even better. If this goes into the core, Sawyer is the person who will likely guide that effort.
Damian Conway has worked to pervert the process.
Also, Paul Evans is also playing with some of these ideas. See Object::Pad.
Corinna—Bringing Modern OO to Perl