develooper Front page | perl.perl5.porters | Postings from October 2012

What happened to the whole "small core" idea?

Thread Next
From:
Peter Rabbitson
Date:
October 27, 2012 01:31
Subject:
What happened to the whole "small core" idea?
Message ID:
20121026144114.GA20725@rabbit.us
I've tried in earnest to just not say anything about this topic, given 
the backlash I received last time I spoke up. Yet here I am again, so 
apologies for the noise and blood-pressure fluctuations beforehand.

I am directly CCing a number of people who at least in my eye currently 
(or formerly) comprise "the core of the core". I know most of you read 
the list, but it felt more complete that way ;)

I will start with the TL;DR - I can not fathom why given Perl's 
*exceptional* modularization track record, the general tendency on p5p 
still is "MOAR CORE FEATURES!!!". I also do not understand how does this 
sentiment continue to survive given an overwhelming mass of core devs 
opposing such experiments (I do substantiate this claim - keep reading).

So, now the longer version. What continuously keeps bugging me is that 
the brilliant strategy championed by Obra (Jesse Vincent) almost 4 years 
ago turned out to be nothing more than a couple of well executed 
presentations (not his fault). It has been 4 years, and still precious 
time is spent discussing how to cram yet another *very* controversial 
and complex piece of syntax directly into the core. What happened to the 
“ship it on CPAN and see” mantra? What happened to making perl smaller 
and less complex? Why after smartmatch and $_ localization and 
auto-deref (which has not yet backfired, but it will), is this still 
happening?

Let's focus on sub signatures for a bit. I've read every thread about 
them. Peter Martin's work kicks ass. The speedups are tangible which is 
even more awesome. Yet the whole proposal seems to be set up “It either 
happens in core or it doesn't happen at all”. Why? What prevents the 
core from exposing the correct-level hooks, have *these* hooks unit 
tested, and relegate the syntax extension mucking to CPAN? I do not 
think performance is an issue – after all linked C is linked C. 
Maintainability can't be a problem either – if anything it will be 
awesome to have a well factored boundary that will make a performant 
CPAN module for such extensions possible. Perhaps testing, but with 
CPAN-wide smoking the way we do today, this *also* isn't a problem.

So what is it then? When I spoke up against inclusion of that particular 
feature I got several angry private emails, one of which very explicitly 
scolded me for “discouraging new developers, which are so hard to find”. 
So... does this mean that any contribution to a project *has* to be 
included, only because somebody decided to donate their free time? I 
honestly fail to understand this principle. *Especially* given how 
not-fully-thought-through and experimental the feature in question 
seems, to me it seems reckless to let it anywhere near the core.

Speaking of recklesness – smartmatch is mostly dead for “those in the 
know”, yet we still get (and will be getting for years to come) 
enthusiastic posts like [1]. Think I am doing a chicken little? How many 
of you remember when Switch.pm was deprecated, strike that - REMOVED? 
That's right, 5.13.1, which happened to ship on May 20th 2010. Yet a 
“Learning Perl”-like book[2] by a German IT professor published on July 
1st 2010 *encourages* readers to use the Switch module first released 
with perl 5.10(sic, page 68 to be precise). This is a book which new
german-speaking programmers are likely to get their hands on first.
What now?

Hence why I particularly lament the lack of movement towards Jesse's 
vision. IMNSHO Perl5 does not need *any* extra *syntax* from here on 
out. In fact it stopped needing it around 5.6-ish. No new syntax unless 
there is a massive benefit in adding it, and even then only if it can 
not be done via a CPAN-distributed extension. Besides Reini's work on 
strict types, nothing else currently comes to my mind as a candidate for 
“this *has* to be in core”.

Furthermore, and this is what baffles me most – I do not seem to be 
alone in this sentiment. I am a long-time p5p observer. I do not 
participate in p5p dev directly, and even temporarily stepped away from 
CPAN this past year. Yet I still go to conferences and meet people, some 
of them prominent p5p figures. An overwhelming majority of these folks 
flat out stated in a private conversation that adding more syntax to 
Perl 5 is not the way to go. Even some members of the Moose cabal have 
agreed with me in private that having compile-time acting signatures 
prototyped on CPAN first is the sane way forward. Yet when something of 
such magnitude is brought up to the list, the general response from 
these *same* folks is <crickets>. Furthermore if one reads more into the 
threads gems like the following pop up:

“Even though EVERYONE agrees on the core syntax and EVERYONE wants it”[3]
“People on p5p now have other priorities than optimizations.”[4]
“But the goals for this proposal are only very minorly related to 
optimizations - not because we don't understand them, but because they 
aren't as important to us as things like code clarity.”(also)[4]

I utterly fail to reconcile the liberal use of “everyone” and “we” in 
these statements with the reaction I get from most individuals 
comprising p5p. Note – this is not a personal attack on the authors of 
these quotes. On the contrary this is a “WTF” aimed at the rest of you 
who watch silently by the sidelines, and hence let the madness continue.

Yes, Perl is easier to ship than ever, and yes Perl is progressing 
extremely well when it comes to fixing bugs and general VM improvements 
(special kudos to FC and Nick and Dave and Yves and countless other 
unsung heroes of p5p). Yet when it comes to actually shipping Perl5 – we 
keep shipping a new mini-language just sufficiently different from its 
previous sibling.

Every.
Fucking.
Year.

And the worst part? - it appears that nobody wants the fucking thing 
except for a very very small but very very vocal minority.

Perl5 just turned 18 a week ago (according to a0d0e21ea6e). It is now 
legal to express ones love to this great dynamic language in every way 
possible. What better time to ask where is Perl5 going and why can't it 
stay Perl5?

Peter Rabbitson
Concerned Citizen of the Republic of Perl

[1] http://ldami.blogspot.de/2012/10/rediscovering-smart-match.html
[2] http://www.amazon.de/Der-Perl-Programmierer-Professionell-anwenden-L%C3%B6sungen/dp/3446416889
[3] http://www.nntp.perl.org/group/perl.perl5.porters/2012/09/msg192121.html
[4] http://www.nntp.perl.org/group/perl.perl5.porters/2012/10/msg194455.html

Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About