January 2008 Archives

Show me the output before I install it!

| 1 Comment

When you're releasing a module, please show a sample use or the output somewhere in the documentation so that people like me who are interested in your module can have some idea of what it looks like and how I'd use it.

I take for example this new distro, pfacter, which purports to "Collect and display facts about the system." Sounds great, but how do I use it? I see a little program. Can I see some sample output? Please? There's nothing in the README or any kind of synopsis that shows it.

Of course, I don't mean to pick on this one distro. It's just the one that disappointed me just now and made me post this. It's something that has always frustrated me, especially as I try to find cool new modules to mention here or over in Mechanix.

(No need to point out that I haven't do this for ack myself. It's on my todo. :-) )

What's the best Perl templating system?


Ha ha, trick question, there is no "best" templating system except for the one that's best for your project. Vince Veselosky has a roundup of Perl templating systems where he examines everything....

... from the Swiss Army Chainsaw of Template Toolkit, through HTML::Mason and Text::Template down to the ever-tempting "variables interpolated in a here-doc" method.... Read on for a comparison of the major template systems in Perl, and my recommendations of which systems fit which circumstances.

It's a fine introduction to the various systems, and probably worth pointing to from the Perl 5 wiki, if not reproducing it there entirely.

Movable Type Open Source released


The first real release of the open source version of Movable Type, version 4.1, has been released under the GPL v2. It will be interesting to see what if anything gets radically different now that MT is open for updates and improvements from the community. As an MT user, it makes me feel like I have a responsibility to give back to the project now.

The relationship between a language and its toolchain, and why Perl 6 scares the hell out of Adam Kennedy

| 1 Comment

Adam Kennedy has written a very thoughtful article on problems he sees coming up in Perl 6 called "The relationship between a language and its toolchain, and why Perl 6 scares the hell out of me." It's well worth reading even if you're not following Perl 6 that much.

Huge week on perl5-porters

| No Comments

I'm amazed at how David Landgren manages to summarize the p5p traffic, especially this week. Last week's summary is 19K of text covering everything from what happens when you bit shift infinity, to what features people want in Perl 5.12, to outdated Test::Harness components.

The future of Strawberry Perl

| No Comments

Adam Kennedy is thinking about the future of Strawberry Perl.

