in reply to Perl 6 release dates - two years later
"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.
While it is certaintly true that the only people who can complain are the ones that are working on it, it is also true that we do not like being taunted with all this shiny goodness if there is no schedule. This is, sadly, pretty much the reason I found Ruby ... and I really like it. However I want Perl6 to come along and would like early alpha or beta releases, and have features come in later (6.1, 6.2) etc, rather than have development go on forever without getting "users" into the fold.
Re^2: Perl 6 release dates - two years later
by stefp (Vicar) on Oct 21, 2004 at 17:44 UTC
"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
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
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
That that it needs an answer, I will point out that you didn't
answer the question ... (meanwhile, I am psychologically incompatible with Python, so you don't have to worry about it!).
Having somewhat of a project management and software design background (err, acquired in weird ways, but nonetheless), and adding empirical evidence .. it does appear that Perl 6 is attempting a HUGE, and I do mean huge BDUF ...
In my personal endeavors, BDUF leads to fatality. As for fragalitiy of interfaces, I do sympathize, although many other languages have survived from very early versions with large-scale changes moving through it with each revision.
If you can't release because you are tracking to a known level of completion, that's one thing ... if you are not sure when it will be done or what it will be when it's done, that's huge -- it's something that you really have to watch out for. Part of software design isn't just making a good interface, it's making a flexibile interface and accomodating change.
OT: To sound a bit heretical, I actually don't care much about Parrot. Sure, it would be nice, but other languages already have fine interpreters. The CLR/Parrot idea is interesting, it could prove useful, but mostly, I am a HLL guy -- and I think in languages not in implementations. The beauty of Parrot will likely to those people who like to work on internals, that's just not me. Anyhow, replacing the VM and the language at the same time may actually be too much.