6 Feb 2010 marks the two year anniversary of my involvement in Perl 6. It’s the first day I started conversing on #perl6, and I joined the channel two days earlier. (Today also, coincidentally, is the same day I made a belated anniversary post last year.) It’s been a wonderful ride since the start, and it still isn’t over with yet.
Just one note about Perl 6: I think it’s the best language ever. Recently I’ve toyed a bit with C and C++, and every time I play with one of those languages, I just appreciate Perl 6 more (and eventually wish I didn’t have to be using C/C++ in this situation). I think the community at #perl6 has really helped with my enjoyment of the language. The language and community have taught me a lot about programming in general, such as not using the very first idea for structuring your program (obvious, but a strong impulse if you’re not told this directly), and also how important it is to lay out your program, if for no other reason than unit tests.
Now, I haven’t been involved in Perl 6 (and #perl6) recently, and I’m hoping to change that. I sadly won’t be able to go full-scale into Perl 6 right now (we can thank the institution known as “school” :)), but I do want to start getting more involved again before it’s too late.
So, for my third year of Perl6-ing, this is what I have planned:
This is my favorite idea. It’s to code an Interactive Fiction game in Perl 6. Then, once the game is made, I would separate the game from the IF world model, and releases the modules as a way of coding IF in Perl 6. Hopefully, if done right, such a setup could even transform your game into formats like ZCode 🙂 (more detail on this in later posts). I’ll be using masak’s crypt as inspiration, and when I get started you can follow the progress at frotzlexity (on github).
“Native Perl 6”
I’ve had ideas for a while of creating an implementation of Perl 6 that compiles your Perl 6 into native machine code. My current form of the idea is to instead port NQP to LLVM, and then replace all the PIR-dependent bits in Rakudo with equivalent NQP bits 🙂 (granted, removing all direct ties to Parrot in Rakudo is most likely easier said than done).
However, since my goal is to really have some form of Perl 6 running at a decent speed on my computer (at least when executing a P6 program), jnthn’s new serialization efforts in Rakudo may improve Rakudo enough to run decent on this very old thing of mine, and remove all my interest in this. We’ll see (my interest will be lost when the serialization makes CORE.setting compile in a decent amount of time (read: at all) on my 384MiB RAM machine :)).
Modules in Perl 6
Somehow I always come back to modules in Perl 6. Maybe that’s because I’m still not 100% happy with how it all works, in code and (rarely) community. (This dislike is likely caused by my still-incomplete understanding of modules in Perl6 and, heck, Perl6 in general.) My current area of interest is in adding stuff to modules.perl6.org, in particular multiple pages (maybe 10 or so entries per page?), as well as the beginnings of some form of categorization. I can definitely see modules.perl6.org become something like CPAN and would like to start working towards that. Let’s see how the rest of #perl6 feels about this idea first though (as historically my thoughts on modules in Perl 6 haven’t been the greatest).
That’s my basic list of things I’m interested in (at this moment) for this third year of Perl 6 hacking. As always, I’ll have the appropriate amount of fun!