Shlomi Fish writes "The Rindolf SPEC version 0.1.10 is available. It is not a stable release but is very much finalized. Since the 'use Perl' feature about it, I got an oppurtunity to rethink, expand, and refactor my original conception. Thus, I believe many people will find the new specification much superior to the one presented in the original post."
Your specification was very interesting reading. I'll be interested to see what comes of this. However, I do have some problems with what you put together. To quote from the specification:
However, [Perl 6] also breaks a lot of compatibility and so will be hard to port existing Perl 5 code to. Perl 6 may eventually be a wonderful language. ``But it's not going to be Perl''.
It seems to me that you are laboring under a misapprehension that many Perl programmers seem to face. You have addressed two issues in the above quote. On the first, regarding portability, you are incorrect. The Perl 6 effort has been started from the beginning with the assumption that migration pains from Perl 5 to Perl 6 be minimized. It is intended that there be a "Perl 5 compatibility mode" that will allow Perl 5 programs to run under Perl 6 with little to no modification. If that's not painless, I don't know what is. However, to truly utilize the full power of Perl 6, you'll have to program in Perl 6. Pick up the latest issue of Sys Admin magazine which has "The Perl Journal" supplement. In there you will find an article by Damian Conway entitled "And Now for Something Completely Similar" (a little tweak at our Python friends
So, not only does that address the "porting" issue, but this also addresses the question of whether or not Perl will still be Perl. I have to emphatically say "yes". Since virtually none of the core is changing, with the exception of what many would consider to be cosmetic differences (my ex-wife used to dye her hair - I still recognized her), I think there is really very little question as to whether or not Perl will be Perl.
If there is any point to be learned from Dr. Conway's article, it's this: Perl 6 has seemed overwhelming to many Perl programmers because the Revelations have focused on the new features of Perl 6. They are, by definition, different features, thus leading many people to have a skewed impression of what's going on. Dr. Conway's article was an attempt to correct this.
Another quote:
Subsequent versions of [Rindolf] will integrate programming paradigms only after they were proven as mature, useful and appropriate to its general philosophy.
I strongly urge you to reconsider this. Think about pseudo-hashes in Perl. The failure of pseudo-hashes is testament to the success of Perl. They were an innovative attempt to solve a very real problem. They were cumbersome, often generated weird error messages, and were later proven (by Michael Schwern, if I recall correctly), to negatively impact the performance of regular arrays and hashes, thereby showing that the performance improvement of pseudo-hashes was illusory. This is called "innovation". If you're not willing to take risks, it's tough to get the rewards. If all attempts at innovation were successful, that means we're being too conservative in our approach. If you continue with Rindolf, don't be afraid to take leaps of faith beyond the initial language concept.
Minor correction
Ovid on 2002-03-11T00:28:23
I blathered:
Perl 6 will be virtually identical to Perl 5.I should have said "the core of Perl 6...". Needless to say, there are so many new things added to the language that while Perl 6 can look almost identical to Perl 5, to utilize its full power, you'll start using strange and wonderful features that Perl 5 simply doesn't have. It's kind of like the "C-style" Perl. Yes, you write Perl in such a way that it resembles C -- the "C-style" for(;;){} loop being the classic example -- but Perl is much more powerful when you let it be Perl
:) Re:I think you misrepresent Perl 6
Shlomi Fish on 2002-03-11T04:31:36
First of all, the "But, it's not going to be Perl" sentence was meant as a reference to a similar comment made on Fortran 90. I seem to have misplaced the place where I've seen this quote. Anyone to the rescue?
Now regarding the difference between Rindolf and Perl 6: I'm trying to put stuff in Rindolf, without bloating the language too much, as opposed to Perl 6 which, IMO, seems like the LCM of all computer languages possible.
What is not in Rindolf is equally important as what is in there.
The other quote you mentioned, regarding paradigms integration, should maybe be re-thought. This is just an "unstable" version of the SPEC and still have some ground to cover.
Re:I think you misrepresent Perl 6
scottpdd.com.au on 2002-03-11T06:14:24
Two major problems I have with this reply.
1) Rindolf is based on Perl 5 which is very complicated with everything in it. You complain about being too complicated but that is what you are basing your core around.
2) Perl 6 on the other hand is taking the opposite approach and making the core language very tiny. It achieves the same as Perl 5 and more, but by doing it all in separate libraries. This is key to Perl 6.
Re:I think you misrepresent Perl 6
chrimble on 2002-03-11T09:29:11
Therefore, would it not make more sense to derive Rindolf from Perl 6 (when it becomes available) than to try and retrofit features onto the scary Perl 5 code base? 8)Re:I think you misrepresent Perl 6
Shlomi Fish on 2002-03-11T17:15:31
One should distinguish between the Perl 5 language and the perl 5.6.1 codebase. The Rindolf SPEC does not talk about how to internals of the interpreter will look like.
Rindolf hackers may eventually use Parrot as our back-end. Or the original perl 5 one. But then, I heard good things about the Ruby codebase, so who knows.
;-) From what I know, the intention of the perl 5 hackers is to eventually implement it above Parrot, as Parrot is a generic VM which should be suitable for many high-level languages. Hopefully, we should be able to write a combined Rindolf/Perl 5 interpreter using the same codebase.
Of course, at the moment, all of those are pipe dreams. Parrot is not ready for prime time yet, and I have yet to determine the minor details of the Rindolf syntax. And I also want to make sure the Perl community at large is aware of this effort, so I'll get feedback and be synchonized with them.
Re:I think you misrepresent Perl 6
Matts on 2002-03-11T10:39:00
A Perl 5 compiler for Perl 6 is a stated goal, and surely is honourable. But it's very unlikely to happen in the real world we work in. At least not in any timely fashion. And it's not going to really be a migration path because it's unlikely to allow you to mix both syntaxes in one file (all it will allow you to do (it seems) is to run old Perl 5 modules in your Perl 6 program, which doesn't seem like much of an incentive to update those modules to Perl 6 modules to me).
There are lots of issues here being swept over with a bit of hand waving and declared magic of how these things will just work, but very few people have thought about the effort to produce these bits of magic.
Not that I think Rindolf is a good idea, or that Perl 6 is a bad idea, I just think the idea of a Perl 5 to Perl 6 compiler is a nice one, but the reality is it's not going to get done for the same reason that people don't want to work on the Perl 5 compiler any more - it's boring thankless work.
Vanity Project
chromatic on 2002-03-12T02:26:29
Some very valuable lessons can be learned from vanity projects. Topaz and Sapphire come to mind. Along those lines, Spudzeppelin had the idea to port Perl (5 or 6) to APR. That would also be a good learning experience.Too bad my plate's full of actual kitchen cooking learning experiences.
:)