In line with my attitude that the main Strawberry "product" should be conservative, reliable and predictable (I'm going with a rough analogy to Firefox product-wise) I've been thinking a little about how the release tempo should look. My current thinking for Strawberry Perl is to do quarterly releases, with a tentative schedule of releases in January/April/July/October and aiming at being available for download before the second Monday of the month.

In addition, he's asking for your ideas on features to include in the April 2008 release.

Your favorite language sucks


The other day I posted a link to an article by Ted Neward called "Can Dynamic Languages Scale?" I thought it was interesting to see that an outsider saw the potential in Parrot, even though it's not at 1.0 yet. As an afterthought, I lamented that he made a dig at Perl at the end, smiley face or not. I meant it to have the same sort of gravity as saying "Aw, shoot, it's raining out." I didn't care that he didn't like Perl, but that he had to take a swipe. It certainly wasn't a big deal.

Apparently his article caused a minor uproar. Neward posted a followup called "So I Don't Like Perl. Sue Me" in response to the Perl folks arguing with his taste in languages. He shouldn't have had to do that.

your-favorite-band-sucks.jpg I don't get Radiohead. It's all ponderous and aimless. I also don't get Phish, Peter Gabriel and/or Genesis, Yo La Tengo or Tori Amos. But so what? It's personal taste. I don't like Java, either, although I haven't written any in the past 10 years. You know why I don't like Java? It just doesn't look like it's any fun. I'm sure people can explain to me why Java is great, but it won't change my mind. And it doesn't need to.

If you really want someone to love Perl, you'll have to show him, not tell him. Show him great code, great projects. Show the doubters that Perl can do amazing things. Action, not words. And if he still doesn't get it, that's OK.

Can dynamic languages scale?


Ted Neward has written an article on the problems of scaling up projects based on dynamic languages:

While a dynamic language will usually take some kind of performance and memory hit when running on top of VMs that were designed for statically-typed languages, work on the DLR and the MLVM, as well as enhancements to the underlying platform that will be more beneficial to these dynamic language scenarios, will reduce that. Parrot may change that in time, but right now it sits at a 0.5 release and doesn't seem to be making huge inroads into reaching a 1.0 release that will be attractive to anyone outside of the "bleeding-edge" crowd.

Alas, he has to end with "Perl just sucks, period." Even as we work forward with Parrot and Perl 6, the continued public perception of Perl doesn't change. :-(

Link roundup 2008-01-21

| No Comments

I've got so many little notes that don't warrant a full-blown story, so here's a link roundup:

There, that feels much better now!

Take a nibble of Perl 6 with a microarticle

| No Comments

If Perl 6 is a little daunting, take a smaller bite by reading one of Adriano Ferreira's Perl 6 microarticles. The index of articles is on the official Perl 6 wiki on the page called Perl 6 microarticles. As of now the list of articles is:

For more news of Perl 6 and Parrot, please keep an eye on rakudo.org.

Perl 6 on Parrot is now known as Rakudo Perl


For some time now, there's been confusion about the multiple versions of Perl 6. Per Larry's wishes, Perl 6 is a specification of the language, and not an actual implementation. There will also be no "default" implementation of Perl 6. Pugs has been going strong for a while, based on Haskell. We've been talking about what to call Perl 6 that runs on Parrot, and Patrick Michaud worked with Damian Conway to come up with it: Rakudo.

It's a name the Damian has discussed before, and Yours Truly just so happened to own rakudo.org, hoping to be able to use it for something good and Perly. For a while, it hosted wikis that are now over at perlfoundation.org, and it's sat idle since then. I'm glad I didn't let it lapse, because now it can be an information center for the project. So far I've got a blog up, and I hope we can get more excitement about the project going as we post more details about the project there.

Read more about why "Rakudo" and the future of the project over at the brand new Rakudo.org.

Parrot 0.5.2 released, now with "make perl6"

| No Comments

Bob Rogers, Parrot release manager for Parrot 0.5.2, announces...

On behalf of the Parrot team, I'm proud to announce Parrot 0.5.2 "P.e. nipalensis." Parrot is a virtual machine aimed at running all dynamic languages.

Parrot 0.5.2 can be obtained via CPAN (soon), or follow the download instructions at http://parrotcode.org/source.html. For those who would like to develop on Parrot, or help develop Parrot itself, we recommend using Subversion or SVK on the source code repository to get the latest and best Parrot code.

Parrot 0.5.2 Highlights:

  • "make perl6" uses the new pbc_to_exe tool to build a Perl 6 executable. It's still a ways from being a finished implementation of Perl 6, but we're working on that. Come join us!
  • Parrot now has a LOLCODE implementation! Not an "enterprise-class" computing language, you say? We don't expect anyone to use it for their next app, but at less than 500 lines of source code (and most of that in a subset of Perl 6), it demonstrates the power of the Parrot Compiler Toolkit. See lolcode.com for more.

Parrot 0.5.2 News

- Documentation
 + PDD27 (multiple dispatch) - debut of new design
 + Numerous small updates to glossary.pod, etc
- Compiler Toolkit
 + NQP: optional, named, and named/required parameters
 + PIRC: cleanups
 + PAST: "defined-or"
- Languages
 + New mk_language_shell.pl script creates language stubs
 + LOLCODE: new
 + Lua: various
 + Eclectus: start with support for local variables and procedures,
   use SXML as intermediate representation
 + Perl 6: list builtins, compiler directives, command-line options, etc.
 + "make perl6" now builds a Perl 6 executable
 + punie: more builtins, control structures, code refactoring
 + pynie: builtin stubs, more tests
- Implementation
 + New "pbc_to_exe" utility turns bytecode to executables
 + New set_outer method for subs
 + Further configuration refactoring for testability
 + All functions now completely headerized
 + Concurrency: interpreter schedulers
- Deprecations
 + METHOD (replaced by renaming PCCMETHOD)
 + pmcinfo op (superseded by 'inspect')
 + get_attr, set_attr, and 8 other vtable methods
 + See DEPRECATED.pod for details
- Miscellaneous
 + Many bug fixes
 + Minor speed enhancements with UTF-8 string handling
 + Debian packaging
 + consting, attribute marking, warnings cleanup, memory leaks plugged ...

The next scheduled Parrot release will be five weeks from today, on 19 February 2008.

Thanks to all our contributors for making this possible, and our sponsors for supporting this project.

I'm cranking up the Perlbuzz again

| 1 Comment

I apologize for such sparse news in the past week or two. As some of you may know, I'm writing a book for Pragmatic Bookshelf on job hunting for technical people: Programmers, sysadmins, project managers, etc. Some of you may have seen me talk about job hunting at OSCON or YAPC, and the book is a lot like that. It turns out that writing books is time-consuming!

For the past couple of weeks I've been pushing toward a major milestone: Getting to the halfway point and pushing it out to people for review. It's been sucking up most of my Copious Free Time, time that I might otherwise spend hacking on Parrot, or submitting stories to Perlbuzz, or whatnot. Last night, I built the PDF and sent it out for review. A huge burden is off my shoulders for now, even as the other 50% loads up on them.

In the next day or two, I'm going to be going through my backlogs of blog posts that I've marked as "save for posting to Perlbuzz." There are a lot of things I've been wanting to talk about, but have held off on for fear of bodily harm from my Cruel But Fair Editor, Susannah. Thanks for your patience.

OSCON 2008 Call For Participation is now open

| No Comments

Peter Scott sent in this call for participation for OSCON 2008.

O'Reilly Media has announced their Open Source Conference Call for Participation. OSCON, which started as The Perl Conference in 1997, hosts the 12th annual Perl Conference this year. The OSCON Perl track review committee invites presenters to submit proposals for talks about the great things they've been doing with Perl. Make their job hard!

This will be the breakout year for Perl 6 (maybe this is the Christmas???), and we will feature it at OSCON. We don't assume that we already know everyone who's got a Perl 6 talk for us; if you've got something interesting to tell people about Perl 6, submit a proposal.

We are equally interested in Perl 5 presentations. This has been an exciting year for Perl 5: the Perl 5 Porters released Perl 5.10; perlbuzz readers recently heard all about Strawberry Perl; and Moose, a new object system for Perl 5, is gaining in popularity. We continue to hear stories about how Perl has saved jobs and money, and made work fun. Let's see your presentations on enterprise-scale Perl applications and infrastructure, and the coolest modules, hacks, and techniques for using Perl for Stuff That Matters.

There's something special about the Perl community, and you can see it at OSCON thanks in no small part to the excellent presenters who turn out for it each year... so join them in 2008! See http://en.oreilly.com/oscon2008/public/cfp/13 for essential advice on submitting your proposal. The deadline is February 4, so start working on those proposals now!

Peter Scott wrote Perl Medic and Perl Debugged and is a Perl trainer. He's presented at the Perl Whirl, YAPC, and OSCON, for which this year he is on the Perl track review committee.

Help the Perl Foundation choose a CRM system

| 1 Comment

Jim Brandt, Conferences chair for The Perl Foundation, is looking for a customer relationship management package.

I'd really like to deploy a customer relationship management (CRM) package to allow us to better track our relationships with our donors, big and small. I was a bit surprised to turn up next to nothing when I typed "perl CRM" into Google.

Can you help? Read more of the story and reply at the TPF news blog.

Frozen Perl hackathon & lightning talks announced

| No Comments

Frozen Perl, a one-day low-cost Perl workshop in Minneapolis, MN on Saturday, February 16, has just announced its call for lightning talks. They also announced that there will be a hackathon on the 17th.

Register today, because this Saturday, January 12, is the last day to get the early bird rate for non-students of just $20, so you if you're planning to go, now is a good time to register and pay for your admission.

Which language to inflict on clients?


Originally uploaded by reedwade

Brenda Wallace posted a colleague's picture of a whiteboard from their office today. Her post says "dunno which technology to inflict on my clients next, so we had a brainstorm. looks like TCL won."

The whiteboard reads:

Lisp is bitter
PHP is DancingBear
Python is beige
Erlang is imaginary
Ruby is a fad
Java is angry
Tcl is cute
Perl is ready for retirement

Certainly I don't think Perl is ready for retirement, but it's interesting to see what people think about Perl, and about all its brethren.

Strawberry Perl is all-inclusive

| 1 Comment

Yesterday's article about Strawberry Perl referred to a blog post with incorrect installation instructions. All the downloading and installing discussed is just not necessary, even for CPAN installations. According to Adam Kennedy:

The install and setup process for Strawberry Perl is to uninstall any existing Perl, run the installer, and then run "cpan" or run it from the Start menu. There is no additional installation required.

How to install and set up Strawberry Perl


Note: Beware of the instructions in the link below. It has you do far more work than is necessary. See this follow-up article for details.

Here's the first big blog post I've seen about Strawberry Perl: How to install and set up Strawberry Perl

I am writing this article with much joy and glee.... Active State no longer has a monopoly on the issue of Perl on the Windows platform

I haven't read the Strawberry Perl docs, since I'm Windows-free. The blog post gives details about what tools are necessary to make the install, with links to the tools. Now, I thought that part of Strawberry Perl was that you wouldn't need any external tools, but maybe they're just for building CPAN modules.

What the Perl 6 and Parrot hackers did on their Christmas vacation

| 1 Comment

chromatic provides us with more insight into the Perl 6 process that's picking up steam. His original post ran here at oreillynet.com. I've edited it a bit to emphasize the goodies.

A running joke in the Perl 6 world is that we'll release a stable Perl 6.0.0 by Christmas. We just won't tell you which Christmas.

As many community-developed projects have noticed, long blocks of holidays can be very productive for contributors. Both Parrot and Perl 6 on Parrot have made a lot of visible progress in the past couple of weeks.


Jeff Horwitz took over the maintainership of mod_parrot a while back and has steadily made progress. The new news is that he's writing a user's guide. The older news is that mod_parrot supports languages built on top of Parrot, including Perl 6 and Plumhead (PHP on Parrot).

make perl6 just works

In terms of code, I dusted off some proof of concept code that Jerry Gay and I wrote several months ago, with advice from Nick Forrette, added one new feature, and checked it in. The code is pbc_to_exe and it allows you to build an executable named perl6 by typing make perl6 (or make perl6.exe on Windows) once you have the Parrot source tree configured on your machine.

The initial proof of concept took about two afternoons to write up; I wrote the first version in Perl 5 and then Jerry and I translated it to PIR (Parrot's native programming language). Then it sat for a few months, until someone convinced me that the progress we've made would be much more accessible if we could provide an executable file named perl6 with the compiler linked in nicely. It took part of an afternoon to add the last missing piece and put things in place. (For that, see downloading the Parrot source code. Until the next stable Parrot release on 15 January, you need to check out Parrot from source code.)

I'm proud of this little project in a sort of mortified way; it just writes out a C file that wraps a tiny exectuable header around the PBC file and calls a couple of functions in libparrot to run that code, much like the parrot executable does (but without all of the latter's command-line options). It may be the most useful code I've written in a while though.

More developers, and Debian packaging

The biggest surprise to me is that, besides myself and Jerry, Francois Perrad, James Keenan, Patrick Michaud, Cosimo Streppone, Will Coleda, Curtis Poe, Bernhard Schmalhofer, Jason Porritt, and Andy Dougherty have all worked on this system in the past week. One small change -- one small feature representing perhaps an ideal day's worth of work -- inspired so much additional polish and evolution. That's not counting all of the other people who might now download and play with Perl 6 on Parrot. (It gets better too. Allison Randal and some of the other Parrot developers have resurrected the old Debian packages for Parrot, so Debian and derivatives will likely be able to install and run both Parrot and Perl 6 on Parrot after the next release.)

That's not the only interesting thing.

Parrot's new object system

The November and December 2007 Parrot releases were significant because each one added a major new feature. Parrot 0.5.0 introduced the new object system which we believe is capable of supporting all of Perl 6's OO features (and by extension, just about every OO system available in dynamic languages, though there's one design question remaining about the multi-dispatch system in CLOS). Parrot 0.5.1 includes the new Parrot Compiler Tools, which allow you to build compilers using, more or less, Perl 6.

