Perl 5.16 and beyond

Jesse Vincent
Jesse VincentFounder and CEO at Prime Radiant
Perl 5.16 and beyond
Jesse Vincent
jesse@perl.org
@obra
Recovering Perl 6
Project Manager
Recovering Perl 6
Project Manager
Perl 5 Pumpking
Perl 5 Pumpking
Perl 5 Pumpking
Perl 5 Pumpking


     http://flic.kr/p/6StRmB
Perl 5 Pumpking
What's a Pumpking?
BDFL
BDFL
BDFL
I make decisions
(the unpopular ones)
I delegate
(any real work)
I document
(process and policy)
I destress
(other people)
I’m a manager
So, who makes Perl?
Many awesome people
I just stand around
  looking pretty...
...while other people do
     awesome stuff
Is your name in Perl’s
  AUTHORS file?
Are you a
CPAN author?
You rock
You make Perl
The rules of
Perl Club
The REAL rules of
    Perl Club
commit e8cd7eae0498ecc1fd3801fe3160
Author: Gurusamy Sarathy <gsar@cpan.org>
Date:   Sun Oct 10 23:48:07 1999 +0000

add perlhack.pod from Nathan Torkington
<gnat@frii.com>
That predates
 Damian’s talk
Yes, I know he’s
   capable of
 time travel
Rule 1
Larry is always
 right about how
Perl should behave
Rule 2
Larry is allowed to
 change his mind
about any matter
 at a later date...
...regardless
   of whether
 he previously
invoked Rule 1
I’m not Larry
I’m nowhere
 near as clever
My shirts are
nowhere near
  as loud
My shirts are
nowhere near
  as loud
The rules aren’t
just for Larry
The rules aren’t
just for the Pumpking
The rules also apply
 to the Perl 5 core.
What?
Rule 1
Perl is always right!
(TMTOWTDI)
Rule 2
The Perl 5 core
is allowed to...
change its mind?
Changing our
minds is easy
We are very
 good at it
Not flailing wildly when
we do has been hard
...and leads to
  problems
at least I haven’t
  heard this
   in a while...
Perl is Dead !
Perl is Dead !1!!
Perl is Dead !1!!one!
What I’ve been
hearing lately...
Where are we going?
It’s changing too fast.
Can you slow down?
You made regexes
crazier? /$#@!/l?
smartmatch isn’t
named correctly...
we should call it
 psychoticmatch
Now that it’s undead,
can we rename it?
I’ve been accused
     of lacking a
vision for Perl 5
What I lack




is a flame-proof suit
              http://en.wikipedia.org/wiki/File:Dance_Dance_Immolation.jpg
What I lack
          pe
              rl5
                  -po
                        rt
                           e       rs


is a flame-proof suit
                      http://en.wikipedia.org/wiki/File:Dance_Dance_Immolation.jpg
If I’d talked about my
vision 2 years ago...
You would have
laughed at me
Improving Perl 5
did not matter
We couldn’t even
put out a new release
In the past year...
Five
 Stable
Releases
A dozen
development
  releases
In metric, that’s
1.2×10  1 releases
Perl 5.14.1 is the
current stable
release of Perl 5
It came out in June
...as did Perl 5.12.4
..as did Perl 5.15.0
(all of them came out
 the same week)
It used to take us
3 weeks to prepare
       a release
We made the
Pumpking do it
Now it takes
less than a day
The 43 step process is
   documented
We have rotating
release engineers
Many of them are
new committers
Release engineers
need commit bits
Since the switch to git,
we’ve nearly doubled
  our committer list
The world
hasn’t ended
Some of those release
engineers have become
 prolific contributors
Now that
releases
are easy...
A Vision for Perl 5
New versions of Perl 5
should not break
your existing software
Old syntax and
     semantics
 must not stop
Perl 5 from evolving
We need to be able to
 make mistakes
 as we rebuild Perl 5
We will
   make mistakes
as we rebuild Perl 5
We have
  made mistakes
as we’ve rebuilt Perl 5
We need to be able to
recover from mistakes
  as we rebuild Perl 5
The runtime is
too big and must be
   slimmed down
Perl should have
sane defaults
We need to be able to
 recover from last
year’s “sane defaults”
It should be possible
   to build more of
  Perl 5 in Perl 5
Perl should run
everywhere
Rule 2:
Perl is allowed to
 change its mind
That’s already true
That hurts programs
  and programmers
When your code runs,
 you have no idea
what semantics it’ll see
use v5.14;
“Can I have a Perl that’s
  5.14 or newer?”
“Anything newer than
  5.14.0 would be
      great!”
“Ok. I’m 5.30.
  Have fun!”
That is not useful
It needs to change
From now on, declare
  the version of Perl 5
      you expect
use v5.16;
“I want a Perl 5 that
works like 5.16”
The runtime should
honor that request
Perl should give you
semantics as close as
possible to what you
         request
New features
should not work
under ‘use v5.$older;’
It’s critical that we be
     able to evolve
We need an
escape hatch
We need
Rule 2
If you declare an old
 version, you get old
  syntax and semantics
...at least to the
best of our abilities
Perfection is
not possible
We can get far closer
  than we do now
Breaking existing
 code should be
 a last resort
In limited
circumstances we will
    break backward
     compatibility
Some craziness can’t be
fixed in an “optional”
    or lexical way
