SlideShare a Scribd company logo
1 of 254
Perl 5.16 and beyond
Jesse Vincent
jesse@perl.org
@obra
Perl 6




   Recovering Perl 6
   Project Manager
Perl 6




   Recovering Perl 6
   Project Manager
Perl 5




Perl 5 Pumpking
Perl 5




Perl 5 Pumpking
Perl 5




Perl 5 Pumpking
Perl 5




Perl 5 Pumpking



          http://flic.kr/p/6StRmB
Perl 5




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
Perl         ?




So, who makes Perl?
Many awesome people
I just stand
around
looking
pretty...
...while other people do
     awesome stuff
Perl AUTHORS               ?




  Is your name in Perl’s
    AUTHORS file?
CPAN   ?




  Are you a
CPAN author?
You rock
Perl




You make Perl
Perl




The 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>
1




Rule 1
Perl



  Larry is always
 right about how
Perl should behave
2




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
Perl 5




  The rules also apply
   to the Perl 5 core.
?




What?
1




Rule 1
Perl




Perl is always right!
(                )




    (TMTOWTDI)
2




Rule 2
Perl 5




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




Perl is Dead !
Perl




Perl is Dead !1!!
Perl




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
pe
What       rl5
I lack         -po
                     rt
                        e       rs



is a flame-proof suit
                   http://en.wikipedia.org/wiki/File:Dance_Dance_Immolation.jpg
2




 If I’d talked about my
vision 2 years ago...
You would have
laughed at me
Perl 5




  Improving Perl 5
 did not matter
We couldn’t even
put out a new release
In the past year...
5



 Five
 Stable
Releases
1



 A dozen
development
  releases
Perl 5.14.2



Perl 5.14.2 is the
current stable
release of Perl 5
9




It came out in
September
3



  It used to take us
3 weeks to prepare
       a release
We made the
Pumpking do it
1




  Now it takes
less than a day
43




 The 43 step process is
    documented
We have rotating
release engineers
Many of them are
new committers
Release engineers
need commit bits
git



 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...
Perl 5




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
Perl 5



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”
Perl 5   Perl 5



It should be possible
   to build more of
  Perl 5 in Perl 5
Perl should run
everywhere
2: Perl



      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;
5.14   Perl      ?




“Can I have a Perl that’s
  5.14 or newer?”
5.14.0                  !



 “Anything newer than
   5.14.0 would be
       great!”
OK    5.30            !




     “Ok. I’m 5.30.
       Have fun!”
That is not useful
It needs to change
Perl 5



From now on, declare
  the version of Perl 5
      you expect
use v5.16;
5.16        Perl 5




  “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
1



  Our current
deprecation cycle
   is 1 year
5.16.0




 “It warns in 5.16.0”
5.18.0




“It’s gone in 5.18.0”
That’s turning out
to be too short
OS


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
'use v5.16'      die




 “It dies in code that
declares ‘use v5.16’”
5.16.0




         “It warns in older
           code on 5.16.0”
5.18.0




    “It still warns in old
       code on 5.18.0”
5.20.0




“It’s gone in 5.20.0”
2




 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
CPAN




They all end up
  on CPAN
This hurts users who
   wrote code with
“no non-core deps”
2    Perl 5



We need to make it
easier to ship two
 flavors of Perl 5
(Eagles)




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!
Perl




aka Traditional Perl
(Bob Dylan)




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’
Perl




aka Bootstrappable Perl
There’s work going on
  to make this easier
Perl




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
Perl




  As a community, we’re
  awesome at modules
Perl
                ?


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
Perl 5




    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




SysV IPC functions
Socket IO




Socket IO functions
Unix    /




   Unix user & group
 information functions
Unix




    Unix network
information functions
Process and process
  group functions
Formats
smartmatch
...and probably a bunch
      of other stuff
'use v5.16'
 5.14


If you don’t ‘use v5.16’,
you’ll get whatever was
         in 5.14.
SysV



  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
Perl 5


  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
v5.16




...but only if you
   ask for v5.16
v5.18




...but only if you
   ask for v5.18
v5.20




...but only if you
   ask for v5.20
Existing code
won’t break
There are many, many
   unanswered
     questions
