• Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
1,561
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
13
Comments
1
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • \n
  • Back when I was the p6pm, the logo looked like this.\n\nsince then, we’ve, uh, reinvented it\n
  • Back when I was the p6pm, the logo looked like this.\n\nsince then, we’ve, uh, reinvented it\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • I learned this trick from DHH\n
  • \n
  • \n
  • \n
  • \n
  • ask for applause for the audience\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • This one is EASY\n
  • \n
  • \n
  • \n
  • \n
  • No, Perl 5 is not self-aware. That’s Perl 6\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Am I talking too fast?\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Cue ghandi quote\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • This is the first time I’ve given a talk since I started pumpkinging where the # didn’t change.\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Side effect:\n\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • *coughsmartmatchcough*\n
  • \n
  • \n
  • \n
  • Sane defaults will evolve\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • this will contain only what we need to bootstrap the CPAN client.\n
  • \n
  • \n
  • Like our friends in the php community\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • see the recent flamewar on p5p\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • sane defaults will change over time\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • once we’ve done that, why don’t we....\n
  • \n
  • \n
  • \n
  • except where we can’t or it would be too insane\n
  • Stevan Little has proposed his first Map\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Transcript

  • 1. Perl 5.16 and beyondJesse Vincentjesse@perl.org@obra
  • 2. Perl 6 Recovering Perl 6 Project Manager
  • 3. Perl 6 Recovering Perl 6 Project Manager
  • 4. Perl 5Perl 5 Pumpking
  • 5. Perl 5Perl 5 Pumpking
  • 6. Perl 5Perl 5 Pumpking
  • 7. Perl 5Perl 5 Pumpking http://flic.kr/p/6StRmB
  • 8. Perl 5Perl 5 Pumpking
  • 9. ?Whats a Pumpking?
  • 10. BDFL
  • 11. BDFL
  • 12. BDFL
  • 13. I make decisions
  • 14. ( )(the unpopular ones)
  • 15. I delegate
  • 16. ( ) (any real work)
  • 17. I document
  • 18. ( )(process and policy)
  • 19. I destress
  • 20. ( )(other people)
  • 21. I’m a manager
  • 22. Perl ?So, who makes Perl?
  • 23. Many awesome people
  • 24. I just standaroundlookingpretty...
  • 25. ...while other people do awesome stuff
  • 26. Perl AUTHORS ? Is your name in Perl’s AUTHORS file?
  • 27. CPAN ? Are you aCPAN author?
  • 28. You rock
  • 29. PerlYou make Perl
  • 30. PerlThe rules ofPerl Club
  • 31. commit e8cd7eae0498ecc1fd3801fe3160Author: Gurusamy Sarathy <gsar@cpan.org>Date: Sun Oct 10 23:48:07 1999 +0000add perlhack.pod from Nathan Torkington<gnat@frii.com>
  • 32. 1Rule 1
  • 33. Perl Larry is always right about howPerl should behave
  • 34. 2Rule 2
  • 35. Larry is allowed to change his mindabout any matter at a later date...
  • 36. ...regardless of whether he previouslyinvoked Rule 1
  • 37. I’m not Larry
  • 38. I’m nowhere near as clever
  • 39. My shirts arenowhere near as loud
  • 40. My shirts arenowhere near as loud
  • 41. The rules aren’tjust for Larry
  • 42. The rules aren’tjust for the Pumpking
  • 43. Perl 5 The rules also apply to the Perl 5 core.
  • 44. ?What?
  • 45. 1Rule 1
  • 46. PerlPerl is always right!
  • 47. ( ) (TMTOWTDI)
  • 48. 2Rule 2
  • 49. Perl 5The Perl 5 coreis allowed to...
  • 50. ?change its mind?
  • 51. Changing ourminds is easy
  • 52. We are very good at it
  • 53. Not flailing wildly whenwe do has been hard
  • 54. ...and leads to problems
  • 55. at least I haven’t heard this in a while...
  • 56. PerlPerl is Dead !
  • 57. PerlPerl is Dead !1!!
  • 58. PerlPerl is Dead !1!!one!
  • 59. What I’ve beenhearing lately...
  • 60. ?Where are we going?
  • 61. It’s changing too fast.Can you slow down?
  • 62. ? You made regexescrazier? /$#@!/l?
  • 63. smartmatch isn’tnamed correctly...
  • 64. we should call it psychoticmatch
  • 65. ?Now that it’s undead,can we rename it?
  • 66. I’ve been accused of lacking avision for Perl 5
  • 67. WhatI lackis a flame-proof suit http://en.wikipedia.org/wiki/File:Dance_Dance_Immolation.jpg
  • 68. peWhat rl5I lack -po rt e rsis a flame-proof suit http://en.wikipedia.org/wiki/File:Dance_Dance_Immolation.jpg
  • 69. 2 If I’d talked about myvision 2 years ago...
  • 70. You would havelaughed at me
  • 71. Perl 5 Improving Perl 5 did not matter
  • 72. We couldn’t evenput out a new release
  • 73. In the past year...
  • 74. 5 Five StableReleases
  • 75. 1 A dozendevelopment releases
  • 76. Perl 5.14.2Perl 5.14.2 is thecurrent stablerelease of Perl 5
  • 77. 9It came out inSeptember
  • 78. 3 It used to take us3 weeks to prepare a release
  • 79. We made thePumpking do it
  • 80. 1 Now it takesless than a day
  • 81. 43 The 43 step process is documented
  • 82. We have rotatingrelease engineers
  • 83. Many of them arenew committers
  • 84. Release engineersneed commit bits
  • 85. git Since the switch to git, we’ve nearly doubled our committer list
  • 86. The worldhasn’t ended
  • 87. Some of those releaseengineers have become prolific contributors
  • 88. Now thatreleasesare easy...
  • 89. Perl 5A Vision for Perl 5
  • 90. New versions of Perl 5should not breakyour existing software
  • 91. Old syntax and semantics must not stopPerl 5 from evolving
  • 92. Perl 5We need to be able to make mistakes as we rebuild Perl 5
  • 93. We will make mistakesas we rebuild Perl 5
  • 94. We have made mistakesas we’ve rebuilt Perl 5
  • 95. We need to be able torecover from mistakes as we rebuild Perl 5
  • 96. The runtime istoo big and must be slimmed down
  • 97. Perl should havesane defaults
  • 98. We need to be able to recover from lastyear’s “sane defaults”
  • 99. Perl 5 Perl 5It should be possible to build more of Perl 5 in Perl 5
  • 100. Perl should runeverywhere
  • 101. 2: Perl Rule 2:Perl is allowed to change its mind
  • 102. That’s already true
  • 103. That hurts programs and programmers
  • 104. When your code runs, you have no ideawhat semantics it’ll see
  • 105. use v5.14;
  • 106. 5.14 Perl ?“Can I have a Perl that’s 5.14 or newer?”
  • 107. 5.14.0 ! “Anything newer than 5.14.0 would be great!”
  • 108. OK 5.30 ! “Ok. I’m 5.30. Have fun!”
  • 109. That is not useful
  • 110. It needs to change
  • 111. Perl 5From now on, declare the version of Perl 5 you expect
  • 112. use v5.16;
  • 113. 5.16 Perl 5 “I want a Perl 5 that works like 5.16”
  • 114. The runtime shouldhonor that request
  • 115. Perl should give yousemantics as close aspossible to what you request
  • 116. New featuresshould not workunder ‘use v5.$older;’
  • 117. It’s critical that we be able to evolve
  • 118. We need anescape hatch
  • 119. We needRule 2
  • 120. If you declare an old version, you get old syntax and semantics
  • 121. ...at least to thebest of our abilities
  • 122. Perfection isnot possible
  • 123. We can get far closer than we do now
  • 124. Breaking existing code should be a last resort
  • 125. In limitedcircumstances we will break backward compatibility
  • 126. Some craziness can’t befixed in an “optional” or lexical way
  • 127. This is going to be hard work
  • 128. A lot of hard work
  • 129. It’s not impossible
  • 130. Deprecation
  • 131. 1 Our currentdeprecation cycle is 1 year
  • 132. 5.16.0 “It warns in 5.16.0”
  • 133. 5.18.0“It’s gone in 5.18.0”
  • 134. That’s turning outto be too short
  • 135. OSVery few operatingsystems release that frequently
  • 136. Declare by default means we can makesome changes sooner
  • 137. If it still works in old code, we get to change it with nodeprecation cycle
  • 138. Some misfeaturesneed to come outlest they block major improvements
  • 139. If we can’t emulate an old feature for oldcode, we get a longer deprecation cycle
  • 140. use v5.16 die “It dies in code thatdeclares ‘use v5.16’”
  • 141. 5.16.0 “It warns in older code on 5.16.0”
  • 142. 5.18.0 “It still warns in old code on 5.18.0”
  • 143. 5.20.0“It’s gone in 5.20.0”
  • 144. 2 Rule 2 andOld Modules
  • 145. We haven’t just beendeprecating and yanking broken old features
  • 146. We’ve been doing thesame to old modules
  • 147. CPANThey all end up on CPAN
  • 148. This hurts users who wrote code with“no non-core deps”
  • 149. 2 Perl 5We need to make iteasier to ship two flavors of Perl 5
  • 150. (Eagles)Hotel California
  • 151. Last thing I remember, I wasRunning for the doorI had to find the passage backTo 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!
  • 152. Perlaka Traditional Perl
  • 153. (Bob Dylan)The Times,TheyAre A-Changin’
  • 154. The line it is drawnThe curse it is castThe slow one nowWill later be fastAs the present nowWill later be pastThe order is rapidly fadin’And the first one now will later be lastFor the times they are a-changin’
  • 155. Perlaka Bootstrappable Perl
  • 156. There’s work going on to make this easier
  • 157. PerlPerl is a big language
  • 158. There are bigger languages
  • 159. Its harder to manage a big language
  • 160. It’s harder to learn a big language
  • 161. It’s harder to fix bugs in a big language
  • 162. We’re ok, but notamazing at corelanguage dev
  • 163. Perl As a community, we’re awesome at modules
  • 164. Perl ?How do we make Perla smaller language?
  • 165. It’s possible to loadmodules that inject new builtins
  • 166. It’s possible to loadmodules that inject old builtins
  • 167. Time to start...
  • 168. ...refactoring
  • 169. Lots of stuff in perl isnt necessarily part of Perl 5 the language
  • 170. Perl 5 This stuff is part of Perl 5 the chainsaw
  • 171. I like our chainsaw
  • 172. I’m not talking about deprecating this stuff
  • 173. ...just aboutdecoupling it
  • 174. SysV IPCSysV IPC functions
  • 175. Socket IOSocket IO functions
  • 176. Unix / Unix user & group information functions
  • 177. Unix Unix networkinformation functions
  • 178. Process and process group functions
  • 179. Formats
  • 180. smartmatch
  • 181. ...and probably a bunch of other stuff
  • 182. use v5.16 5.14If you don’t ‘use v5.16’,you’ll get whatever was in 5.14.
  • 183. SysV The implementation of SysV might be a module
  • 184. As a Perl 5 user you won’t need to care
  • 185. ..and shouldn’t be able to tell
  • 186. In the future we mightfix a bug or two in the modularized code
  • 187. Perl 5 You could take the update without having to upgrade all of Perl 5
  • 188. Someday we mightremove things from the default runtime
  • 189. Every feature weexternalize reclaimsprecious memory
  • 190. Every feature weexternalize reclaims precious sanity
  • 191. That just means you’ll need to declare youwant an older feature
  • 192. v5.16...but only if you ask for v5.16
  • 193. v5.18...but only if you ask for v5.18
  • 194. v5.20...but only if you ask for v5.20
  • 195. Existing codewon’t break
  • 196. There are many, many unanswered questions
  • 197. But it’s doable
  • 198. Perl Weve been moving pretty fast
  • 199. We’ve done some things I...
  • 200. would notdo again
  • 201. I’m going to be a lotmore skeptical about new features
  • 202. ...at least ones thatdon’t make it easier to have fewer features
  • 203. We should havesane defaults
  • 204. Perl 5 There’s lots of crazy in Perl 5
  • 205. Syntactic Crazy
  • 206. Semantic Crazy
  • 207. Internal Crazy
  • 208. Module Crazy
  • 209. It may be time toconsider doing away with some of that
  • 210. We’ve starteddown this road
  • 211. "use v5.12" "use strict;" “use v5.12” includes “use strict;”
  • 212. ?Where do we go next?
  • 213. warningswarnings on by default
  • 214. autodieautodie-esque defaults
  • 215. return We should throwexceptions rather than just return on failure
  • 216. I don’t want us to bikeshed anexception hierarchy
  • 217. Heck, I’d be happy if westarted with dying with well-defined strings
  • 218. ( ) (I’d love an exception hierarchy)
  • 219. 2 open() 2-arg open() gone by default
  • 220. 1 open() 1-arg open() gone by default
  • 221. No more package separator
  • 222. Latin-1 Latin-1 autopromote off by default
  • 223. utf-8utf-8 everything by default
  • 224. A clean, simplemeta-model with classesand methods
  • 225. No indirect object syntax by default
  • 226. "use v5.16"But only if you declare “use v5.16”
  • 227. "use v5.18"But only if you declare “use v5.18”
  • 228. "use v5.20"But only if you declare “use v5.20”
  • 229. Perl Perl needs to be cleaner, simpler and easier to work with
  • 230. For users...
  • 231. ...and forimplementers
  • 232. Perl Perl should run everywhere
  • 233. Not just on everykind of hardware
  • 234. OS Not just on everyOperating System
  • 235. VMEvery VM
  • 236. Every Browser
  • 237. Every Phone
  • 238. Perl 5 ?Why isn’t Perl 5 onother runtimes?
  • 239. “There’s no spec”
  • 240. RubyThat didn’t stop Ruby
  • 241. Perl 5 Perl 5 “Only Perl 5 can parse Perl 5”
  • 242. PPIThat didnt stop PPI
  • 243. Perl 5 To survive, a desperate hacker needs to be ableto reimplement Perl 5
  • 244. Thanks!
  • 245. Super-thanksindividual sponsors!
  • 246. Questions?http://blog.fsck.comjesse@perl.org@obra
  • 247. ?So, you want to changethe name?
  • 248. Perl 7 ?To something like Perl 7?
  • 249. Or Raptor?
  • 250. Perl 5Our language is called Perl 5
  • 251. Perl 6 Perl 6 is our precocious kid sister
  • 252. Perl 5I’m happy to talk about renaming Perl 5...
  • 253. ...if you write me asecond implementation
  • 254. ...that passes the test suite