This is going to be
  hard work
A lot of hard work
It’s not impossible
Deprecation
Our current
deprecation cycle
   is 1 year
“It warns in 5.16.0”
“It’s gone in 5.18.0”
That’s turning out
to be too short
Very few operating
systems release that
     frequently
Declare by default
 means we can make
some changes sooner
If it still works in
 old code, we get to
  change it with no
deprecation cycle
Some misfeatures
need to come out
lest they block major
    improvements
If we can’t emulate
 an old feature for old
code, we get a longer
 deprecation cycle
“It dies in code that
declares ‘use v5.16’”
“It warns in older
  code on 5.16.0”
“It still warns in old
   code on 5.18.0”
“It’s gone in 5.20.0”
Rule 2 and
Old Modules
We haven’t just been
deprecating and yanking
 broken old features
We’ve been doing the
same to old modules
They all end up
  on CPAN
This hurts users who
   wrote code with
“no non-core deps”
We need to make it
easier to ship two
 flavors of Perl 5
Hotel California
Last thing I remember, I was
Running for the door
I had to find the passage back
To the place I was before
’relax,’ said the night man,
We are programmed to receive.
You can checkout any time you like,
But you can never leave!
aka Traditional Perl
The Times,They
Are A-Changin’
The line it is drawn
The curse it is cast
The slow one now
Will later be fast
As the present now
Will later be past
The order is rapidly fadin’
And the first one now will later be last
For the times they are a-changin’
aka Bootstrappable Perl
There’s work going on
  to make this easier
Perl is a big language
There are bigger
    languages
It's harder to manage
      a big language
It’s harder to learn
     a big language
It’s harder to fix bugs in
       a big language
We’re ok, but not
amazing at core
language dev
As a community, we’re
awesome at modules
How do we make Perl
a smaller language?
It’s possible to load
modules that inject
     new builtins
It’s possible to load
modules that inject
     old builtins
Time to start...
...refactoring
Lots of stuff in perl isn't
  necessarily part of
 Perl 5 the language
This stuff is part of
Perl 5 the chainsaw
I like our chainsaw
I’m not talking about
 deprecating this stuff
...just about
decoupling it
SysV IPC functions
Socket IO functions
Unix user & group
information functions
Unix network
information functions
Process and process
  group functions
Formats
smartmatch
...and probably a bunch
      of other stuff
If you don’t ‘use v5.16’,
you’ll get whatever was
         in 5.14.
The implementation of
   SysV might be a
      module
As a Perl 5 user you
 won’t need to care
..and shouldn’t
 be able to tell
In the future we might
fix a bug or two in the
   modularized code
You could take the
   update without
having to upgrade all of
         Perl 5
Someday we might
remove things from the
   default runtime
Every feature we
externalize reclaims
precious memory
Every feature we
externalize reclaims
 precious sanity
That just means you’ll
 need to declare you
want an older feature
...but only if you
   ask for v5.16
...but only if you
   ask for v5.18
...but only if you
   ask for v5.20
Existing code
won’t break
There are many, many
   unanswered
     questions
But it’s doable
I have proof!
Case study:
Smartmatch
After YAPC::NA RJBS
(and others) raised the
  issue of smartmatch
Perl has a history of
 borrowing from
  other languages
Perl has a history of
  thieving from
  other languages
We stole
smartmatch
from Perl 6
It’s very clever
It’s very clever
It’s nearly
impossible to
  explain
It’s nearly
impossible to
understand
RJBS proposed a saner,
 much less clever,
     smart match
I don’t want to break
existing code that
  uses “smartmatch”
Jesse Luehrs (DOY)
was sitting in the back
  of my YAPC talk
All guys named
Jesse are crazy
He...
...threw himself
   at the problem
He extracted
smartmatch into
 an XS module
He reimplemented it
entirely in pure perl
It’s slower, but it’s
understandable
     and hackable
He implemented
Ricardo’s saner smart
match as an alternative
I’m hoping that
 5.16 ships DOY’s
    smartmatch
implementations
'use v5.16;' should
load the new one in
     your scope
'use v5.14;' should
 load the old one in
     your scope
no “use v5.x;” line
 should load the old
  one in your scope.
We need a module
hierarchy for such
   things in core
The Test Suite
(Keeping us honest)
We have an
amazing
 test suite
Over time, we need to
 tease apart (at least)
   3 kinds of tests
Language tests
Bug-fix tests
Implementation
     tests
To hold us to the
compatibility promises
 we make, we need a
 new test harness
“Run the test suites
  we shipped with all
previous releases...”
We've been moving
    pretty fast
We’ve done some
   things I...
would not
do again
I’m going to be a lot
more skeptical about
   new features
...at least ones that
don’t make it easier to
 have fewer features
We should have
sane defaults
There’s lots of crazy
      in Perl 5
Syntactic Crazy
Semantic Crazy
Internal Crazy
Module Crazy
It may be time to
consider doing away
  with some of that
We’ve started
down this road
“use v5.12”
   includes
“use strict;”
Where do we
 go next?
warnings on
 by default
autodie-esque
   defaults
autodie does good
   for your code
using deep, scary evil
I will not show
  you the evil
Ask Paul Fenwick
You’re safe today.
  He’s not here
We should throw
exceptions rather
 than just return on
        failure
I don’t want us to
   bikeshed an
