July 2010 Archives

Welcome Rakudo Star

Perl 6 has evolved over a long time. As originally conceived, it was to be a modest cleanup of Perl 5 semantics and implementation. By shrugging off a few of the less desirable features and misfeatures, Perl the language could evolve in new ways.

As it turns out, a language is more than a bundle of features. It's a set of design principles which govern interlocking syntax and semantics and idioms. The greater the internal consistency of that philosophy, the greater the coherence of the language and its community and its ecosystem.

Given the chance to reinvent Perl one more time (the first reinvention was Perl 4 to Perl 5), could the community produce a language which could evolve to meet the needs of programmers for at least the next twenty years? Could we do so without all of the pain and tension between the need to retain backwards compatibility and the desire to improve based on real world experiences?

That task was larger than any of us could have predicted, but the results (Perl's testing culture! Roles! Moose! Grammars!) demonstrate their utility even now, even in the Perl 5 world. Both languages feed off of the other. Both languages help us to research and define and refine what Perl is and what Perl can be.

Rakudo Star is a milestone in that process. We're proud of what we've accomplished, and we've reached a point where we want to share it with the wider world.

People will complain. They don't like twigils. (They don't like sigils!) All they ever wanted was a better object system. They hate operators or Unicode operators. They don't want to learn how multiple dispatch works. They miss the CPAN. They prefer homoiconicity of syntax. They feel betrayed that after ten years, Rakudo Star is the first of several distribution releases and not the final, it's completely finished that's it, install it to run your space station, release...

... as if designing a language intended to evolve and change and adapt over the next several decades were a simple, three-month task to produce a perfect, static, never-needs-updating specification. (Implementation is merely a matter of hiring enough typists, you see.)

That's neither what Perl 6 is nor how it works. What matters now is that you—yes, you—can download and install and play with Perl 6 right now. It's not complete, whatever that means. It's not finished, because twenty years from now we'll still release new versions to meet needs that we can't possibly predict right now.

What we can do is figure out what you need. What works for you? What doesn't? Are there bugs to fix? Are there particular optimizations you'd like to see? (Our next big task is optimization.) Now begins the work of polishing. What can we do to make Perl 6 even more amazing for you for the next release of Rakudo and the next and the next and the next?

Set aside your assumptions. Try Perl 6 yourself with Rakudo Star. Perl in every form is the work of a community willing to make amazing things happen. That task continues—help us make Perl more powerful, more flexible, more useful, and more fun.

Relaunching Perl.com

Welcome to the new Perl.com! It's a great time to program Perl, and our intent is that Perl.com can show off our language, libraries, and community.

Thanks to Tom Christiansen, Tim O'Reilly, Greg Dickerson, Laura Painter, Allen Noren, Ask Bjorn Hansen, Robert Spier, Leo Lapworth, Allison Randal and a few more people I'm sure I've forgotten, Perl.com is now a part of the Perl.org family. TPF has taken on editorial duties.

You should notice few changes; we've worked hard to preserve the existing articles and URLs. More important, we'll publish new articles and information again. My goal for the site is to post at least one article a week on some aspect of Perl and its ecosystem.

If you have submissions or suggestions or requests, please let me know. As well, we're planning for a visual revamp. Ideas are very welcome.

Welcome back to Perl.com.

Visit the home of the Perl programming language: Perl.org

Sponsored by

Monthly Archives

Powered by Movable Type 5.13-en