Perl 6 mythen

# "Perl 6 Myths"

Version: 2 (8th German Perl Workshop, 2006)
Speaker: Juerd
Duration: any(5..10) minutes
This talk is about Perl 6, not about Parrot.

# Perl 6 is an April fools joke

No, Parrot was that.

# String concat is underscore

No, it is tilde (~).

# Backward compatibility is broken

No. Perl 6 can use CPAN modules.
The implementation must handle mixed P5/P6 programs correctly.
There will perhaps be a conversion script.

# Perl 5 is good enough

Perl 5 has slow subs, unreadable internals, and no specification.
Threading in Perl 5 is a problem.

# Perl 6 development is closed and secret

Almost everything happens in public mailing lists.
You can join today and hack away at Parrot, Pugs, and the many subprojects.

# Perl 6 blocks Perl 5 development

Different people work on the different projects, so no.
Because context switches are hard, and time is limited, this is a natural situation.
Perl 6 improves Perl 5 sometimes, even. Perl 5.10 will have:

- `//`, `err` (defined-or)
- `~~` (smart match)
- `given`, `when` (switch)

# Perl 6 is harder than Perl 5

There is more to learn, but it will not get harder.
Consistency (less exceptions!) and new ground breaking features make things easier.
The end result, I think, is balanced.

# Perl 6 is slower

Whoever says this, is either paranormally gifted...
...or basing the claim on the current state of Parrot or Pugs, which are nice software but not quite ready for production, and no indication of the final product's performance.

# CPAN-modules lose their value

Through Ponie, many Perl 5 modules will be usable in Parrot.
Pugs already compiles Perl 6 to run on Perl 5. We will make CPAN modules transparently accessible to Perl 6 programs.
And of course we get modules for free from languages that switch to Parrot.

# There are 0 lines of code in Perl 6

Simply not true.
We have 35_000+ lines of Perl 6 tests, 7_000+ lines of examples, all written in Perl 6.

# Perl 6 depends on Parrot

Even though The Plan prescribes that Perl 6 will run on Parrot, and that Parrot is written primarily for Perl 6, we can have Perl 6 without Parrot.
In fact, Pugs already does support multiple backends, like Javascript, PIR (Parrot), its own evaluator, and... the Perl 5 runtime.

# The rest of the world makes the standard

Other languages often have good features, and we should steal them.
The dot is stolen because it is better. It saves two keystrokes (67%), one character (50%), and visual clutter.

# The dot makes it Java-like

That's up to the users. I think we can make it Ruby-like, Python-like, or Perl 6-like instead of Java-like.
`$i++` is still there. Don't worry, we won't have `system().foo().bar().i().value()
.please().increment();`

# Obfuscation and golf will die

Perl 6 has many new ways to obfuscate and shorten code.
There's less flexibility in where you can put whitespace, but you get hyperoperators, junctions, and twigils to compensate. If you want to write unreadable, ugly code, you still can!

# It'll take years until we have Perl 6

Pugs is already around, and you can play with it as much as you like.
Perl 6 will be released when it's ready.
If you want to help make it ready, please contribute!

# It's hard to contribute

We try to make it easy.
Committer bits are given out to everybody, there is a shared development machine you can get free access to, there are open mailinglists and IRC channels.

# Perl 6 is not Perl

By the same logic, neither was Perl 5. Or Perl 4. Or Perl 3.
...or Perl 2 (which changes /\.\*/ to /.*/).
Try to look at some Perl 6 programs; they really feel Perlish.

# My Perl 5 knowledge will be useless.

Perl 5 is not going away. In fact, Perl 5.9 has many Perl 6 features you can start using -- see "features.pm" for details.
Unlike proprietary technologies such as J2EE or .NET, the transition to Perl 6 will be gradual.

# The end

Don't believe in myths, don't believe in the FUD (fear, uncertainty, doubt) that people spread. Instead, believe in Perl 6, and the many people who spend lots of time on making it happen.
This talk is in the Pugs subversion repository, under `pugs/docs/talks/p6myths2.html`.
Please join us in `#perl6` on Freenode.