exception hierarchy
Heck, I’d be happy if we
started with dying with
 well-defined strings
(I’d love an exception hierarchy)
2-arg open()
gone by default
1-arg open()
gone by default
No more ' package
   separator
Latin-1
autopromote
 off by default
utf-8 everything
     by default
A clean, simple
meta-model
 with classes
and methods
No indirect object
 syntax by default
But only if you declare
     “use v5.16”
But only if you declare
     “use v5.18”
But only if you declare
     “use v5.20”
Perl needs to be
cleaner, simpler
   and easier
   to work with
For users...
...and for
implementers
Perl should run
everywhere
Not just on every
kind of hardware
Not just on every
Operating System
Every VM
Every Browser
Every Phone
Why isn’t Perl 5 on
other runtimes?
“There’s no spec”
That didn’t stop Ruby
“Only Perl 5 can
  parse Perl 5”
That didn't stop PPI
To survive, a desperate
 hacker needs to be able
to reimplement Perl 5
Thanks!
How do we make this
  happen faster?
Perl 5 Maint Fund
perlfoundation.org
Questions/Tomatoes?
http://blog.fsck.com
jesse@perl.org
@obra
So, you want
 to change
the name?
To something like
    Perl 7?
Or Raptor?
Our language
  is called
   Perl 5
Perl 6 is our
 precocious
  kid sister
I’m happy to talk about
  renaming Perl 5...
...if you write me a
second implementation
...that passes the
     test suite
1 of 302

Recommended

Perl 7, the story of by
Perl 7, the story ofPerl 7, the story of
Perl 7, the story ofAndrew Shitov
3.9K views65 slides
Perl 5.16 and Beyond - YAPC::Asia 2011 by
Perl 5.16 and Beyond - YAPC::Asia 2011Perl 5.16 and Beyond - YAPC::Asia 2011
Perl 5.16 and Beyond - YAPC::Asia 2011Jesse Vincent
1.6K views254 slides
떠먹는 '오브젝트' Ch05 책임 할당하기 by
떠먹는 '오브젝트' Ch05 책임 할당하기떠먹는 '오브젝트' Ch05 책임 할당하기
떠먹는 '오브젝트' Ch05 책임 할당하기Covenant Ko
954 views35 slides
떠먹는 '오브젝트' Ch04 설계 품질과 트레이드오프 by
떠먹는 '오브젝트' Ch04 설계 품질과 트레이드오프떠먹는 '오브젝트' Ch04 설계 품질과 트레이드오프
떠먹는 '오브젝트' Ch04 설계 품질과 트레이드오프Covenant Ko
981 views21 slides
Alternate languages for the CLR by
Alternate languages for the CLRAlternate languages for the CLR
Alternate languages for the CLROnorioCatenacci
410 views18 slides
Why I stopped worrying and loved PHP | Codesushi - Krakow 2017 by
Why I stopped worrying and loved PHP | Codesushi - Krakow 2017Why I stopped worrying and loved PHP | Codesushi - Krakow 2017
Why I stopped worrying and loved PHP | Codesushi - Krakow 2017Krzysztof (Chris) Ozog
203 views10 slides

More Related Content

What's hot

떠먹는 '오브젝트' Ch02 객체지향 프로그래밍 by
떠먹는 '오브젝트' Ch02 객체지향 프로그래밍떠먹는 '오브젝트' Ch02 객체지향 프로그래밍
떠먹는 '오브젝트' Ch02 객체지향 프로그래밍Covenant Ko
1K views31 slides
Idiomatic R for Rosetta Code (2013) by
Idiomatic R for Rosetta Code (2013)Idiomatic R for Rosetta Code (2013)
Idiomatic R for Rosetta Code (2013)Peter Kofler
1.5K views15 slides
TDD as if You Meant It (2013) by
TDD as if You Meant It (2013)TDD as if You Meant It (2013)
TDD as if You Meant It (2013)Peter Kofler
2.1K views18 slides
Code Retreat Graz, Austria 2013 by
Code Retreat Graz, Austria 2013Code Retreat Graz, Austria 2013
Code Retreat Graz, Austria 2013Peter Kofler
1.4K views17 slides
Golang and Domain Specific Languages - Lorenzo Fontana - Codemotion Rome 2017 by
Golang and Domain Specific Languages - Lorenzo Fontana - Codemotion Rome 2017Golang and Domain Specific Languages - Lorenzo Fontana - Codemotion Rome 2017
Golang and Domain Specific Languages - Lorenzo Fontana - Codemotion Rome 2017Codemotion
1.1K views29 slides
Clean Manifests with Puppet::Tidy by
Clean Manifests with Puppet::TidyClean Manifests with Puppet::Tidy
Clean Manifests with Puppet::TidyPuppet
4.5K views51 slides

What's hot(13)

