"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.
|