When creating a new technology, I think that it's important to be able to tell people why it's useful in a brief, compelling statement. If you can't,

It may be an indication that you are going down the wrong path to begin with, and

You're going to have trouble making converts.

So I'm curious what the brethren think, particularly those who have been following Perl 6 closely. If you were to make a short, compelling statement that would appeal to both Perl 5 users and the RoW (Rest of the World; e.g., the PHP/Python/Ruby/Java/C# etc. crowd) explaining the benefits of Perl 6, what would that statement be?

I'm not looking for a feature list, but rather something that is short, sweet, piques interest, and sways opinion. Something that answers the question, "Why change?"

Machines have got much faster. The WWW has become universally accessible and universally used. But mostly, the users and designers of Perl have discovered that it's greatest strength is the programmer productivity it provides.

So now is the time to make full use of the experience gained through those twenty years, to re-engineer the language to capitalise upon the languages strengths, clean up some weaknesses, and further enhance that programmer productivity.

It is time to recognise what it is about the original language that provided that programmer productivity, and what about it was a barrier, and use that knowledge to redefine the language devoid of the constraints of backwards compatibility.

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.

"Science is about questioning the status quo. Questioning authority".

In the absence of evidence, opinion is indistinguishable from prejudice.

We're only just now getting into a stage where it makes any sense to try to "sell" people on perl 6 (myself, I'm more worried about making sure people are aware of 5.10).

My personal feeling is that there's a hell of a lot of things going on with perl 6, and I would guess that even the people working on it aren't really aware of what's going to turn out to be the "killer app" for it.

(Back in the early 90s, you couldn't tell people they should get into perl because it's great for CGI...)

Perl6 is as different from Perl5 as C is different from Java. Syntax is similar, but they serve different purposes. The key is to pick the right tool for the job. In many cases, that choice will be Perl5 over Perl6. There's no reason to sell anyone on Perl6 anymore than selling someone on Perl5.