떠먹는 '오브젝트' Ch02 객체지향 프로그래밍 by Covenant Ko
떠먹는 '오브젝트' Ch02 객체지향 프로그래밍떠먹는 '오브젝트' Ch02 객체지향 프로그래밍
떠먹는 '오브젝트' Ch02 객체지향 프로그래밍
Covenant Ko1K views
Idiomatic R for Rosetta Code (2013) by Peter Kofler
Idiomatic R for Rosetta Code (2013)Idiomatic R for Rosetta Code (2013)
Idiomatic R for Rosetta Code (2013)
Peter Kofler1.5K views
TDD as if You Meant It (2013) by Peter Kofler
TDD as if You Meant It (2013)TDD as if You Meant It (2013)
TDD as if You Meant It (2013)
Peter Kofler2.1K views
Code Retreat Graz, Austria 2013 by Peter Kofler
Code Retreat Graz, Austria 2013Code Retreat Graz, Austria 2013
Code Retreat Graz, Austria 2013
Peter Kofler1.4K views
Golang and Domain Specific Languages - Lorenzo Fontana - Codemotion Rome 2017 by Codemotion
Golang and Domain Specific Languages - Lorenzo Fontana - Codemotion Rome 2017Golang and Domain Specific Languages - Lorenzo Fontana - Codemotion Rome 2017
Golang and Domain Specific Languages - Lorenzo Fontana - Codemotion Rome 2017
Codemotion1.1K views
Clean Manifests with Puppet::Tidy by Puppet
Clean Manifests with Puppet::TidyClean Manifests with Puppet::Tidy
Clean Manifests with Puppet::Tidy
Puppet4.5K views
Code Quality Assurance v4 (2013) by Peter Kofler
Code Quality Assurance v4 (2013)Code Quality Assurance v4 (2013)
Code Quality Assurance v4 (2013)
Peter Kofler3.9K views
Elastic search meetup 20/9/2012 by Boaz Leskes
Elastic search meetup 20/9/2012Elastic search meetup 20/9/2012
Elastic search meetup 20/9/2012
Boaz Leskes748 views
GREAT STEP 1. 테스트 코드를 향한 위대한 발걸음 by Covenant Ko
GREAT STEP 1. 테스트 코드를 향한 위대한 발걸음GREAT STEP 1. 테스트 코드를 향한 위대한 발걸음
GREAT STEP 1. 테스트 코드를 향한 위대한 발걸음
Covenant Ko1K views
The Brutal Refactoring Game (2013) by Peter Kofler
The Brutal Refactoring Game (2013)The Brutal Refactoring Game (2013)
The Brutal Refactoring Game (2013)
Peter Kofler1.9K views
C++ is like JavaScript by Patricia Aas
C++ is like JavaScriptC++ is like JavaScript
C++ is like JavaScript
Patricia Aas474 views

Viewers also liked

Lecture 2.2 house of lords by
Lecture 2.2   house of lordsLecture 2.2   house of lords
Lecture 2.2 house of lordsAine O'Doherty
710 views2 slides
Future Armoured Vehicles Eastern Europe by
Future Armoured Vehicles Eastern EuropeFuture Armoured Vehicles Eastern Europe
Future Armoured Vehicles Eastern EuropeIna Luft
587 views6 slides
Tips to lower your electric bill by
Tips to lower your electric billTips to lower your electric bill
Tips to lower your electric billDan Jape
479 views8 slides
Preparing for Probation Review (2012) - Regine Hampel by
Preparing for Probation Review (2012) - Regine HampelPreparing for Probation Review (2012) - Regine Hampel
Preparing for Probation Review (2012) - Regine HampelOUmethods
2.7K views33 slides
Jacobs Mission Critical by
Jacobs Mission CriticalJacobs Mission Critical
Jacobs Mission CriticalSam Larsen
354 views2 slides
HVAC Atlanta Checklist by
HVAC Atlanta ChecklistHVAC Atlanta Checklist
HVAC Atlanta ChecklistDan Jape
1K views11 slides

Viewers also liked(20)

