truths, baseless rumors and bald face lies, any resemblance to reality is purely coincidental I don’t usually rant, and I try to not swear in my talks,.. but this is going to be an exception, so if you are sensitive to swearing or ranting, please leave.
to do this as often as $work/$life allows • and you should too • if you aren’t you are missing out • and perhaps living in a bubble • sorry, back to my point ...
a desert island, isolated, alone in the sea ... sure there are people like me with Moose and miyagawa with Plack and a few others who pilfer from other languages, but most people who spend time outside in another language, ... they dont come back! THEY HAVE ESCAPED!
is also the development community. <space> You see p5p, they have this simultaneous fear of change… and this love of bikeshedding. And I believe the combination of these two leads to a culture of obstructionism. Perl is proud not only of the back compat, but also our speed (in certain areas) and our flexibility (in certain areas), and there are groups and factions within p5p which care about one of the other of those things. They will fight for their reasons, which may be contrary to other groups. The result, bikeshedding. ... let it finish, ... let it finish ... and so bikeshedding is bad mkay. It leaves us with lots of old technical debt,.. speaking of technical debt ...
is also the development community. <space> You see p5p, they have this simultaneous fear of change… and this love of bikeshedding. And I believe the combination of these two leads to a culture of obstructionism. Perl is proud not only of the back compat, but also our speed (in certain areas) and our flexibility (in certain areas), and there are groups and factions within p5p which care about one of the other of those things. They will fight for their reasons, which may be contrary to other groups. The result, bikeshedding. ... let it finish, ... let it finish ... and so bikeshedding is bad mkay. It leaves us with lots of old technical debt,.. speaking of technical debt ...
Host (was: LOLZ) Don’t worry brah, we got this covered!! - KTHNXBYE Only valid use for CGI is simple deployments on low cost servers, and know what, PHP has us beat by a mile here
used to build big systems. People are doing it with Ruby, with Python, shit there are a bunch of hipsters out there doing it in Node.JS (see also: meteor). Perl has a bad rap on this which in some ways is undeserved, but ... it is not entirely undeserved. Which brings me to my next set of slides ...
• really really rea behindlly • really rebehallyind rrealeally behirellay • oh fuck it, if you don't get the joke but at this point we are behind, really behind, ...
• really really rea behindlly • really rebehallyind rrealeally behirellay • oh fuck it, if you don't get the joke • then you've illustrated my point exactly! but at this point we are behind, really behind, ...
is that event based programming is not the same as true threading. POE was great, and in many ways still is, it was nominated the best module of 1999 <space>, it is now 2012 (sorry Rocco, but I don’t think I am telling you anything you don’t already realize yourself).
am forgetting about events, but the reality is that event based programming is not the same as true threading. POE was great, and in many ways still is, it was nominated the best module of 1999 <space>, it is now 2012 (sorry Rocco, but I don’t think I am telling you anything you don’t already realize yourself).
is pretty cool, all about Functional Reactive programming, I highly recommend you check it out. That said, it is still a work in progress and while being built on POE, it does not yet have the stability of POE. And, it still isn’t true threads ... also, little known fact,.. <space> that is a young Rocco
is pretty cool, all about Functional Reactive programming, I highly recommend you check it out. That said, it is still a work in progress and while being built on POE, it does not yet have the stability of POE. And, it still isn’t true threads ... also, little known fact,.. <space> that is a young Rocco
not a bad API (not great, but not bad), it doesn’t provide real threads, but with Coro is gets fairly close. But I can’t honestly recommend it, <space> because as a project, it is so surrounded by controversy and bitterness that its stability is questionable at best.
actually not a bad API (not great, but not bad), it doesn’t provide real threads, but with Coro is gets fairly close. But I can’t honestly recommend it, <space> because as a project, it is so surrounded by controversy and bitterness that its stability is questionable at best.
a popular choice of late, and there is a secret cabal working on what they called “the Plack of Event Programming”. But the reality of the situation is that we are not addressing a base need ... which is decent language level support for multiprogramming
out there, IO::Async is a popular choice of late, and there is a secret cabal working on what they called “the Plack of Event Programming”. But the reality of the situation is that we are not addressing a base need ... which is decent language level support for multiprogramming
some other modules out there, IO::Async is a popular choice of late, and there is a secret cabal working on what they called “the Plack of Event Programming”. But the reality of the situation is that we are not addressing a base need ... which is decent language level support for multiprogramming
want it? Now there are some other modules out there, IO::Async is a popular choice of late, and there is a secret cabal working on what they called “the Plack of Event Programming”. But the reality of the situation is that we are not addressing a base need ... which is decent language level support for multiprogramming
want it? hmm, like 5-10 years ago actually, but at this point really I would take anything, what have you got? Now there are some other modules out there, IO::Async is a popular choice of late, and there is a secret cabal working on what they called “the Plack of Event Programming”. But the reality of the situation is that we are not addressing a base need ... which is decent language level support for multiprogramming
@_ and subroutine signatures, ... do you know any other language that doesn’t have proper subroutine signatures? Lets stop for a second and examine the 3 oldest programming languages out there.
5.000b3d 1994-Sep-27 5.000b3e 1994-Sep-28 5.000b3f 1994-Sep-30 5.000b3g 1994-Oct-04 Andy 5.000b3h 1994-Oct-07 Larry? 5.000gamma 1994-Oct-13? Larry 5.000 1994-Oct-17 Andy 5.000a 1994-Dec-19 5.000b 1995-Jan-18 5.000c 1995-Jan-18 lets take a quick look here at the history of OOP in Perl. Perl 5 is when we got objects, that was in Oct of 1994. That is almost almost 18 years ago ...
in 1994, Java was not yet in Alpha. It wasn’t until 1996 (little over one year later) that the JDK hit 1.0, and then not until 1997 (about 2.5 years) before the JDK 1.1 came out (which is largely considered the first usable one). Keep this in mind, I will come back to this ...
some perspective in place here, in 1994, Java was not yet in Alpha. It wasn’t until 1996 (little over one year later) that the JDK hit 1.0, and then not until 1997 (about 2.5 years) before the JDK 1.1 came out (which is largely considered the first usable one). Keep this in mind, I will come back to this ...
Now I want to put some perspective in place here, in 1994, Java was not yet in Alpha. It wasn’t until 1996 (little over one year later) that the JDK hit 1.0, and then not until 1997 (about 2.5 years) before the JDK 1.1 came out (which is largely considered the first usable one). Keep this in mind, I will come back to this ...
JDK 1.1 (February 19, 1997) Now I want to put some perspective in place here, in 1994, Java was not yet in Alpha. It wasn’t until 1996 (little over one year later) that the JDK hit 1.0, and then not until 1997 (about 2.5 years) before the JDK 1.1 came out (which is largely considered the first usable one). Keep this in mind, I will come back to this ...
we were there early on, we would be innovating and evolving and really pushing the boundaries of OOP. So I have compiled a list of new OOP releated features that Perl has gotten since 1994.
given that we were there early on, we would be innovating and evolving and really pushing the boundaries of OOP. So I have compiled a list of new OOP releated features that Perl has gotten since 1994.
would think, given that we were there early on, we would be innovating and evolving and really pushing the boundaries of OOP. So I have compiled a list of new OOP releated features that Perl has gotten since 1994.
• RMI (remote method invocation) • generics (type parameterization) • annotations • autoboxing • enumerations Now in contrast, here is Java. Keep in mind that Java is not even that dynamic a language in terms of new features and changes, its pretty slow to move, but here are some of the new features that came out since the initial release that specifically enhance the OOP experience. And keep in mind that many other releases built on and improved these features over the years as well.
try and come up with a MOP for Perl 5 that could be added to the core. (The project is kinda on ice right now, if you want to know why, come buy me a beer and I will tell you.)
is not dead, just look at CPAN" • "Python/Ruby may be cool, but they don't have CPAN" • "I will give up Perl when they pry it from my cold dead CPAN prompt"
npm (Node.JS) • Nuget (.NET) • Hackage (Haskell) There are other nice systems out there, sure they might not have the number of modules (although how much of CPAN is pure shit, really), and they might not have the infrastructure (testers, etc), it is only a matter of time until they do. To put it simply, we’ve made plenty of mistakes, so they don’t have to.
old pile of very complex C code written by multiple authors and which has to maintain bug for bug compatibility with any random 25 year old codebases? The old code base is just too insane and unwieldy. At this point there are maybe 2 people (Nicholas Clark and Dave Mitchell (perhaps Father C)) who know the whole thing, after that it another maybe 10-15 people who can hack certain portions of the code. But seriously ...
old pile of very complex C code written by multiple authors and which has to maintain bug for bug compatibility with any random 25 year old codebases? Oh, and did i mention? You won't be getting paid! (at least not very much) The old code base is just too insane and unwieldy. At this point there are maybe 2 people (Nicholas Clark and Dave Mitchell (perhaps Father C)) who know the whole thing, after that it another maybe 10-15 people who can hack certain portions of the code. But seriously ...
Perl 5 (death and irrelevance), the other is PHP/Ruby/Python/C#/Java/etc. (another job, but no more Perl culture/community), and the third way is Perl 6 (ready by christmas). And I am not alone ...
people to fork perl 11:44 <Nicholas> and demonstrate how easy it is to do it better :-) 11:45 <Nicholas> although I have to assume that this isn't what your talk is about, and I shall have to wait and see 11:45 <Nicholas> I, genuinely, would be very curious to see what happened to a(nother) fork of Perl 5 This was a discussion I had with Nicholas Clark earlier this afternoon after he found my talk abstract on the Perl Oasis site.
Perl 6 is promising, the difference is that I want to do it for Perl 5. Perl 6 is a space age language from the future, I want (we as a community need) an upgrade for our existing language.
grammar Note that this is pretty much what Perl 6 is promising, the difference is that I want to do it for Perl 5. Perl 6 is a space age language from the future, I want (we as a community need) an upgrade for our existing language.
grammar • with a real AST Note that this is pretty much what Perl 6 is promising, the difference is that I want to do it for Perl 5. Perl 6 is a space age language from the future, I want (we as a community need) an upgrade for our existing language.
grammar • with a real AST • and better tooling support Note that this is pretty much what Perl 6 is promising, the difference is that I want to do it for Perl 5. Perl 6 is a space age language from the future, I want (we as a community need) an upgrade for our existing language.
grammar • with a real AST • and better tooling support • A less insane runtime Note that this is pretty much what Perl 6 is promising, the difference is that I want to do it for Perl 5. Perl 6 is a space age language from the future, I want (we as a community need) an upgrade for our existing language.
grammar • with a real AST • and better tooling support • A less insane runtime • proper MOP (everything is an object) Note that this is pretty much what Perl 6 is promising, the difference is that I want to do it for Perl 5. Perl 6 is a space age language from the future, I want (we as a community need) an upgrade for our existing language.
grammar • with a real AST • and better tooling support • A less insane runtime • proper MOP (everything is an object) • slimmer core Note that this is pretty much what Perl 6 is promising, the difference is that I want to do it for Perl 5. Perl 6 is a space age language from the future, I want (we as a community need) an upgrade for our existing language.
grammar • with a real AST • and better tooling support • A less insane runtime • proper MOP (everything is an object) • slimmer core • easy (non-XS) extension mechanism Note that this is pretty much what Perl 6 is promising, the difference is that I want to do it for Perl 5. Perl 6 is a space age language from the future, I want (we as a community need) an upgrade for our existing language.
grammar • with a real AST • and better tooling support • A less insane runtime • proper MOP (everything is an object) • slimmer core • easy (non-XS) extension mechanism • On a modern VM platform Note that this is pretty much what Perl 6 is promising, the difference is that I want to do it for Perl 5. Perl 6 is a space age language from the future, I want (we as a community need) an upgrade for our existing language.
grammar • with a real AST • and better tooling support • A less insane runtime • proper MOP (everything is an object) • slimmer core • easy (non-XS) extension mechanism • On a modern VM platform • JVM / CLR / LLVM / V8 Note that this is pretty much what Perl 6 is promising, the difference is that I want to do it for Perl 5. Perl 6 is a space age language from the future, I want (we as a community need) an upgrade for our existing language.
grammar • with a real AST • and better tooling support • A less insane runtime • proper MOP (everything is an object) • slimmer core • easy (non-XS) extension mechanism • On a modern VM platform • JVM / CLR / LLVM / V8 • cross language sharing Note that this is pretty much what Perl 6 is promising, the difference is that I want to do it for Perl 5. Perl 6 is a space age language from the future, I want (we as a community need) an upgrade for our existing language.
after... well, Larry, ... but when I asked him if he felt that was okay, he was not so sure (I don’t blame him) and he suggested either Curly or maybe Moe. And since Moe sounds so much like Mo and Ingy released at least two modules that sound like Moose, I felt this was a pretty good trollback.
and sane grammar • with a real AST • and better tooling support • A less insane runtime • proper MOP (everything is an object) What is Moe you ask, let me tell you ... (sound familiar)
and sane grammar • with a real AST • and better tooling support • A less insane runtime • proper MOP (everything is an object) • slimmer core What is Moe you ask, let me tell you ... (sound familiar)
and sane grammar • with a real AST • and better tooling support • A less insane runtime • proper MOP (everything is an object) • slimmer core • easy (non-XS) extension mechanism What is Moe you ask, let me tell you ... (sound familiar)
and sane grammar • with a real AST • and better tooling support • A less insane runtime • proper MOP (everything is an object) • slimmer core • easy (non-XS) extension mechanism • On a modern VM platform What is Moe you ask, let me tell you ... (sound familiar)
and sane grammar • with a real AST • and better tooling support • A less insane runtime • proper MOP (everything is an object) • slimmer core • easy (non-XS) extension mechanism • On a modern VM platform • JVM / CLR / LLVM / V8 What is Moe you ask, let me tell you ... (sound familiar)
and sane grammar • with a real AST • and better tooling support • A less insane runtime • proper MOP (everything is an object) • slimmer core • easy (non-XS) extension mechanism • On a modern VM platform • JVM / CLR / LLVM / V8 • cross language sharing What is Moe you ask, let me tell you ... (sound familiar)
nice FP language since they are so nice to write compilers in, like OCaml or Standard ML, <space> but I think on some level that was a mistake that was made in the Pugs project. Haskell was just not accessible enough as a language.
nice FP language since they are so nice to write compilers in, like OCaml or Standard ML, <space> but I think on some level that was a mistake that was made in the Pugs project. Haskell was just not accessible enough as a language.
"World";' throws JShirleyUnimpressedException at <eval> line 0 Then I thought, hey, Javascript is all the rage for runtimes ... <space> but honestly, I wanted to write this in something strongly typed
and its cons. <space> And I actually made some headway on a version in Java. It had a grammar in Antlr and a semi complete runtime, but ultimately I ran into a wall on this one ...
I implemented your dead language in a dead language so you can program a dead language while you program your dead language. Then I thought about Java, which has it’s pros and its cons. <space> And I actually made some headway on a version in Java. It had a grammar in Antlr and a semi complete runtime, but ultimately I ran into a wall on this one ...
shit in Scala <stevan>: Java's type system is just a bitch <genehack>: somewhere, a gphat just got its wings <space> And you know what, Scala is actually pretty Perlish (in that it allows you to shoot off your entire leg if you are not careful).
shit in Scala <stevan>: Java's type system is just a bitch <genehack>: somewhere, a gphat just got its wings <space> And you know what, Scala is actually pretty Perlish (in that it allows you to shoot off your entire leg if you are not careful).
just might work. If nothing more it might produce some kind of spec/test-suite/fire-under-our-collective-asses. And this is not something new,.. in fact, I’ve been talking about this with a number of people for a while now ...