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
-
What happened to the whole "small core" idea?
by Peter Rabbitson