March 22nd, 2013, 12:40 PM
Perl 5 / Perl 6
I was just working when one of my colleague told me about Perl 6 (which apparently has been out for nearly a year). I know that a new release for Perl 5 came out a year ago and also know that they are still working on new developments and releases.
The problem here is that Perl 6 seems to be a completely new design and might even be totally distinct from Perl 5. At the offices of-course we have been using Perl to generate reports for the past two decades nearly and whenever a new release comes - we get frightened to death to migrate. Even though some of our legacy systems use older releases of 5, I was wondering if anyone here know about Perl 6's performance in general - if we were looking to migrate in the near future (which means in the next couple of years actually).
Since they are distinct should I be worrying about migration? (Does Perl 6 support compatibility with 5?) Our systems generate a few hundred reports a day ranging from critical importance to just backups and ofcourse if we do deploy for testing, we would start from the least important ones and work our way to the high priority ones later... but according to you guys what would be a good thing to do?
March 22nd, 2013, 05:20 PM
Perl 5 continues to recieve regular updates. Perl 6 is a different language. There is no need to migrate.
March 22nd, 2013, 05:49 PM
Forget about migrating to Perl 6 for the moment (and probably for quite a while).
Perl 6, while being promising, is still under development and quite far from being completely implemented. You may try the r'ecent implementations for experimentation, to get a gist of it, but don't try to use it in production for the time being (and don't even think about it). It is very very far from being mature. Also, if you are using Perl modules, only a limited amount of them have been ported to perl 6, nothing compared to the walth of the CPAN Perl 5 archive.
In addition, although the syntax is relatively similar to Perl 5, there are a number of significant differences. Perl 5 code will in general not run under Perl 6. Perl 5 and Perl 6 are really two different languages with a common ancestors, porting a program from one to the other is not likely to be an easy task. (Well, to tell the truth, the plans are that the Perl 6 compiler should have a Perl 5 compatibility mode, but if that were your plans, then what is the point? You could just as well use Perl 5. This option may become quite useful in the future, when and if Perl 6 finally becomes dominant over Perl 5, but that is far from being the case now and in the near predictable future.)
Two additional points.
Perl 5 is not dead, quite to the contrary, it continues and will continue to live and evolve, with about one major release every year in the last years. In addition, a number of the important improvements included in the Perl 6 specifications have found their way in the Perl 5 releases (at least those that were or could be made compatible). For example, the Moose extension implements
On the other hand, don't take this as a critique against Perl 6. The Perl 6 spec is a beautiful program and I sincerely hope that this project will succeed. I have briefly tried the current implementation, this really looks promising. But it should also be recognized that this project has been underway for more than 10 years by now and is still far from completion. Some people start to have some doubts that it will ever come to full maturation. It would be a pity in my opinion if it does not, but, on the other hand, this project has spilled over some very significant improvements on Perl 5, so that even if it eventually dies, it have brought a lot of positive things.
To summarize, don't even contemplate to migrate to Perl 6 for the time being. And do the Perl 5 migrations as you can, you'll really get benefits from that. And, BTW, moving from one version of Perl 5 to the next should not be too painful, upward compatibility is assured to a very large extent. You might need some minor adjustments in some very specific cases, but, in general, code running on Perl 5.6 (released in March 2000) also runs on Perl 5.16.
March 22nd, 2013, 10:02 PM
Originally Posted by Laurent_R