Future Armoured Vehicles Eastern Europe by Ina Luft
Future Armoured Vehicles Eastern EuropeFuture Armoured Vehicles Eastern Europe
Future Armoured Vehicles Eastern Europe
Ina Luft587 views
Tips to lower your electric bill by Dan Jape
Tips to lower your electric billTips to lower your electric bill
Tips to lower your electric bill
Dan Jape479 views
Preparing for Probation Review (2012) - Regine Hampel by OUmethods
Preparing for Probation Review (2012) - Regine HampelPreparing for Probation Review (2012) - Regine Hampel
Preparing for Probation Review (2012) - Regine Hampel
OUmethods2.7K views
Jacobs Mission Critical by Sam Larsen
Jacobs Mission CriticalJacobs Mission Critical
Jacobs Mission Critical
Sam Larsen354 views
HVAC Atlanta Checklist by Dan Jape
HVAC Atlanta ChecklistHVAC Atlanta Checklist
HVAC Atlanta Checklist
Dan Jape1K views
DMAW Keynote: What Nonprofits Can Learn From Food Trucks by Carie Lewis Carlson
DMAW Keynote: What Nonprofits Can Learn From Food TrucksDMAW Keynote: What Nonprofits Can Learn From Food Trucks
DMAW Keynote: What Nonprofits Can Learn From Food Trucks
RESULTADO FINAL NAS PROVAS OBJETIVAS Ronda 2012 by Antonny Clark
RESULTADO FINAL NAS PROVAS OBJETIVAS Ronda 2012RESULTADO FINAL NAS PROVAS OBJETIVAS Ronda 2012
RESULTADO FINAL NAS PROVAS OBJETIVAS Ronda 2012
Antonny Clark30K views
Presentación puravera territorio10 by Roy Ortiz
Presentación puravera territorio10Presentación puravera territorio10
Presentación puravera territorio10
Roy Ortiz452 views
Rio34.1 tempos e classificaçao.xls (nova joao) by Jefferson Sestaro
Rio34.1   tempos e classificaçao.xls  (nova joao)Rio34.1   tempos e classificaçao.xls  (nova joao)
Rio34.1 tempos e classificaçao.xls (nova joao)
Jefferson Sestaro439 views
Financial Discovery in Commercial Litigation by Diane Kilcoyne
Financial Discovery in Commercial LitigationFinancial Discovery in Commercial Litigation
Financial Discovery in Commercial Litigation
Diane Kilcoyne269 views
November 2015 - The need to modernize Brazilian industry by FGV Brazil
November 2015 - The need to modernize Brazilian industryNovember 2015 - The need to modernize Brazilian industry
November 2015 - The need to modernize Brazilian industry
FGV Brazil1.2K views
Caso AGENDAS DE NADINE HEREDIA informe final comisión de fiscalización CGR by Henry Zevallos
Caso AGENDAS DE NADINE HEREDIA informe final comisión de fiscalización CGRCaso AGENDAS DE NADINE HEREDIA informe final comisión de fiscalización CGR
Caso AGENDAS DE NADINE HEREDIA informe final comisión de fiscalización CGR
Henry Zevallos3.6K views
Curso de-argumentación-secundarias-técnicas-y-generales by Manuel Sanz
Curso de-argumentación-secundarias-técnicas-y-generalesCurso de-argumentación-secundarias-técnicas-y-generales
Curso de-argumentación-secundarias-técnicas-y-generales
Manuel Sanz568 views
Esne 26022010 Brochure by JPStrategy
Esne 26022010 BrochureEsne 26022010 Brochure
Esne 26022010 Brochure
JPStrategy2.7K views
Icaam conference brochure 210mm x 210mm v5 lowres by Cheryl Prior
Icaam conference brochure 210mm x 210mm v5 lowresIcaam conference brochure 210mm x 210mm v5 lowres
Icaam conference brochure 210mm x 210mm v5 lowres
Cheryl Prior1K views

Similar to Perl 5.16 and beyond

Modern Perl for the Unfrozen Paleolithic Perl Programmer by
Modern Perl for the Unfrozen Paleolithic Perl ProgrammerModern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl ProgrammerJohn Anderson
1.2K views68 slides
Frozen Perl 2009 Keynote by
Frozen Perl 2009 KeynoteFrozen Perl 2009 Keynote
Frozen Perl 2009 KeynoteAndy Lester
8.6K views77 slides
Infrastructure as code might be literally impossible part 2 by
Infrastructure as code might be literally impossible part 2Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2ice799
2.1K views230 slides
Pugs: A Perl 6 Implementation by
Pugs: A Perl 6 ImplementationPugs: A Perl 6 Implementation
Pugs: A Perl 6 ImplementationAudrey Tang
4.2K views335 slides
Core Hackers of the Caribbean: The Curse of the Black Perl by
Core Hackers of the Caribbean: The Curse of the Black PerlCore Hackers of the Caribbean: The Curse of the Black Perl
Core Hackers of the Caribbean: The Curse of the Black PerlChip Salzenberg
533 views14 slides
Infrastructure as code might be literally impossible by
Infrastructure as code might be literally impossibleInfrastructure as code might be literally impossible
Infrastructure as code might be literally impossibleice799
16.7K views107 slides

Similar to Perl 5.16 and beyond(20)