But it’s doable
Perl




   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
Perl 5




  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"   "use strict;"



        “use v5.12”
          includes
       “use strict;”
?




Where do we
 go next?
warnings




warnings on
 by default
autodie




autodie-esque
   defaults
return


 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    open()




    2-arg open()
    gone by default
1    open()




    1-arg open()
    gone by default
No more ' package
   separator
Latin-1



             Latin-1
          autopromote
           off by default
utf-8




utf-8 everything
     by default
A clean, simple
meta-model
 with classes
and methods
No indirect object
 syntax by default
"use v5.16"




But only if you declare
     “use v5.16”
"use v5.18"




But only if you declare
     “use v5.18”
"use v5.20"




But only if you declare
     “use v5.20”
Perl



    Perl needs to be
  cleaner, simpler
     and easier
     to work with
For users...
...and for
implementers
Perl




       Perl should run
       everywhere
Not just on every
kind of hardware
OS




 Not just on every
Operating System
VM




Every VM
Every Browser
Every Phone
Perl 5       ?


Why isn’t Perl 5 on
other runtimes?
“There’s no spec”
Ruby




That didn’t stop Ruby
Perl 5       Perl 5




  “Only Perl 5 can
    parse Perl 5”
PPI




That didn't stop PPI
Perl 5



 To survive, a desperate
 hacker needs to be able
to reimplement Perl 5
Thanks!
Super-thanks
individual
 sponsors!
Questions?
http://blog.fsck.com
jesse@perl.org
@obra
?



So, you want
 to change
the name?
Perl 7   ?




To something like
    Perl 7?
Or Raptor?
Perl 5



Our language
  is called
   Perl 5
Perl 6



  Perl 6 is our
   precocious
    kid sister
Perl 5




I’m happy to talk about
  renaming Perl 5...
...if you write me a
second implementation
...that passes the
     test suite

More Related Content

What's hot

A Modest Introduction To Swift
A Modest Introduction To SwiftA Modest Introduction To Swift
A Modest Introduction To SwiftJohn Anderson
 
Code Quality Assurance v4 (2013)
Code Quality Assurance v4 (2013)Code Quality Assurance v4 (2013)
Code Quality Assurance v4 (2013)Peter Kofler
 
Emacs verilog-mode is coming to Debian, again
Emacs verilog-mode is coming to Debian, againEmacs verilog-mode is coming to Debian, again
Emacs verilog-mode is coming to Debian, againKiwamu Okabe
 
Concepts of Functional Programming for Java Brains (2010)
Concepts of Functional Programming for Java Brains (2010)Concepts of Functional Programming for Java Brains (2010)
Concepts of Functional Programming for Java Brains (2010)Peter Kofler
 
TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)Peter Kofler
 
The new era of PHP web development.
The new era of PHP web development.The new era of PHP web development.
The new era of PHP web development.Akihito Koriyama
 
Idiomatic R for Rosetta Code (2013)
Idiomatic R for Rosetta Code (2013)Idiomatic R for Rosetta Code (2013)
Idiomatic R for Rosetta Code (2013)Peter Kofler
 
TDD as if You Meant It (2013)
TDD as if You Meant It (2013)TDD as if You Meant It (2013)
TDD as if You Meant It (2013)Peter Kofler
 
떠먹는 '오브젝트' Ch04 설계 품질과 트레이드오프
떠먹는 '오브젝트' Ch04 설계 품질과 트레이드오프떠먹는 '오브젝트' Ch04 설계 품질과 트레이드오프
떠먹는 '오브젝트' Ch04 설계 품질과 트레이드오프Covenant Ko
 
Let's contribute, HTML5Rocks/ko!
Let's contribute, HTML5Rocks/ko!Let's contribute, HTML5Rocks/ko!
Let's contribute, HTML5Rocks/ko!Chang W. Doh
 
Designing Test Cases for the Gilded Rose Kata (2013)
Designing Test Cases for the Gilded Rose Kata (2013)Designing Test Cases for the Gilded Rose Kata (2013)
Designing Test Cases for the Gilded Rose Kata (2013)Peter Kofler
 
