A compelling reason for Perl6
Had a great chat with the Thousand Oaks PerlMongers last night, as an ongoing series of conversations I've been having recently about finding a compelling reason for Perl6.
I was inspired by Larry's Onion talk to continue thinking about the relation of Perl5 and Perl6 (and frankly, me and Stonehenge as well).
First, Perl6 is not "the next Perl5". Perl5 will be alive and well for another decade at least, independently maintained and released. That's happening quite efficiently and effectively already. (Translated: "I will quite possibly be able to continue making money off Perl5 for years to come".)
So, what is Perl6 then? It's a different language. Businesses aren't going to migrate from Perl5 to Perl6, but they will consider Perl6 for a new project, just as if they'd consider Ruby or Python or Grails or Scala or any other language.
What's missing is the equivalent for what Rails did for Ruby: a compelling web framework.
If we had a compelling web framework for Perl6, people would start taking notice. And like Rails, I think we can start by building something to "eat our own dogfood". Perhaps a Perl6 equivalent of Perlmonks or Mediawiki. Whatever it is, it should be an application that will also be able to be used by other communities, so that people will want to start using not only the application, but also the framework.
The framework might be a derivative of Catalyst, or something entirely new that takes advantage of pluggable grammars and DSLs. I don't know.
I know the framework needs tight integration with client-side libraries like jQuery though.
One thing I'd really like to get into such a framework is some sort of coroutine or continuation processing. A recent IRC chat left me a bit disappointed that proper Seaside-style continuations aren't possible with Perl6, but maybe something similar could be created.
Rakudo Star might not be fast enough or complete enough for this at the moment, but if we can organize the development of this framework, we could also be Rakudo's biggest customer in a short while... driving development.
But more importantly, moving Perl6 from "this is an interesting idea" to "this language actually gets things done".
Is it time to start on this? I think so. I'm still wildly brainstorming, so I don't have a lot more to say yet. But maybe you do.
If you are interested in helping me brainstorm this idea, maybe we can set up a mailing list or something. I'm also interested in hearing if pieces of this are already in play, so maybe it's just a matter of coordination.
Nice article, but I disagree on the need to have a web framework with tighter integration with client libraries like Jquery?
I think thats the kind of work to be left to a CMS?
On that note we do need a solid CMS in Perl!
No, jQuery is for far more than a CMS. If you can get tight integration with jQuery and serverside, you can write much stronger apps that blur the distinction between server and client computations, moving them up or down as needed. In fact, we could probably push an entire Javascript interpreter serverside buried in the Perl6 app, so the code could be moved almost dynamically.
Once Rakudo Star supports non-blocking IO, it's likely you'll see a Mojolicious port.
Decade? That's arbitrary and short.
I recently began to appreciate how Mojolicious' bundling of jQuery as well as its Mojo::DOM parser/renderer would be quite helpful in building those dynamically moving apps. I'd like to see the same happening on Perl6 (as soon as what tempire pointed out happens.)
So what was the compelling reason to start Perl 6 as a new language? I think that is a more pertinent question than why as a business even to consider the language for use. Do we have a timetable when even the specification synopses are going to be finished?
I'm not keen on a tight integration with a specific javascript library. What happens when JQuery(which I love) falls out of favor and some Coffeescript derivative appears to become the new "chosen" one?
@Shantanu, there is a solid CMS in perl. It's called WebGUI.
"So, what is Perl6 then? It's a different language."
True.
A great first site would be blogs.perl6.org so we don't have to have posts about a different language on a Perl 5 blog site :)
You're reading this on blogs.perl5.org?
Well it certainly isn't showing up in Planet Perl 6 where it should be. Seriously, why can't we get this straightened out? Is it truly time for a blogs.perl6.org?
@perldreamer
I just checked out WEBGUI. That looks great!
It does need more convenient way to add plugins and extensions. Personally I would like to see a CMS that can remotely download and install new plugins from a repo at the click of a button. The initial installation itself should be free of clutter IMHO.
@chromatic - obviously not - yet...
But we'll have to do something - or every Perl site needs to support two languages?
That would be confusing for many people, and annoying for many more.
It seems everyone is agreed that Perl 6 is a different language, so to me that means it should have it's own forums, sites and infrastructure. (one can of course link between Perl 5 and Perl 6 sites).
I find the occasional mention of another language in a post here interesting, but I wouldn't want even 10% of the posts to be about php. In the same way I wouldn't want 10% of the posts to be about Perl 6, it's not the language that I want to use.
I thought this was "a common blogging platform for the Perl community" and "A blog about the Perl programming language". If Randal wants to write about Perl 6, is he not a part of the Perl community? Is he not writing about the Perl programming language? Did he click through some license whereby he agreed that he would only ever write about Perl 5?
I certainly did no such thing when I signed in to post comments.
As I write this, the newest post on the site is about MySQL. I don't use MySQL so I have little interest in that, but I used my coping skills and just didn't read it. This to me seems a far better strategy than complaining that members of the Perl community write about a Perl programming language that you don't want to use.
(The PHP argument is facile nonsense on its face. Consider the same argument about "Perl" on blogs.algol.org to understand why.)
Regarding the post about MySQL, just imagine if someone was referred here and they were looking for MySQL usage with Perl 6 but the post is about Perl 5. Talk about confusion.
I always come through the root, perl.org which presents me with the announcement that this is "The Perl Programming Language." Just for giggles, clicking on the About link I'm then presented with "Perl 5 is a highly capable..." without a single mention of Perl 6 on that page. Either Perl.org needs a reorginization soon to address a family of languages or we're going to just divide and be conquered losing to other languages.
The Community Websites don't even list Planet Perl 6 but they do still mention the now inactive Planet Perl site.
I've been using Perl for over a decade and even I'm confused why I'd want to learn Perl 6, another language. I'll continue to use Perl(5) for at least another decade but I've also added Go! which is already production quality and has only been around less than 4 years. Ignorance is bliss but Perl is losing mind share and will be in the company of TCL soon if there isn't some clear separation between Perl 5 and Perl 6. Bigger minds than mine have said the same thing.
I love Perl..5!
Hi Folks
I see us talking about Perls 5 and 6 here, and indeed other things in the real world, but I personally want a CPAN for 5 and a separate CPAN for 6, for when I start searching for Perl 6 code (whenever that may be).
Cheers
Ron
Not having a web framework is certainly a reason for not using Perl 6, but that doesn't mean that having one is a reason to use Perl 6.
Unless the framework offered something radically new, that provided advantage over other languages, there's no incentive to move to an unfamiliar language when there's literally a gazillion identikit frameworks out there for whatever language someone is already using.
If I was the guy who had to choose between using a Perl 5 framework, PHP, Ruby on Rails, or choosing a new framework with no track record in an language that also has no track record... I'd go with the mature solution unless there's compelling reason.
I'm not sure that there's anything that Perl 6 brings to the table that would inherently give any framework for it that necessary compelling reason over what could be written in another language.
Of course, I'm not a Perl 6 expert, maybe there is something that fits that bill.
I think that there is a slow but growing shift from OOP to functional programming, and if Perl 6 can accommodate for it better than other languages, then it can get a good share of the market.
Areas that the functional approach can be applied to are finance, statistics etc
Then, a mix of dynamic and static typing is required by a modern language that keeps the benefits of each.
And, another strong and very attractive point is the Parrot VM which allows for dynamic language interoperability as well as, do(or should do someday in the future) PAST tree transformations and metaprogramming which would allow for plugin providers à la LINQ style, like LINQ to SQL (or Perl to SQL ??)
Looks like Perl6 could be able to do all of that
Hi, Randal. I just discovered this post, thinking about the same sort of problem, a next-generation web framework, and thinking that Perl 6 might be the right platform on which to build it. I don't see any other posts on the topic, however, since this one. Have you brainstormed any further?
-TimK