As for "wrong path", it might be a key indicator that almost every person with a significant CPAN presence is heavily in favor of Perl6 and the way it's being developed. This also includes every single person who's ever done any work with the Perl5 source (save one, that I'm aware of).

Converts ... only languages with inferiority complexes attempt to make "converts". We are the duct tape of the Internet and no-one can take that from us. I don't care about anything else.

My criteria for good software:

Does it work?

Can someone else come in, make a change, and be reasonably certain no bugs were introduced?

As for "wrong path", it might be a key indicator that almost every person with a significant CPAN presence is heavily in favor of Perl6 and the way it's being developed. This also includes every single person who's ever done any work with the Perl5 source (save one, that I'm aware of).

For the record, I'm not "heavily in favor of Perl6", at least not in the sense that I favor anything Perl6 over Perl5. Thus, I don't care about the way it's being developed, as long as it doesn't interfere with anything I want. I don't have a "significant" CPAN presence maybe.

From what I've seen and heard, you're no more in favor of Perl6 than you were in favor of Perl 5.10. Or, rather, you're no less in favor of 6 of 5.10. Stuff you want is coming in and stuff you don't want is going out. There's some stuff you can't wait to get your hands on and you already see stuff you're going to sigh about. Overall, you feel pretty comfortable about the whole thing and will gladly kick the tires when it's ready, but aren't going to promise anything with regards to using it right away.

Sounds about right?

My criteria for good software:

Does it work?

Can someone else come in, make a change, and be reasonably certain no bugs were introduced?

As for "wrong path", it might be a key indicator that almost every person with a significant CPAN presence is heavily in favor of Perl6 and the way it's being developed. This also includes every single person who's ever done any work with the Perl5 source (save one, that I'm aware of).

That's a very strong claim. Also wrong. For a very prominent and vocal exception see Abigail. For another person with qualms, see Adam Kennedy. If you follow that link you will see comments from brian d. foy indicating that he has qualms as well. None of those are exceptions that you really want to ignore. Nor, based on a number of conversations that I have, would I say that they are particularly uncommon.

Now you're free to disagree with these people. Many do. But it is wrong to claim that they do not exist.

Incidentally in an unrelated note, should I resign myself to never getting the apology I requested some time ago?

Abigail was the person I was thinking of. "qualms" doesn't preclude "heavily in favor". I know brian's got reservations, as do I, but I haven't heard anything from brian regarding not supporting Perl6. I also remember talking with Adam about his qualms, but I thought most of them had been addressed. Granted, this was YAPC::NA::2006, so I could be out of date.

The point still remains, even if I may overstated it a bit. The Perl5 devs and CPAN authors, as a group, are heavily in favor of how Perl6 is progressing, both in terms of deliverables and and in terms of process. If you want, I would be delighted to take a poll on the matter.

As for apology, there is nothing to apologize for. We had a discussion. You feel strongly one way and I feel strongly another. We've had these several times over the past 6+ years we've known each other. If you feel there's something I need to apologize for, I would be honored to discuss it via email - rkinyon@cpan.org

My criteria for good software:

Does it work?

Can someone else come in, make a change, and be reasonably certain no bugs were introduced?

Perl6 is as different from Perl5 as C is different from Java. Syntax is similar, but they serve different purposes. The key is to pick the right tool for the job. In many cases, that choice will be Perl5 over Perl6.

Can you elaborate on that please? What differences of purpose do you see between Perl 5 and 6? (Perl6 macros are a major advance beyond what Perl5 can do, but what else does it have to make you class it as a totally different animal?)

Parrot. Oh. My. God. The ability to mix Python and Ruby libraries in with Perl libraries is huge.

Grammars. The fact that Perl6 will be written in Perl6. I can write my own -real- syntax as a CP6AN library.

More importantly, I can -remove- syntax. Like, literally remove the syntax. This makes hardened Perl a real possibility. That means greater penetration into certain areas Perl just wasn't useful for.

Proper autoboxing. This is something Ruby has over us. No more.

A completely portable ASM I can address. That's nice.

Properly first-class functions that serialize nicely. This and proper autoboxing makes the P6 version of DBM::Deep a lot easier to write.

Oh, yeah. There's Lispy macros.

Now, why might I use Perl5 over all that sugary goodness? Well, in the first 5-6 years, very little of the CP6AN code will be truly battle-tested. I might be wanting to reuse Perl5 libraries and don't want to trust the Ponie emulation. The same reason why 5.6 interpreters are still in heavy use and why I haven't bothered to even download 5.10 - change is expensive.

But, unless there's something horribly wrong, I will be choosing P6 over P5 for all new projects. Once 6.0.2 is released, of course.

My criteria for good software:

Does it work?

Can someone else come in, make a change, and be reasonably certain no bugs were introduced?

I don't think it is a matter of "why change," but rather, "why consider." Furthermore, it is a waste of your time to convert. Instead, you should focus more on "spreading the word."

The best goal should be one of simple enlightenment, and in this situation it means getting someone to consider what is new and cool about <insert-your-language-here>.

For me, I tend to look at new languages when there is some particular idea I get excited about. In my case it is more about implementing an idea to test rather than building the next killer app. So, when thinking about implementing the idea about which I am currently excited, I consider what language/features I might use in order to realize my idea in the most informative and enjoyable way.

For example, there have been times recently that I've wanted to learn Erlang simply because it is my understanding that it would allow me to implement a distributed algorithm in the most direct way possible. I've implemented these sorts of things using Perl in the past successfully, but for this particular exercise I'd rather not have to manually simulate (in serial) many distributed nodes doing their own thing. This is no knock against Perl, but an example of what would compel me to try Erlang.

That example aside, I tend to always look at Perl first. This includes an investigation of the new features offered by Perl 5.10 and Perl 6. Now, as an admitted fan of Perl, I am going to be looking at the features of Perl 6 to see what things they inspire me to do.

I have the advantage of not being driven by projects that are dictated to me, but I understand this isn't the case for most.

So, to finally answer you question directly I would say that in order to whet another's appetite about something you're excited about, you need to know what kind of problems get them excited. Once you do this, it should be pretty easy to point out the new and exciting features that they might be able to take advantage of.

In the case of Perl 6, I think that you can take anyone interested in the following topics and convince them to take a look at the language and what it (or even Parrot) can offer: concurrent/parallel/distributed apps, functional/higher order programming, compiler writing, virtual machines, oop, etc.

As an aside, if Perl had a way to easily implement the type of environment that Erlang purports, I'd jump into that head first and forget I even heard about Er...what's it called again?

perlfan has a good point here that has been brought up before. Any problem has a multitude of tools available to solve it. Some tools are better suited to solve a given problem than others. Can you use a ball peen hammer to install a roof? Sure, however you'd save a ton of energy with a roofing hammer.

I am not familiar with perl 6 (other than what I have read in postings on perlmonks), however the postings in this thread seem to uncover at least a few of the problems that perl 6 is better suited to address. Maybe?

In the meantime, if we need to spread the word, maybe we need to get Guy Kawasaki to help out? ;)

Ruby made (in my opinion) for two reasons:
1) Design. a lot of people thought it had better design than Perl or Python (the other most popular languages at the time) actually most of those (a lot of) people I would say think it have a better design than any other language, it also wasn't haskell or Ocaml or lisp, meaning, it was not a new alien, it more or less came from the same paradigm as other popular language.
2) RoR.. Or in other words usefulness Ruby is useful, it have a popular framework that serve an important application dev area (dev development)

