Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re^2: Perl 6 release dates - two years later

by stefp (Vicar)
on Oct 21, 2004 at 17:44 UTC ( #401235=note: print w/ replies, xml ) Need Help??


in reply to Re: Perl 6 release dates - two years later
in thread 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.

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.

-- stefp


Comment on Re^2: Perl 6 release dates - two years later
Re^3: Perl 6 release dates - two years later
by SpanishInquisition (Pilgrim) on Oct 22, 2004 at 02:52 UTC
    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.

      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 ...
      Here it is: I can live with perl5 a few years while waiting for Perl6 if switching to a new language does not bring me a big benefit. Perl6 will be a quantum leap without the need for me to learn a different language with all its libraries (or lack of thereof).

      In my personal endeavors, BDUF leads to fatality.
      BDUF means Big Design UpFront. I had to look it up. :(
      Perl6 is a second system so the big design benefits from fifteen years of experience.
      I think in languages not in implementations. (...) Anyhow, replacing the VM and the language at the same time may actually be too much
      You are honest about not being interested in internals. So why this gratuitous comment? Everything I know who has peeked into perl5 internals think it needed a redesign. So did the language. The best is to do one with the other in mind to avoid a mismatch of impedance. Other existing VMs did not match the bill.

      Anyway with the spanish inquisition, who stands a chance? :)
      Either way you loose. you are thrown to water. If you drown you are innocent. If you don't you are a witch and treated accordingly. :)

      -- stefp

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://401235]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (8)
As of 2014-10-01 14:46 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    What is your favourite meta-syntactic variable name?














    Results (26 votes), past polls