Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Perl 5.16 and Beyond - YAPC::Asia 2011

2,294 views

Published on

Published in: Technology

Perl 5.16 and Beyond - YAPC::Asia 2011

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

×