Code Retreat Graz, Austria 2013
Code Retreat Graz, Austria 2013Code Retreat Graz, Austria 2013
Code Retreat Graz, Austria 2013Peter Kofler
 
The Brutal Refactoring Game (2013)
The Brutal Refactoring Game (2013)The Brutal Refactoring Game (2013)
The Brutal Refactoring Game (2013)Peter Kofler
 
TAP-Harness + friends
TAP-Harness + friendsTAP-Harness + friends
TAP-Harness + friendsSteve Purkis
 

What's hot (15)

A Modest Introduction To Swift
A Modest Introduction To SwiftA Modest Introduction To Swift
A Modest Introduction To Swift
 
Code Quality Assurance v4 (2013)
Code Quality Assurance v4 (2013)Code Quality Assurance v4 (2013)
Code Quality Assurance v4 (2013)
 
Emacs verilog-mode is coming to Debian, again
Emacs verilog-mode is coming to Debian, againEmacs verilog-mode is coming to Debian, again
Emacs verilog-mode is coming to Debian, again
 
Concepts of Functional Programming for Java Brains (2010)
Concepts of Functional Programming for Java Brains (2010)Concepts of Functional Programming for Java Brains (2010)
Concepts of Functional Programming for Java Brains (2010)
 
TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)
 
The new era of PHP web development.
The new era of PHP web development.The new era of PHP web development.
The new era of PHP web development.
 
Ruby - The Hard Bits
Ruby - The Hard BitsRuby - The Hard Bits
Ruby - The Hard Bits
 
Idiomatic R for Rosetta Code (2013)
Idiomatic R for Rosetta Code (2013)Idiomatic R for Rosetta Code (2013)
Idiomatic R for Rosetta Code (2013)
 
TDD as if You Meant It (2013)
TDD as if You Meant It (2013)TDD as if You Meant It (2013)
TDD as if You Meant It (2013)
 
떠먹는 '오브젝트' Ch04 설계 품질과 트레이드오프
떠먹는 '오브젝트' Ch04 설계 품질과 트레이드오프떠먹는 '오브젝트' Ch04 설계 품질과 트레이드오프
떠먹는 '오브젝트' Ch04 설계 품질과 트레이드오프
 
Let's contribute, HTML5Rocks/ko!
Let's contribute, HTML5Rocks/ko!Let's contribute, HTML5Rocks/ko!
Let's contribute, HTML5Rocks/ko!
 
Designing Test Cases for the Gilded Rose Kata (2013)
Designing Test Cases for the Gilded Rose Kata (2013)Designing Test Cases for the Gilded Rose Kata (2013)
Designing Test Cases for the Gilded Rose Kata (2013)
 
Code Retreat Graz, Austria 2013
Code Retreat Graz, Austria 2013Code Retreat Graz, Austria 2013
Code Retreat Graz, Austria 2013
 
The Brutal Refactoring Game (2013)
The Brutal Refactoring Game (2013)The Brutal Refactoring Game (2013)
The Brutal Refactoring Game (2013)
 
TAP-Harness + friends
TAP-Harness + friendsTAP-Harness + friends
TAP-Harness + friends
 

Viewers also liked

So, I made a keyboard
So, I made a keyboardSo, I made a keyboard
So, I made a keyboardJesse Vincent
 
Building a keyboard from scratch
Building a keyboard from scratchBuilding a keyboard from scratch
Building a keyboard from scratchJesse Vincent
 
P2P Bug Tracking with SD
P2P Bug Tracking with SDP2P Bug Tracking with SD
P2P Bug Tracking with SDJesse Vincent
 
Dancing App Stores - Android Open 2011
Dancing App Stores - Android Open 2011Dancing App Stores - Android Open 2011
Dancing App Stores - Android Open 2011Jesse Vincent
 
OSCON 2011 - Perl 5.16 and beyond
OSCON 2011 - Perl 5.16 and beyondOSCON 2011 - Perl 5.16 and beyond
OSCON 2011 - Perl 5.16 and beyondJesse Vincent
 
RT4 - The whole sordid story
RT4 - The whole sordid storyRT4 - The whole sordid story
RT4 - The whole sordid storyJesse Vincent
 
