Recent blog entries for bjc

Foreward - this is my first post. My interests lie mostly in web programming, XML and perl. I need to find something interesting to say, so I'll see how a blow-by-blow of Perl 6 development does.

Boot-strapping perl.

So I've joined in on the Perl 6 developer's mailing list (this link will allow you to subscribe). I've been on lists before - most recently the Xerces and Xalan lists at Apache, but I left fairly quickly, as it seemed that the core list contributors had already arrived with a large piece of code from Sun, and were already at least halfway to their goal. I didn't like the feeling of joining a work in progress.

This project should be different - its a blank slate. While Larry Wall is still the "language pumpking", most issues of implementation, documentation, etc. have been left up to the members of the list.

So far there have been some interesting postings, largely regarding the "big picture" of how Perl 6 is going to be built. Here are some of the suggestions:

  • Build it straight from source code using a C-family language (C, C++, Objective-C). This seems to pick up the thread of the now deceased Topaz project, which was an exploratory project to rebuild Perl in C++.
  • Build Perl using perl. Huh? Well, what is proposed is to generate a compiler target (almost certainly C) using Perl 5 or microperl. This code would then be compiled to produce Perl 6. The code producing the C code could then be rewritten in Perl 6 (or Perl 6's microperl), thus providing a self-generating tool.
  • The third is similar to the second, except to use some more esoteric compiler target such as Scheme (even CAML was suggested).
The first suggestion seems the most probable. Coding directly in a C-family language will attract the most programmers, and it is also the most simple and direct way to go about it. I'm almost certain that the language will be C itself, not C++ or Objective C. People seem to have very strong opinions about C++ one way or the other - this discord will likely prevent its use. Objective-C simply doesn't have the mindshare. Interestingly enough, Eiffel was considered as a language for Topaz.

The second suggestion sounds interesting, but frankly I feel that this type of code generation (on this scale) doesn't translate very well from the whiteboard to the keyboard. Because this approach is so convoluted, it would limit the number of people who we could reasonably assume would approach and extend the source code (increasing source code accessibility is a primary goal of Perl 6).

The third option is almost certainly not going to happen. Introducing an even more esoteric language into the mix may have its advantages (i.e., garbage collection for free), but it would simply scare off too many potential developers.

We'll see what happens - there are a number of strong personalities on the list and already you could see some antagonism. I suspect some huge ego wars will take place before this is over.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!