Live data from Hacker News

The Perl 6 project 10 years old today

use.perl.org

41–50 of 59 posts

Re: The Perl 6 project 10 years old today

#41
post #37

Earlier quoted context omitted.

Dude. The guy went out of his way to be positive about something the whole internet finds dubious at this point. Are there any valid criticisms to be made of Perl 6 or its process?

Are there any valid criticisms to be made of Perl 6 or its process? Certainly. The failure to have a Perl 6 running on Parrot within a few months of Parrot's inception hurt development immensely. The RFC process demonstrated that the initial idea of a Python 3000 style rearranging of a few external features and some internal structures was not nearly ambitious enough. Rethinking regular expressions into grammars was…

My point stands, though: the intent of Perl 6 was never to create a language or runtime or compiler which would gradually succumb to a Perl 7 which would gradually succumb to a Perl 8 and so on. Since the RFC process the intent of Perl 6 has to been to create a Perl which solves the limitations and flaws of Perl 5 and can thrive for the next twenty or more years.

The intent was to completely set aside iterative development in favor of a big design up front which is supposed to last decades without change, like some Egyptian pyramid or the Great Wall of China? And this intent came about because of a desire to fix all of Perl 5's flaws and limitations all at once?

That is one of the classical blunders! The most famous of which is "never get involved in a land war in Asia", but only slightly less well-known is the Second System Effect!

Re: The Perl 6 project 10 years old today

#42
post #29

Didn't someone say it take 10 years to develop great software?

You're probably thinking of Joel Spolsky's "It Takes Ten Years To Develop Great Software. Get Used To It".

http://www.joelonsoftware.com/articles/fog0000000017.html

However, Joel explicitly states this means you release early, and iterate.

Re: The Perl 6 project 10 years old today

#44
post #22
post #11

After reading that, it seems like Perl has rather nice community. If Python has engineers and Ruby rockstars, then I'd say that Perl has hackers.

> Python has engineers and Ruby rockstars This meaningless statement really bugs me. People who write Python and Ruby aren't rockstar engineers. They're just programmers/developers/[whatever you like to call them]. People who speak English are simply English speakers. Nothing more can, nor should, be inferred from that fact.

No, choosing a (Turing-complete) language is really choosing a community, of people who work on the same things you do in a similar way. Community implies shared values. Python's belief in there being only one correct way to do it, for example, is anathema to Ruby and Perl types. Ruby people like being called "rock stars" or "ninjas" (or it wouldn't be widespread in their community, job ads, blogs, etc etc). Just like Perl types like being called "wizards" (see how many times the word "magic" appears in the documentation).

Re: The Perl 6 project 10 years old today

#45

There's nothing wrong with taking 10 years to create something new. Since they began, I've taken serious ganders into java and ruby. Now that I'm back in the perl camp I find that I know a lot more about programming in other cultures. And now that the community is just about done, I can apply what I've learned using a "language" unprecedented in flexibility and capability.

> I can apply what I've learned using a "language" unprecedented in flexibility and capability.

This right here is what I've always hated about the perl community. It's so rare to find a perl user who can mention the language without spouting these kind of exaggerations and untruths.

Of course you could always prove me wrong by demonstrated how perl is "flexible" and "capable" in a manner that is unprecedented [1].

[1] un·prec·e·dent·ed

    adjective

    without previous instance; never before known or
    experienced; unexampled or unparalleled: an
    unprecedented event.

Re: The Perl 6 project 10 years old today

#46

Earlier quoted context omitted.

Are there any valid criticisms to be made of Perl 6 or its process? Certainly. The failure to have a Perl 6 running on Parrot within a few months of Parrot's inception hurt development immensely. The RFC process demonstrated that the initial idea of a Python 3000 style rearranging of a few external features and some internal structures was not nearly ambitious enough. Rethinking regular expressions into grammars was…