Web 2.0 is Sharecropping
Web 2.0 is SharecroppingWeb 2.0 is Sharecropping
Web 2.0 is SharecroppingJesse Vincent
 

Viewers also liked (7)

So, I made a keyboard
So, I made a keyboardSo, I made a keyboard
So, I made a keyboard
 
Building a keyboard from scratch
Building a keyboard from scratchBuilding a keyboard from scratch
Building a keyboard from scratch
 
P2P Bug Tracking with SD
P2P Bug Tracking with SDP2P Bug Tracking with SD
P2P Bug Tracking with SD
 
Dancing App Stores - Android Open 2011
Dancing App Stores - Android Open 2011Dancing App Stores - Android Open 2011
Dancing App Stores - Android Open 2011
 
OSCON 2011 - Perl 5.16 and beyond
OSCON 2011 - Perl 5.16 and beyondOSCON 2011 - Perl 5.16 and beyond
OSCON 2011 - Perl 5.16 and beyond
 
RT4 - The whole sordid story
RT4 - The whole sordid storyRT4 - The whole sordid story
RT4 - The whole sordid story
 
Web 2.0 is Sharecropping
Web 2.0 is SharecroppingWeb 2.0 is Sharecropping
Web 2.0 is Sharecropping
 

Similar to Perl 5.16 and Beyond - YAPC::Asia 2011

Le PERL est mort
Le PERL est mortLe PERL est mort
Le PERL est mortapeiron
 
Modern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl ProgrammerModern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl ProgrammerJohn Anderson
 
Frozen Perl 2009 Keynote
Frozen Perl 2009 KeynoteFrozen Perl 2009 Keynote
Frozen Perl 2009 KeynoteAndy Lester
 
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)
Introduction to Writing Readable and Maintainable Perl (YAPC::EU 2011 Version)Alex Balhatchet
 
Modern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl ProgrammerModern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl ProgrammerJohn Anderson
 
Old Dogs & New Tricks: What's New With Perl5 This Century
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 CenturyJohn Anderson
 
Low maintenance perl notes
Low maintenance perl notesLow maintenance perl notes
Low maintenance perl notesPerrin Harkins
 
Pugs: A Perl 6 Implementation
Pugs: A Perl 6 ImplementationPugs: A Perl 6 Implementation
Pugs: A Perl 6 ImplementationAudrey Tang
 
Infrastructure as code might be literally impossible
Infrastructure as code might be literally impossibleInfrastructure as code might be literally impossible
Infrastructure as code might be literally impossibleice799
 
PuppetConf 2014 Killer R10K Workflow With Notes
PuppetConf 2014 Killer R10K Workflow With NotesPuppetConf 2014 Killer R10K Workflow With Notes
PuppetConf 2014 Killer R10K Workflow With NotesPhil Zimmerman
 
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...
Infrastructure as code might be literally impossible / Joe Domato (packageclo...Ontico
 
Core Hackers of the Caribbean: The Curse of the Black Perl
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
 
Infrastructure as code might be literally impossible part 2
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
 
Perl Myths 200802 with notes (OUTDATED, see 200909)
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 Bunce
 
What's new in Perl 5.12?
What's new in Perl 5.12?What's new in Perl 5.12?
What's new in Perl 5.12?acme
 
Packaging is the Worst Way to Distribute Software, Except for Everything Else
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 Elsemckern
 
You shouldneverdo
You shouldneverdoYou shouldneverdo
You shouldneverdodaniil3
 

Similar to Perl 5.16 and Beyond - YAPC::Asia 2011 (20)

Le PERL est mort
Le PERL est mortLe PERL est mort
Le PERL est mort
 
Modern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl ProgrammerModern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl Programmer
 
Frozen Perl 2009 Keynote
Frozen Perl 2009 KeynoteFrozen Perl 2009 Keynote
Frozen Perl 2009 Keynote
 
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)
Introduction to Writing Readable and Maintainable Perl (YAPC::EU 2011 Version)
 
perl
perlperl
perl
 
Modern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl ProgrammerModern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl Programmer
 
Plenv and carton
Plenv and cartonPlenv and carton
Plenv and carton
 