LOLCODE in Parrot

Though most of my work in Parrot is fixing weird bugs and adding new features to the platform itself, it's been fun and a little scary to watch the development of LOLCODE on Parrot. Will Coleda started this on Wednesday, and the project has picked up contributions from Simon Cozens, Jerry Gay, Patrick Michaud, Klaas-Jan Stol, Bernhard Schmalhofer, James Keenan, and Stephen Weeks.

I know that you know that LOLCODE is a joke language, and I know that Simon Cozens is a smart guy who worked on Parrot several years ago and then retired from programming, but he wrote up his experiences in Parrot is really quite wonderful.

How to build a Parrot compiler

Patrick and I gave a talk at OSCON last year about building a Parrot compiler, and I repeatedly said that our goal is to make it possible for you to build a working compiler in an afternoon. You won't build a language as rich and powerful as Perl, Python, or Lua in an afternoon, but we hope to get all of the boilerplate out of the way in the first thirty seconds so you can spend four hours adding just the features you want. (The frosting part of this dessert is that you can bundle up your compiler into a cross-platform C program you can distribute as source code to compile and run on any machine which has libparrot installed.)

I think we're starting to succeed.

Parrot New Contributor Day

The next Parrot New Contributor Day is Saturday, 12 January 2008. Please join us in #parrot on irc.perl.org then or any time.