My point stands, though: the intent of Perl 6 was never to create a language or runtime or compiler which would gradually succumb to a Perl 7 which would gradually succumb to a Perl 8 and so on. Since the RFC process the intent of Perl 6 has to been to create a Perl which solves the limitations and flaws of Perl 5 and can thrive for the next twenty or more years. The intent was to completely set aside iterative devel…

The intent was to completely set aside iterative development...

Goodness, no--quite the opposite. The intent was and still is to allow iterative development and in-place upgrades, rather than requiring repeated flag-day breaks of backwards compatibility (the "it's obviously time to increment the major version number").

Re: The Perl 6 project 10 years old today

#47

There's nothing wrong with taking 10 years to create something new. Since they began, I've taken serious ganders into java and ruby. Now that I'm back in the perl camp I find that I know a lot more about programming in other cultures. And now that the community is just about done, I can apply what I've learned using a "language" unprecedented in flexibility and capability.

> I can apply what I've learned using a "language" unprecedented in flexibility and capability. This right here is what I've always hated about the perl community. It's so rare to find a perl user who can mention the language without spouting these kind of exaggerations and untruths. Of course you could always prove me wrong by demonstrated how perl is "flexible" and "capable" in a manner that is unprecedented [1]. […

Do you know of another language community with a library or extension system which rivals the CPAN, for one example? How about the existence of PCRE for another? Along those lines, have you seen Perl 6 grammars?

Re: The Perl 6 project 10 years old today

#48
post #42
post #29

Didn't someone say it take 10 years to develop great software?

You're probably thinking of Joel Spolsky's "It Takes Ten Years To Develop Great Software. Get Used To It". http://www.joelonsoftware.com/articles/fog0000000017.html However, Joel explicitly states this means you release early , and iterate.

Pugs first came out in 2005, and by my count it was the third implementation of Perl 6. Rakudo's a couple of days away from its 31st release. Yes, Perl 6 should have had regular releases much earlier than 2005, but we've used iterative development for years.

Re: The Perl 6 project 10 years old today

#50
post #14
post #12

Earlier quoted context omitted.

You're almost exactly right there. One promising thing about Perl 6 is the way it brings parsers to everyday programming the way previous Perls popularized regexes. :) Perl 6's approach to syntax, operators, grammars, language extension, etc. is like Common Lisp's reader macros; except that Perl 6 makes them easy and composable. Common Lisp libraries tend to use reader macros very sparingly because it's hard to make…

How does it compare to camlp4? Camlp4 extensions are mostly composable, provided two extensions don't directly conflict with each other.

I'm not very familiar with Camlp4. I tried skimming the tutorial to see if some of the big benefits of Perl 6's syntactic extension are there, but couldn't tell.

Are Camlp4 extensions lexical? Can you load some syntactic extension within a single function and have it apply within only that function's lexical scope?

If I understand Camlp4 correctly, it's essentially a pre-processor. It's a very powerful pre-processor, perhaps, but you'd probably have to work very deep magic to be able to replace the Ocaml parser for a lexical scope. This is not yet implemented, but eventually you'll be able to do 'supersede slang MAIN { ... }' and rewrite the grammar the current lexical scope.

How easy is it to use Camlp4 extensions from OCaml programs? In Perl 6, it's a simple matter of "use SomeModule;".

Here's the code of a module to provide a factorial operator.

  module Factorial;

  multi sub postfix:(Mu $n) is export {
      [*] 1..$n;
  }
And an example of using it:

  use Factorial;
  say 5!; # outputs 120
This is actually essentially how many of the built-in operators are provided in Rakudo. The ones that aren't provided in this way are the ones like || and && with short-circuiting semantics which need to be evaluated specially and the ones that are better implemented in PIR.

I'm afraid I don't have any examples of more extensive grammar modifications, as Rakudo doesn't have much support for them yet. More accurately, it doesn't have support for adding them in mid-parse yet; it's fairly simple to create a new grammar class deriving from Rakudo's Perl6::Grammar with a few modifications and parse files with it.

Post reply on HN