Old Dogs & New Tricks: What's New With Perl5 This Century
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
 
Low maintenance perl notes
Low maintenance perl notesLow maintenance perl notes
Low maintenance perl notes
 
Pugs: A Perl 6 Implementation
Pugs: A Perl 6 ImplementationPugs: A Perl 6 Implementation
Pugs: A Perl 6 Implementation
 
Infrastructure as code might be literally impossible
Infrastructure as code might be literally impossibleInfrastructure as code might be literally impossible
Infrastructure as code might be literally impossible
 
PuppetConf 2014 Killer R10K Workflow With Notes
PuppetConf 2014 Killer R10K Workflow With NotesPuppetConf 2014 Killer R10K Workflow With Notes
PuppetConf 2014 Killer R10K Workflow With Notes
 
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...
Infrastructure as code might be literally impossible / Joe Domato (packageclo...
 
Core Hackers of the Caribbean: The Curse of the Black Perl
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
 
Infrastructure as code might be literally impossible part 2
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
 
Perl Myths 200802 with notes (OUTDATED, see 200909)
Perl Myths 200802 with notes (OUTDATED, see 200909)Perl Myths 200802 with notes (OUTDATED, see 200909)
Perl Myths 200802 with notes (OUTDATED, see 200909)
 
What's new in Perl 5.12?
What's new in Perl 5.12?What's new in Perl 5.12?
What's new in Perl 5.12?
 
Packaging is the Worst Way to Distribute Software, Except for Everything Else
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
 
Php extensions
Php extensionsPhp extensions
Php extensions
 
You shouldneverdo
You shouldneverdoYou shouldneverdo
You shouldneverdo
 

More from Jesse Vincent

K-9 Mail for Android
K-9 Mail for AndroidK-9 Mail for Android
K-9 Mail for AndroidJesse Vincent
 
SD - A peer to peer issue tracking system
SD - A peer to peer issue tracking systemSD - A peer to peer issue tracking system
SD - A peer to peer issue tracking systemJesse Vincent
 
Hacking your Kindle (OSCON Lightning Talk)
Hacking your Kindle (OSCON Lightning Talk)Hacking your Kindle (OSCON Lightning Talk)
Hacking your Kindle (OSCON Lightning Talk)Jesse Vincent
 
Beginning Kindle Hackery
Beginning Kindle HackeryBeginning Kindle Hackery
Beginning Kindle HackeryJesse Vincent
 
SD, a P2P bug tracking system
SD, a P2P bug tracking systemSD, a P2P bug tracking system
SD, a P2P bug tracking systemJesse Vincent
 
Prophet - Beijing Perl Workshop
Prophet - Beijing Perl WorkshopProphet - Beijing Perl Workshop
Prophet - Beijing Perl WorkshopJesse Vincent
 
Beijing Perl Workshop 2008 Hiveminder Secret Sauce
Beijing Perl Workshop 2008 Hiveminder Secret SauceBeijing Perl Workshop 2008 Hiveminder Secret Sauce
Beijing Perl Workshop 2008 Hiveminder Secret SauceJesse Vincent
 
A brief introduction to RTIR
A brief introduction to RTIRA brief introduction to RTIR
A brief introduction to RTIRJesse Vincent
 
An introduction to RTIR
An introduction to RTIRAn introduction to RTIR
An introduction to RTIRJesse Vincent
 
Prophet: a path out of the Cloud
Prophet: a path out of the CloudProphet: a path out of the Cloud
Prophet: a path out of the CloudJesse Vincent
 
Hiveminder - Everything but the Secret Sauce
Hiveminder - Everything but the Secret SauceHiveminder - Everything but the Secret Sauce
Hiveminder - Everything but the Secret SauceJesse Vincent
 
Prophet - A peer to peer replicated disconnected database
Prophet - A peer to peer replicated disconnected databaseProphet - A peer to peer replicated disconnected database
Prophet - A peer to peer replicated disconnected databaseJesse Vincent
 

More from Jesse Vincent (13)

K-9 Mail for Android
K-9 Mail for AndroidK-9 Mail for Android
K-9 Mail for Android
 
Perl 5.12.0
Perl 5.12.0Perl 5.12.0
Perl 5.12.0
 
SD - A peer to peer issue tracking system
SD - A peer to peer issue tracking systemSD - A peer to peer issue tracking system
SD - A peer to peer issue tracking system
 
Hacking your Kindle (OSCON Lightning Talk)
Hacking your Kindle (OSCON Lightning Talk)Hacking your Kindle (OSCON Lightning Talk)
Hacking your Kindle (OSCON Lightning Talk)
 
Beginning Kindle Hackery
Beginning Kindle HackeryBeginning Kindle Hackery
Beginning Kindle Hackery
 
SD, a P2P bug tracking system
SD, a P2P bug tracking systemSD, a P2P bug tracking system
SD, a P2P bug tracking system
 
Prophet - Beijing Perl Workshop
Prophet - Beijing Perl WorkshopProphet - Beijing Perl Workshop
Prophet - Beijing Perl Workshop
 
Beijing Perl Workshop 2008 Hiveminder Secret Sauce
Beijing Perl Workshop 2008 Hiveminder Secret SauceBeijing Perl Workshop 2008 Hiveminder Secret Sauce
Beijing Perl Workshop 2008 Hiveminder Secret Sauce
 
A brief introduction to RTIR
A brief introduction to RTIRA brief introduction to RTIR
A brief introduction to RTIR
 
An introduction to RTIR
An introduction to RTIRAn introduction to RTIR
An introduction to RTIR
 
Prophet: a path out of the Cloud
Prophet: a path out of the CloudProphet: a path out of the Cloud
Prophet: a path out of the Cloud
 
Hiveminder - Everything but the Secret Sauce
Hiveminder - Everything but the Secret SauceHiveminder - Everything but the Secret Sauce
Hiveminder - Everything but the Secret Sauce
 
Prophet - A peer to peer replicated disconnected database
Prophet - A peer to peer replicated disconnected databaseProphet - A peer to peer replicated disconnected database
Prophet - A peer to peer replicated disconnected database
 

Recently uploaded

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 

Recently uploaded (20)

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 

Perl 5.16 and Beyond - YAPC::Asia 2011

Editor's Notes

  1. \n
  2. Back when I was the p6pm, the logo looked like this.\n\nsince then, we&amp;#x2019;ve, uh, reinvented it\n
  3. Back when I was the p6pm, the logo looked like this.\n\nsince then, we&amp;#x2019;ve, uh, reinvented it\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. \n
  25. \n
  26. I learned this trick from DHH\n
  27. \n
  28. \n
  29. \n
  30. \n
  31. ask for applause for the audience\n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. This one is EASY\n
  47. \n
  48. \n
  49. \n
  50. \n
  51. No, Perl 5 is not self-aware. That&amp;#x2019;s Perl 6\n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. Am I talking too fast?\n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. Cue ghandi quote\n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. This is the first time I&amp;#x2019;ve given a talk since I started pumpkinging where the # didn&amp;#x2019;t change.\n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. Side effect:\n\n
  85. \n
  86. \n
  87. \n
  88. \n
  89. \n
  90. \n
  91. \n
  92. \n
  93. *coughsmartmatchcough*\n
  94. \n
  95. \n
  96. \n
  97. Sane defaults will evolve\n
  98. \n
  99. \n
  100. \n
  101. \n
  102. \n
  103. \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. this will contain only what we need to bootstrap the CPAN client.\n
  156. \n
  157. \n
  158. Like our friends in the php community\n
  159. \n
  160. \n
  161. \n
  162. \n
  163. \n
  164. \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. see the recent flamewar on p5p\n
  197. \n
  198. \n
  199. \n
  200. \n
  201. \n
  202. \n
  203. sane defaults will change over time\n
  204. \n
  205. \n
  206. \n
  207. \n
  208. \n
  209. \n
  210. \n
  211. \n
  212. \n
  213. \n
  214. \n
  215. \n
  216. \n
  217. \n
  218. \n
  219. once we&amp;#x2019;ve done that, why don&amp;#x2019;t we....\n
  220. \n
  221. \n
  222. \n
  223. except where we can&amp;#x2019;t or it would be too insane\n
  224. Stevan Little has proposed his first Map\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