chromatic is an editor and technical evangelist at O'Reilly Media and has contributed to Perl 1, Perl 5, Perl 6 and Parrot.

Flurry of Perl 6 activity picks up new contributors, and one old one

| No Comments

Patrick Michaud has written up a huge recap of recent activity in Parrot and Perl 6 in the past few days. As Patrick points out, "there is a huge amount of activity taking place with Perl 6 and Parrot; in fact, most of what I've written about here has occurred in the [past] 72 hours." Highlights include:

  • make perl6 target in Parrot
  • Patrick added the "defined-or" operator and the @*ARGS array to the perl6 compiler
  • Jonathan Worthington added a preliminary version of 'given'/'when'
  • Jerry Gay has been adding radix conversions to perl6,
  • Will Coleda is working on a web interface for high-priority RT tickets
  • the Perl 6 wiki has also gotten received quite a bit of reorganization

All the Perl 6 and Parrot buzz brought Simon Cozens out of the woodwork. Simon's been involved with Perl 6 since the very beginning, but hasn't been worked on the project for a while. He's checked out the current status of Parrot and Perl 6, and he likes what he sees:

There's a perl6 make target which builds Perl 6 binary, for heaven's sake, and it runs real live Perl 6 code. It's there, right now. [But] what excites me is the Parrot Compiler Toolkit.

