@mart_brooks @presbyterian Yes, it is. I'm looking forward to the next release with initial support for the new object system, #Corinna.
@profoundlynerdy @NexusM The project spearheaded by @ovid was renamed from Cor to #Corinna and the MVP will be available as the experimental `class` feature in #Perl v5.38.
Here is the summary from last week’s first v5.38 release candidate: https://github.com/Perl/perl5/blob/v5.38.0-RC1/pod/perldelta.pod#new-class-feature
Here is the reference on the new syntax: https://github.com/Perl/perl5/blob/v5.38.0-RC1/pod/perlclass.pod
@Perl For those who haven’t been following @ovid’s #Corinna project to bring modern effective #ObjectOriented #programming to #Perl, it’s coming this year with version 5.38’s experimental `class` feature.
Release engineer @rjbs is collecting the release branch in https://github.com/Perl/perl5/pull/21108; you can read the new `class` feature announcement at https://github.com/rjbs/perl5/blob/release-5.38.0/pod/perldelta.pod#new-class-feature, check https://github.com/rjbs/perl5/blob/release-5.38.0/pod/perlclass.pod for a full reference, or dive deep into the internals at https://github.com/rjbs/perl5/blob/release-5.38.0/pod/perlclassguts.pod
#corinna #objectoriented #programming #perl
Demolita la prima dimora di #Michael e #Corinna #Schumacher. Città a rischio scomparsa https://www.formula1.it/news/14140/1/demolita-la-prima-dimora-di-michael-e-corinna-schumacher-citta-a-rischio-scomparsa?utm_source=dlvr.it&utm_medium=mastodon
Minor Key . Net Marie, Marie Rider Playlist 4/5/23 🤔
https://www.minorkey.net/minor-key-playlists/minor-key-net-marie-marie-rider-playlist-4-5-23
#BobDylan #LeonardCohen #TomWaits #PaulSimon #RaphaelaGromes & #JulianRiem #NicolaBenedetti #MariáDueñas
#TajMahal #BlindLemonJefferson #LouRawls #TheAnimals Lead Belly (aka #Leadbelly)
#AppleMusic: https://music.apple.com/us/playlist/minor-key-net-marie-marie-rider-playlist-4-5-23/pl.u-NpXmm2ku4yGPB70
#SeeSeeRider #AvaMaria #Blues #BluesMusic #60sMusic #WorldMusic #FolkMusic @folkmusic @bluesmusic @blues #NowPlaying #NowListening #MastoMusic @mastomusic #Corrina #Corinna
#bobdylan #leonardcohen #tomwaits #paulsimon #raphaelagromes #julianriem #nicolabenedetti #mariaduenas #tajmahal #blindlemonjefferson #lourawls #theanimals #leadbelly #playlist #applemusic #seeseerider #avamaria #blues #bluesmusic #60smusic #worldmusic #folkmusic #nowplaying #nowlistening #mastomusic #corrina #corinna
@madbob #Ruby asked, “What if #Perl 4, but everything is #Smalltalk-style objects?”
#Perl 5 answered the #OOP question differently by introducing references and module extensions that don’t require OOP, with a few additional functions, variables, and conventions to provide an extremely minimal path to objects.
The #Corinna project brings more effective OOP with less boilerplate and more familiar syntax to Perl core without modules. Ask @ovid if you want to learn more. https://github.com/Ovid/Cor/wiki
#ruby #perl #smalltalk #oop #corinna
@blacklight @fuzzix So—we get there now with a feature guard, and eventually a version bundle.
It’s 100% correct to say “classic (non-#Corinna) #Perl 5 OOP doesn’t look like a language that has had OO since birth (and probably imposes OOP as the only paradigm)” or “it doesn’t look like a language that has learned the past 25 years’ lessons of incorporating OOP into dynamic languages.” But it also misses the point.
@fuzzix @blacklight But characterizing #Corinna as more “expressive”? If anything it’s less so—and that’s a good thing. It takes the best ideas from various #Perl OO frameworks and gives them a consistent syntax, instead of pressing specially-named Perl subs and hash key arguments into service so that if you squint they look like part of the language.
@fuzzix ++ for #Corinna and sub sigs providing familiar syntax for #Perl, but IMHO their strengths lie in being incorporated into the core language as a default one-stop shop for their features. You could previously (and can still) achieve a similar functional result via modules from #CPAN, at the price of performance and having to fight both with other Perl developers who disagree with your choices and folks like @blacklight who think it doesn’t count if it’s not in core using certain syntax.
For those following the #Corinna project to being modern #OOP to the #perl core, the first pass has now been merged. https://github.com/Perl/perl5/pull/20795/files
@randomgeek @deafferret @Perl FYI @leonerd has put together a Feature::Compat::Class module that sets options in Object::Pad with an aim to let older #Perl versions use forward-compatible #Corinna syntax and features today: https://metacpan.org/pod/Feature::Compat::Class
Similar to how his Feature::Compat::Try enables Perls older than v5.34 with try/catch exception syntax
Converting Object-Oriented Code to Corinna
https://ovid.github.io/articles/converting-object-oriented-code-to-corinna.html
@ChristosArgyrop @slott56 @Perl @adamcrussell I think a #Perl7 release needs true *game* changes to change minds, like `use feature 'class'` (a/k/a #Corinna, initial PR by @leonerd opened last week: https://github.com/Perl/perl5/pull/20647), plus smaller accepted features with sane defaults: https://perldoc.perl.org/functions/use#use-VERSION
Building and showing off great #Perl drives interest and a cycle of others doing likewise. Fashion is a secondary effect.
I am the lead designer on the #Corinna project to bring modern OOP to the #perl language.
https://github.com/Ovid/Cor/blob/master/pod/perlclasstut.pod
I ported two-decade old code to use the new syntax and discovered that the Corinna spec is flawed because I couldn't port it cleanly!
After a couple of hours of writing and rewriting the explanation, I discovered Corinna is not flawed. It was my original OO design that was broken.
Many Perl developers are going to discover they don't actually understand class-based OOP.
Because the new #Corinna #oop system for #Perl has a proper meta-object protocol and first-class support for object internals, we could potentially have transactions.
method update(%new_data) {
$self->start_transaction;
try {
$self->_update(%new_data);
$self->commit;
}
catch ($error) {
$self->rollback;
$error->throw;
}
return true;
}
We could rollback object state, not just db state.
I suspect I would get grief for proposing this.
Haven't touched #Perl in a while? Modern Perl might surprise you and I'm super-excited that my #Corinna #OOP proposal has been accepted. Here's a simple 2D point class in the new syntax:
class Point {
field ($x,$y) :param :reader;
method invert() {
($x,$y) = ($y,$x)
}
}
For serious OOP fans: it includes a meta-object protocol. The design team has striven to make Corinna as declarative as possible. Might have a 1st version by Christmas.
See more at https://github.com/Ovid/Cor
Al
@324cat esmenten el podcast de Corinna Larsen i han traduït "guilt" per "broma"... 🥲
No està malament aprofitar que és la #Corinna qui treu el tema tabú del rei d'#Espanya matant el seu germà, i en permet parlar-ne obertament als mitjans, per variar.
Però ai la traducció. Que no es referia a una "broma" sinó al sentiment de culpa... 😅
Corinna Schumacher: il presunto acquisto a Maiorca di una villa con ranch per trasferirsi #corinna #schumacher #presunto #acquisto #maiorca #villa #ranch #trasferirsi #1agosto https://parliamodi.news/article/aHR0cHM6Ly93d3cudHV0dG9zcG9ydC5jb20vbmV3cy9tb3RvcmkvMjAyMi8wOC8wMS05NTM0Mjk2Ni9jb3Jpbm5hX3NjaHVtYWNoZXJfaWxfcHJlc3VudG9fYWNxdWlzdG9fYV9tYWlvcmNhX2RpX3VuYV92aWxsYV9jb25fcmFuY2hfcGVyX3RyYXNmZXJpcnNpLw==
#1agosto #trasferirsi #ranch #villa #maiorca #acquisto #presunto #schumacher #corinna
Mick Schumacher conquista i primi punti in F1, in radio parla mamma Corinna: è emozione pura #mick #schumacher #conquista #primi #punti #radio #parla #mamma #corinna #emozione #pura #3luglio https://parliamodi.news/article/aHR0cHM6Ly93d3cuZmFucGFnZS5pdC9zcG9ydC9tb3RvcmkvbWljay1zY2h1bWFjaGVyLWNvbnF1aXN0YS1pLXByaW1pLXB1bnRpLWluLWYxLWluLXJhZGlvLXBhcmxhLW1hbW1hLWNvcmlubmEtZS1lbW96aW9uZS1wdXJhLw==
#3luglio #pura #emozione #corinna #mamma #parla #radio #punti #primi #conquista #schumacher #mick