http://www.perlmonks.org?node_id=872837


in reply to What is Perl6?

Perl6 is a spec. Rakudo is an implementations. Parrot is the runtime.

This is not unfamiliar territory.

Replies are listed 'Best First'.
Re^2: What is Perl6?
by punkish (Priest) on Nov 22, 2010 at 00:46 UTC
    This is not unfamiliar territory.
    Perhaps not to you. It certainly was to me, which is why I started this thread. I asked a few of my colleagues. They agreed with me. For good measure, I called up a friend of mine who is a Python programmer. He also said that this was confusing to him. He considers himself a Python programmer, he downloads Python, he programs in Python, his programs are written in Python, and he uses Python (the compiler/run-time) to run his programs.

    sigh. Look. I admit that I am technically wrong. But, I am telling how it is. If we want less confusion, if we want Perl 6 to get mindshare, in my highly unscientific but very human-centric view, the message has to be clear and unambiguous, not loaded with technical distinctions that most people will find confusing needlessly.

    Update: By the way, I always found Java naming conventions terrible. They stank to high heaven. Its been a while, but I was always puzzled by Java 2 Version 5 SE whatever. There was the JDK and the JVM and the hotspot technology and the JRE. Seriously?

    It is like Japanese electronics companies naming their products compared to Apple -- you have the svelte Sony VPCZ1290X Vaio computer on the one hand or you have the Apple MacBook on the other.

    --

    when small people start casting long shadows, it is time to go to bed

      not loaded with technical distinctions that most people will find confusing needlessly.

      I provided technical details since you seem to be asking for them. There's no need to know any technical details. All you need to know is that you need rakudo to compile the program, and parrot to run it.

      They can't share the same name since they're unrelated projects.

      I always found Java naming conventions terrible.

      It's the web site that was terrible. The distinction is actually quite straightforward.

      • JDK — Sun's distro for developers. Includes their compiler (javac) and their runtime (java).
      • JRE — Sun's distro for users. Includes their runtime (java).

      JVM is an imaginary machine whose assembler language is Java Bytecode, the product of Sun's compiler. It's not a term you should have to deal with.

        I provided technical details since you seem to be asking for them. There's no need to know any technical details. You need rakudo to compile the program, and parrot to run it.
        And that, in my view, is the crux of the problem. Even if I don't want to know any technical details, I have to "write" programs in Perl 6, "compile" them with Rakudo, and "run" them with Parrot.

        This is something I don't have to do with Perl 5. Having worked with Perl 5 for the past 5-6 years, I have written my programs in Perl, and used the perl binary (call it the compiler or the run-time) to run them. Going from version 5 to version 6, and having this change seems to be quite a significant point of inflection.

        Anyway, the point now is -- I understand the difference between the three now, but I don't necessarily appreciate them. To the extent that I have to convey to others what I do with Perl, I will try to keep it simple by telling them that I use Perl, write in Perl and run Perl.

        To me, it seems, that will be a simple, easy to understand message.

        --

        when small people start casting long shadows, it is time to go to bed

      Isn't there Puthon and JPython?

      As Occam said: Entia non sunt multiplicanda praeter necessitatem.

        Isn't there Puthon and JPython?
        You are correct. I had forgotten about Jython (the successor to JPython -- I don't think there is any Puthon). In my view, Jython is a bit different -- it is Python written in Java. Kinda like Objective-J. At one point there used to be a PerlScript (from ActiveState) so one could use Perl syntax to write browser-side programs. My impression is that Perl6/Rakudo/Parrot nexus is qualitatively different from the Python/Jython nexus.

        By the way, Occam was also correct.

        --

        when small people start casting long shadows, it is time to go to bed
        ... and Iron Python, and PyPy (Python in Python), and Jython, and others. Those are all on Python 2.6 or earlier, although the latest CPython is at 2.7, and only CPython is on Python 3, with Python 3.2 coming out in February.

        However, for newbies there is a clear download link from python.org - it is to the CPython release, since that is what most want. Will Perl 6 newbies want to wade through alternative versions? Personally I doubt it, choice is good when you are qualified to make the decision, but newbies will be scared of it (a reason for the success of Windows).

        Python 2 to Python 3 involved major changes, but nothing like the number of differences between Perl 5 and 6. Two years since the full release of Python 3 and it is still a minority of sites using it. A major factor in the slow take-up is the lack of ported modules. There is currently a freeze on Python 3 language development to allow everyone a stable target. I'm sure the Perl 6 people are watching the Python 3 experience, and I hope the lessons are being learnt.

        Actually, William never did say that. It was made up later. What he said was numquam ponenda est pluralitas sine necessitate.

Re^2: What is Perl6?
by mojotoad (Monsignor) on Nov 24, 2010 at 09:03 UTC
    To be fair, when confronted with a machine/OS, to ask "does it run (P|p)erl" is not an unfair question. In the perl5 sense, "things work". Unless there's CPAN dependencies, etc, which are solved in other ways.

    I love languages. But will Perl6 "just work" on standard distros? Who knows. I hope so.

    Historically, Perl has "just worked", as opposed to *very* persnickety backwards-compatibility-impaired 'other interpreted languages'.

    Cheers,
    Matt

      I think you've got some sampling bias in your definition of "just works". Perl does not "just work" in many places where Java, C#, JavaScript, and even (shudder) PHP "just work". We'd like to fix that so that Perl 6 "just works" all those places too.
        This systems-hound (unix-ish expectations) is busted, fair and square.

        I've recently had to do a bunch of perl5 work in the Win32 world (via Strawberry as it happens), including full-blown GUI support.

        I ran into more stuff that broke perl than I would have ever imagined. But mostly, this is because the environment was breaking POSIX. Live and learn.

        I think the primary point of my original comment was that I'd like to minimize those kinds of surprises (multi-platform abstraction) as well as minimize language surprises (i.e. sorry, this is not your flavor of perl6).

        The test suite evolving around the current specification gives me hope.

        Cheers,
        Matt

        What are your thoughts on these comments in the Link about perl ?