[P]eople were saying that Perl 6 was going to be written in Perl 6, and I was, well, let's say, a little sceptical. But you know what? They've done it. I am astounded. It is lovely.

Here's hoping Simon sticks around for a while and helps keep this burst of Perl 6 energy going!

LWP::Simple is beautiful code

| No Comments

Michael Schwern has written a column for Andy Oram's Beautiful Code blog called LWP::Simple - Simple Goal, Simple Interface. In it, he talks about minimizing the "gulf of execution" with a two-line easy-to-understand Perl program:

use LWP::Simple;
my $page = get("http://www.google.com");

Bravo to Schwern to getting the words "Perl" and "beautiful code" together. I can't wait to see part two.

First what in five years?

| 1 Comment

The news about Perl 5.10 is everywhere, and it didn't take that much emailing of news editors on my part. However, I have one regret.

I should have made it more clear in the announcement that Perl 5.10 is the first major change in the Perl language in five years. What I wrote was "Today the Perl Foundation announces the release of Perl 5.10, the first major upgrade to the wildly popular dynamic programming language in over five years." Unfortunately, that got shortened in headlines to the incorrect "first release of Perl in five years", which ignores 5.8.1 through 5.8.8, and has since been spread far and wide.

I'm glad the news is getting out there, but wish it were more accurate.

« December 2007 | Main Index | Archives | February 2008 »