Modern Perl for the Unfrozen Paleolithic Perl Programmer by John Anderson
Modern Perl for the Unfrozen Paleolithic Perl ProgrammerModern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl Programmer
John Anderson1.2K views
Frozen Perl 2009 Keynote by Andy Lester
Frozen Perl 2009 KeynoteFrozen Perl 2009 Keynote
Frozen Perl 2009 Keynote
Andy Lester8.6K views
Infrastructure as code might be literally impossible part 2 by ice799
Infrastructure as code might be literally impossible part 2Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2
ice7992.1K views
Pugs: A Perl 6 Implementation by Audrey Tang
Pugs: A Perl 6 ImplementationPugs: A Perl 6 Implementation
Pugs: A Perl 6 Implementation
Audrey Tang4.2K views
Core Hackers of the Caribbean: The Curse of the Black Perl by Chip Salzenberg
Core Hackers of the Caribbean: The Curse of the Black PerlCore Hackers of the Caribbean: The Curse of the Black Perl
Core Hackers of the Caribbean: The Curse of the Black Perl
Chip Salzenberg533 views
Infrastructure as code might be literally impossible by ice799
Infrastructure as code might be literally impossibleInfrastructure as code might be literally impossible
Infrastructure as code might be literally impossible
ice79916.7K views
Modern Perl for the Unfrozen Paleolithic Perl Programmer by John Anderson
Modern Perl for the Unfrozen Paleolithic Perl ProgrammerModern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl Programmer
John Anderson768 views
Le PERL est mort by apeiron
Le PERL est mortLe PERL est mort
Le PERL est mort
apeiron2K views
Introduction to Writing Readable and Maintainable Perl (YAPC::EU 2011 Version) by Alex Balhatchet
Introduction to Writing Readable and Maintainable Perl (YAPC::EU 2011 Version)Introduction to Writing Readable and Maintainable Perl (YAPC::EU 2011 Version)
Introduction to Writing Readable and Maintainable Perl (YAPC::EU 2011 Version)
Alex Balhatchet1.2K views
PuppetConf 2014 Killer R10K Workflow With Notes by Phil Zimmerman
PuppetConf 2014 Killer R10K Workflow With NotesPuppetConf 2014 Killer R10K Workflow With Notes
PuppetConf 2014 Killer R10K Workflow With Notes
Phil Zimmerman1.9K views
Old Dogs & New Tricks: What's New With Perl5 This Century by John Anderson
Old Dogs & New Tricks: What's New With Perl5 This CenturyOld Dogs & New Tricks: What's New With Perl5 This Century
Old Dogs & New Tricks: What's New With Perl5 This Century
John Anderson519 views
What's new in Perl 5.12? by acme
What's new in Perl 5.12?What's new in Perl 5.12?
What's new in Perl 5.12?
acme1.7K views
Infrastructure as code might be literally impossible / Joe Domato (packageclo... by Ontico
Infrastructure as code might be literally impossible / Joe Domato (packageclo...Infrastructure as code might be literally impossible / Joe Domato (packageclo...
Infrastructure as code might be literally impossible / Joe Domato (packageclo...
Ontico120 views
You shouldneverdo by daniil3
You shouldneverdoYou shouldneverdo
You shouldneverdo
daniil3157 views
Perl::Lint - Yet Another Perl Source Code Linter by moznion
Perl::Lint - Yet Another Perl Source Code LinterPerl::Lint - Yet Another Perl Source Code Linter
Perl::Lint - Yet Another Perl Source Code Linter
moznion3.3K views
Packaging is the Worst Way to Distribute Software, Except for Everything Else by mckern
Packaging is the Worst Way to Distribute Software, Except for Everything ElsePackaging is the Worst Way to Distribute Software, Except for Everything Else
Packaging is the Worst Way to Distribute Software, Except for Everything Else
mckern1.8K views
Perl Myths 200802 with notes (OUTDATED, see 200909) by Tim Bunce
Perl Myths 200802 with notes (OUTDATED, see 200909)Perl Myths 200802 with notes (OUTDATED, see 200909)
Perl Myths 200802 with notes (OUTDATED, see 200909)
Tim Bunce5.2K views

More from Jesse Vincent

Building a keyboard from scratch by
Building a keyboard from scratchBuilding a keyboard from scratch
Building a keyboard from scratchJesse Vincent
165.6K views158 slides
So, I made a keyboard by
So, I made a keyboardSo, I made a keyboard
So, I made a keyboardJesse Vincent
62.7K views136 slides
Dancing App Stores - Android Open 2011 by
Dancing App Stores - Android Open 2011Dancing App Stores - Android Open 2011
Dancing App Stores - Android Open 2011Jesse Vincent
1.6K views150 slides
OSCON 2011 - Perl 5.16 and beyond by
OSCON 2011 - Perl 5.16 and beyondOSCON 2011 - Perl 5.16 and beyond
OSCON 2011 - Perl 5.16 and beyondJesse Vincent
4.2K views307 slides
RT4 - The whole sordid story by
RT4 - The whole sordid storyRT4 - The whole sordid story
RT4 - The whole sordid storyJesse Vincent
3.1K views265 slides
K-9 Mail for Android by
K-9 Mail for AndroidK-9 Mail for Android
K-9 Mail for AndroidJesse Vincent
2.3K views141 slides

More from Jesse Vincent(19)

Building a keyboard from scratch by Jesse Vincent
Building a keyboard from scratchBuilding a keyboard from scratch
Building a keyboard from scratch
Jesse Vincent165.6K views
So, I made a keyboard by Jesse Vincent
So, I made a keyboardSo, I made a keyboard
So, I made a keyboard
Jesse Vincent62.7K views
Dancing App Stores - Android Open 2011 by Jesse Vincent
Dancing App Stores - Android Open 2011Dancing App Stores - Android Open 2011
Dancing App Stores - Android Open 2011
Jesse Vincent1.6K views
OSCON 2011 - Perl 5.16 and beyond by Jesse Vincent
OSCON 2011 - Perl 5.16 and beyondOSCON 2011 - Perl 5.16 and beyond
OSCON 2011 - Perl 5.16 and beyond
Jesse Vincent4.2K views
RT4 - The whole sordid story by Jesse Vincent
RT4 - The whole sordid storyRT4 - The whole sordid story
RT4 - The whole sordid story
Jesse Vincent3.1K views
P2P Bug Tracking with SD by Jesse Vincent
P2P Bug Tracking with SDP2P Bug Tracking with SD
P2P Bug Tracking with SD
Jesse Vincent3.1K views
SD - A peer to peer issue tracking system by Jesse Vincent
SD - A peer to peer issue tracking systemSD - A peer to peer issue tracking system
SD - A peer to peer issue tracking system
Jesse Vincent30.4K views
Hacking your Kindle (OSCON Lightning Talk) by Jesse Vincent
Hacking your Kindle (OSCON Lightning Talk)Hacking your Kindle (OSCON Lightning Talk)
Hacking your Kindle (OSCON Lightning Talk)
Jesse Vincent3.5K views
Beginning Kindle Hackery by Jesse Vincent
Beginning Kindle HackeryBeginning Kindle Hackery
Beginning Kindle Hackery
Jesse Vincent12.4K views
SD, a P2P bug tracking system by Jesse Vincent
SD, a P2P bug tracking systemSD, a P2P bug tracking system
SD, a P2P bug tracking system
Jesse Vincent13.6K views
Prophet - Beijing Perl Workshop by Jesse Vincent
Prophet - Beijing Perl WorkshopProphet - Beijing Perl Workshop
Prophet - Beijing Perl Workshop
Jesse Vincent1K views
Beijing Perl Workshop 2008 Hiveminder Secret Sauce by Jesse Vincent
Beijing Perl Workshop 2008 Hiveminder Secret SauceBeijing Perl Workshop 2008 Hiveminder Secret Sauce
Beijing Perl Workshop 2008 Hiveminder Secret Sauce
Jesse Vincent1.2K views
A brief introduction to RTIR by Jesse Vincent
A brief introduction to RTIRA brief introduction to RTIR
A brief introduction to RTIR
Jesse Vincent3.1K views
An introduction to RTIR by Jesse Vincent
An introduction to RTIRAn introduction to RTIR
An introduction to RTIR
Jesse Vincent1.3K views
Prophet: a path out of the Cloud by Jesse Vincent
Prophet: a path out of the CloudProphet: a path out of the Cloud
Prophet: a path out of the Cloud
Jesse Vincent1.3K views
Hiveminder - Everything but the Secret Sauce by Jesse Vincent
Hiveminder - Everything but the Secret SauceHiveminder - Everything but the Secret Sauce
Hiveminder - Everything but the Secret Sauce
Jesse Vincent2.9K views
Prophet - A peer to peer replicated disconnected database by Jesse Vincent
Prophet - A peer to peer replicated disconnected databaseProphet - A peer to peer replicated disconnected database
Prophet - A peer to peer replicated disconnected database
Jesse Vincent4.4K views

Recently uploaded

AMAZON PRODUCT RESEARCH.pdf by
AMAZON PRODUCT RESEARCH.pdfAMAZON PRODUCT RESEARCH.pdf
AMAZON PRODUCT RESEARCH.pdfJerikkLaureta
15 views13 slides
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV by
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTVSplunk
88 views20 slides
Future of Learning - Khoong Chan Meng by
Future of Learning - Khoong Chan MengFuture of Learning - Khoong Chan Meng
Future of Learning - Khoong Chan MengNUS-ISS
33 views7 slides
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu... by
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...NUS-ISS
37 views54 slides
STPI OctaNE CoE Brochure.pdf by
STPI OctaNE CoE Brochure.pdfSTPI OctaNE CoE Brochure.pdf
STPI OctaNE CoE Brochure.pdfmadhurjyapb
12 views1 slide
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Safe Software
225 views86 slides

Recently uploaded(20)

AMAZON PRODUCT RESEARCH.pdf by JerikkLaureta
AMAZON PRODUCT RESEARCH.pdfAMAZON PRODUCT RESEARCH.pdf
AMAZON PRODUCT RESEARCH.pdf
JerikkLaureta15 views
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV by Splunk
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV
Splunk88 views
Future of Learning - Khoong Chan Meng by NUS-ISS
Future of Learning - Khoong Chan MengFuture of Learning - Khoong Chan Meng
Future of Learning - Khoong Chan Meng
NUS-ISS33 views
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu... by NUS-ISS
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...
NUS-ISS37 views
STPI OctaNE CoE Brochure.pdf by madhurjyapb
STPI OctaNE CoE Brochure.pdfSTPI OctaNE CoE Brochure.pdf
STPI OctaNE CoE Brochure.pdf
madhurjyapb12 views
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software225 views
PharoJS - Zürich Smalltalk Group Meetup November 2023 by Noury Bouraqadi
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi120 views
Business Analyst Series 2023 - Week 3 Session 5 by DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10209 views
Perth MeetUp November 2023 by Michael Price
Perth MeetUp November 2023 Perth MeetUp November 2023
Perth MeetUp November 2023
Michael Price15 views
Emerging & Future Technology - How to Prepare for the Next 10 Years of Radica... by NUS-ISS
Emerging & Future Technology - How to Prepare for the Next 10 Years of Radica...Emerging & Future Technology - How to Prepare for the Next 10 Years of Radica...
Emerging & Future Technology - How to Prepare for the Next 10 Years of Radica...
NUS-ISS16 views
AI: mind, matter, meaning, metaphors, being, becoming, life values by Twain Liu 刘秋艳
AI: mind, matter, meaning, metaphors, being, becoming, life valuesAI: mind, matter, meaning, metaphors, being, becoming, life values
AI: mind, matter, meaning, metaphors, being, becoming, life values
Digital Product-Centric Enterprise and Enterprise Architecture - Tan Eng Tsze by NUS-ISS
Digital Product-Centric Enterprise and Enterprise Architecture - Tan Eng TszeDigital Product-Centric Enterprise and Enterprise Architecture - Tan Eng Tsze
Digital Product-Centric Enterprise and Enterprise Architecture - Tan Eng Tsze
NUS-ISS19 views
Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen... by NUS-ISS
Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen...Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen...
Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen...
NUS-ISS28 views
Web Dev - 1 PPT.pdf by gdsczhcet
Web Dev - 1 PPT.pdfWeb Dev - 1 PPT.pdf
Web Dev - 1 PPT.pdf
gdsczhcet55 views
[2023] Putting the R! in R&D.pdf by Eleanor McHugh
[2023] Putting the R! in R&D.pdf[2023] Putting the R! in R&D.pdf
[2023] Putting the R! in R&D.pdf
Eleanor McHugh38 views
.conf Go 2023 - Data analysis as a routine by Splunk
.conf Go 2023 - Data analysis as a routine.conf Go 2023 - Data analysis as a routine
.conf Go 2023 - Data analysis as a routine
Splunk93 views
handbook for web 3 adoption.pdf by Liveplex
handbook for web 3 adoption.pdfhandbook for web 3 adoption.pdf
handbook for web 3 adoption.pdf
Liveplex19 views

Perl 5.16 and beyond

Editor's Notes

  1. \n
  2. Back when I was the p6pm, the logo looked like this.\n
  3. These days, P6 has something more modern and reasonable for a logo\n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. (I learned this trick from DHH)\n
  25. \n
  26. \n
  27. \n
  28. \n
  29. ask for applause for the audience\n
  30. \n
  31. \n
  32. \n
  33. \n
  34. But I suck at photoshop and couldn&amp;#x2019;t put his face on michael j fox&amp;#x2019;s body inside a delorean\n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. This one is EASY\n
  48. \n
  49. \n
  50. \n
  51. \n
  52. No, Perl 5 is not self-aware. That&amp;#x2019;s Perl 6\n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. Cue ghandi quote\n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. This is the first time I&amp;#x2019;ve given a talk since I started pumpkinging where the # didn&amp;#x2019;t change.\n
  80. \n
  81. \n
  82. \n
  83. \n
  84. \n
  85. \n
  86. \n
  87. \n
  88. \n
  89. \n
  90. Side effect:\n\n
  91. \n
  92. \n
  93. \n
  94. \n
  95. \n
  96. \n
  97. \n
  98. \n
  99. *coughsmartmatchcough*\n
  100. \n
  101. \n
  102. \n
  103. Sane defaults will evolve\n
  104. \n
  105. \n
  106. \n
  107. \n
  108. \n
  109. \n
  110. \n
  111. \n
  112. \n
  113. \n
  114. \n
  115. \n
  116. \n
  117. \n
  118. \n
  119. \n
  120. \n
  121. \n
  122. \n
  123. \n
  124. \n
  125. \n
  126. \n
  127. \n
  128. \n
  129. \n
  130. \n
  131. \n
  132. \n
  133. \n
  134. \n
  135. \n
  136. \n
  137. \n
  138. \n
  139. \n
  140. \n
  141. \n
  142. \n
  143. \n
  144. \n
  145. \n
  146. \n
  147. \n
  148. \n
  149. \n
  150. \n
  151. \n
  152. \n
  153. \n
  154. \n
  155. \n
  156. \n
  157. \n
  158. \n
  159. \n
  160. \n
  161. this will contain only what we need to bootstrap the CPAN client.\n
  162. \n
  163. \n
  164. Like our friends in the php community\n
  165. \n
  166. \n
  167. \n
  168. \n
  169. \n
  170. \n
  171. \n
  172. \n
  173. \n
  174. \n
  175. \n
  176. \n
  177. \n
  178. \n
  179. \n
  180. \n
  181. \n
  182. \n
  183. \n
  184. \n
  185. \n
  186. \n
  187. \n
  188. \n
  189. \n
  190. \n
  191. \n
  192. \n
  193. \n
  194. \n
  195. \n
  196. \n
  197. \n
  198. \n
  199. \n
  200. \n
  201. \n
  202. \n
  203. \n
  204. \n
  205. \n
  206. \n
  207. \n
  208. \n
  209. ...but we didn&amp;#x2019;t manage to understand that without a typesystem, it kinda sucks\n
  210. or perhaps I should say...\n
  211. \n
  212. \n
  213. \n
  214. \n
  215. even though it can&amp;#x2019;t be doing possibly right\n
  216. it was an early version of this talk\n
  217. \n
  218. \n
  219. \n
  220. \n
  221. \n
  222. \n
  223. \n
  224. \n
  225. \n
  226. \n
  227. \n
  228. \n
  229. \n
  230. \n
  231. \n
  232. \n
  233. \n
  234. \n
  235. \n
  236. \n
  237. \n
  238. \n
  239. \n
  240. \n
  241. \n
  242. \n
  243. \n
  244. \n
  245. \n
  246. \n
  247. \n
  248. \n
  249. \n
  250. \n
  251. \n
  252. \n
  253. \n
  254. \n
  255. \n
  256. \n
  257. \n
  258. \n
  259. \n
  260. \n
  261. \n
  262. \n
  263. \n
  264. once we&amp;#x2019;ve done that, why don&amp;#x2019;t we....\n
  265. \n
  266. again, this slide was there before damian&amp;#x2019;s talk\n
  267. \n
  268. except where we can&amp;#x2019;t or it would be too insane\n
  269. \n
  270. \n
  271. \n
  272. \n
  273. \n
  274. \n
  275. \n
  276. \n
  277. \n
  278. \n
  279. \n
  280. \n
  281. \n
  282. \n
  283. \n
  284. \n
  285. \n
  286. \n
  287. \n
  288. \n
  289. \n
  290. \n
  291. \n
  292. \n
  293. \n
  294. \n
  295. \n
  296. \n
  297. \n
  298. \n
  299. \n
  300. \n
  301. \n