Groovy!
1) Usefulness . In this area Groovy hits it big, it leverage all of Java's heritage ++ Grails
2) Design. Again a lot of people agreed Groovy have a great design, at least compared to Java, also the design, was not an alien!

Might seem obvious! But Well, I believe making a language useful is a lot easier that claiming it have a better design compared to other languages. Better design, is very subjective! So the key part there was that a lot of people agreeed upon it and that it was not an alien!

I believe what we can really hope for is that Perl6 get the useful quality, few people would argue about this, and this could be also why its RoR or Grails (i.e. the killer app)that really drive those languages adoption (not undermining the none alien design)

All programming languages restrain what you can do (because many operations don't make sense), and how you can do it (because they chose a philosophy).

Perl tries not to restrain you, and Perl 6 even more than Perl 5. You can program in imperative, object oriented, functional, declarative (vie regexes/rules), data flow (via pipes) and parallel style, and many other styles (what's the style called that uses junctions?) that I either forgot or that I don't know names for.

Seriously though, I don't think I'll want to program in a language which can be meaningfully summarized in one sentence.

I only hope the implementers can keep their cool and don't rush a half baked Perl6 out the door. The best of Perl6 is too good for that, and Perl5 is constantly improved by the research they do, and the fine work of p5p.

IMHO it's too early for that question, as no one(!) has actually enough practical experience with Perl6 to be able to make such a statement.

If someone does (make such a statement), it's just because of his wishes/estimates/feelings/half-knowledge/advocacy of this not-yet-released-thus-hypothetical-future language.

I can tell you what the current estimate/feeling is here at our R&D:

We do not yet care about Perl6, as there is no release date and Perl5 delivers what we need.

Our concensus is, that Perl6 development does take too long and we don't think this will necessarily mean the resulting language will be better. Actually many projects who do not have "self-imposed" deadlines, tend to be ... well ... mediocre. (I'm not telling projects which are released way before they are ready just because of a deadline are any better - it's as always somewhere in between where truth lies)

At the time, when Perl6 will have been officially released for some months, we will take a peek and probably do some small-scale internal projects with it. Maybe even "upgrade" some Perl5 stuff to Perl6 if it looks promising.

Only after that, I believe, developers who have participated on these projects involving Perl6 will have the chance to be able to come up with a short, clean and compelling reason for "Why Perl6". That is - only if Perl6 will also deliver like it's ancestor.

It's worth noting that perl 6 has nothing to do with perl 5 except Larry's name in the credits. There's another thread on perlmonks with LW saying as much; the perl 6 name is because there is a tremendous reputation that follows perl 5.

So why should you change? You shouldn't. Use the right tool for the right job. So far I have seen some object orientation advances that are up to speed with other languages, but there isn't a killer app yet. You won't find it on all the existing nix distros, either. I am curious as to the public reaction when perl 6 comes out and they see it won't run their perl code, cpan, and really is just a whole new language that says 'perl' in it.

Wrong or is this semantics? This thread: http://www.perlmonks.org/?node_id=614624

...began the day I started debating with timtoady (not knowing whom he was) over why Perl 6 repulsed me. I noted how perl 6 broke years worth of my work, changed all the one sigil operators to bizarre hieroglyphics (~~ is string cat because it looks like .. strings?), and reeked of intellectual theorycraft instead of a pragmatic tool for programmers in the real world. I'm willing to change my opinion on this- I want to- but if you read that thread, LW clearly differentiates perl 5 and 6 as being separated by decades, and the motivation for naming it Perl to use the legacy reputation of perl 5.

Perl 6 is a ground-up rewrite with no relation to perl 5 in code or compatibility, with a stark departure in grammar/syntax. Is this a better sounding sentence? Looks more like python to me on the blogs than perl. I'm sure you've all done some fantastic work on perl 6, but you're going to find the same reactions if people believe perl 6 supports perl code as we know it.

Went to join the gridlock to see it
Held an eclipse party
Watched a live feed
I cn"t see tge kwubosd to amswr thus
I tried to see it, but 8000 miles of rock got in the way
What eclipse?
Wanted to see it, but they wouldn't reschedule it
Read the book instead