|Think about Loose Coupling|
Re^2: Perl 6 release dates - two years laterby stefp (Vicar)
|on Oct 21, 2004 at 17:44 UTC||Need Help??|
"Release early, release often ..." isn't a silver bullet, but I will say that spending too much time in the design phase, at least in my projects, is usually lethal, unless it's constant redesign coupled with implementation.
Once you release the first version of a language compiler/interpreter, you are bound by it because people will rightly expect program to run on later versions.
It is difficult to release early, and later add features or you get into the syntactic mess that are perl5 and C++ with the addition of OO into an existing language. Less visible for the users of the langage is the problem of new features implementation. You can't graft signigicant features after the fact without redesigning the internals or being bound by them. Perl5 threads come to mind
These problems of compatibility with existing code, coherency of the language, coherency of the implementation seems to escape the mind of well-willing but misguided people like shlomi on Freshmeat.
Like every language, Perl5 is bound by decisions that were made since its inception. In fact, as a synthetic language, it integrated features from diverse Unix program in one language but it perpetuated accidents of history dating from the beginning of Unix. In a sense that was a quality because it meant that perl was easy to Unix programmers. But now it is a curse.
Perl6 is a rare occasion to start with a clean slate while benefiting from the experience accumulated thru the years. Larry said something like "let's do it right, no right now". Even when designed with extensibility in mind, early wrong choice are usually there forever. Worse, they tend to propagate to other languages.
Having read the apocalypses, synopses and exegeses, I understood how ambitious is the project. It is worth the wait. It is not fair to compare Perl6 with Python and Ruby and to say: Why should I wait because Python and Ruby are already there? Perl6 is not just a cleant-up perl5 with a few added features. It is a redesigned Perl
If you want Perl6 to be successful but are not interested in the internals, prepare to code for it so that Perl6 rapdidly gets a pool of competent people and various libraries. If you judge by the previous history of Perl and its durability, The investment in learning Perl6 will pay over the years
If you want to play with Perl6 technology, Parrot, the VM that will run Perl6, is already there and running. What is lacking are solid compilers on top of it to stress the current implementation so that its deficiencies are identified and fixed.