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


in reply to Re: What is Perl6? -- a language.
in thread What is Perl6?

I've heard about a programming language called 'C'. It's supposed to be very fast. Yet, if I want to install C, I'm directed the "Gnu Compiler Collection". Or to "clang", based on LLVM, a low-level virtual machine. Or icc, tcc, ... . Whoa! What happened here?
You are absolutely correct. It is very confusing to most people. To those who install C, it perhaps makes sense, but I've never had to install C. It always comes on my computer.

The problem is -- I do have to install Perl. Perl is a fairly routine install. So, when I install "Perl," I install Perl. The world of Perl 5 has made me expect that the language, its specs, its compiler, its VM, its grammar, its whatever... they are all Perl. This makes it easy for me to understand, and it makes communication easy to others. There are times when I have to install Perl (or ask for Perl to be installed) on a server owned by someone else. I tell them to please install Perl, and they do so at /usr/local/bin. Well, now it is a lot more confusing.

I guess, the reality is that a developer at one level is a user at another (and vice versa). I don't develop Perl, but I use Perl to develop with it. Others use the programs that I write with Perl. So, we have all these different "levels" of users. Simpler naming leads to simpler communication. Is all I am saying.

So you don't know any reasons, yet assume the worst in others. How very encouraging
Not at all. Apologies if that came out so. It was more of a tongue-in-cheek statement, but it was based in something that seemed needlessly complicated.
Perl 6 is a language. Just not a compiler. And why ever not? What's wrong with C, C++, Java, Python, Pascal, Haskell and all the other languages that have a specification, and multiple compilers?
Perhaps they do. I only know of the Perl 5 world, and I don't have this confusion in the Perl 5 world. That is where I am coming from.
--

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

Replies are listed 'Best First'.
Re^3: What is Perl6?
by moritz (Cardinal) on Nov 21, 2010 at 21:10 UTC
    I've never had to install C. It always comes on my computer.

    NO. A programming language is something abstract. Something that exists inside your head. Like an idea. You can't install a concept on a computer. Just programs.

    And if you conflate programming languages and the tools that work with them, you're creating a lot of confusion.

    Simpler naming leads to simpler communication. Is all I am saying.

    You're spot on. It's simpler to have different names for different things. A language is not the same as a compiler for that language. Therefore we have different names for the language and for our compilers.

    In Perl 5 it doesn't matter very much if conflate the language and compiler, because there's just one compiler, and so context usually makes it clear which one you mean. That's not the case with Perl 6, Haskell, C, and many other languages.

      NO. A programming language is something abstract. Something that exists inside your head. Like an idea. You can't install a concept on a computer.
      In my view, and perhaps only in my view, you are making this way too complicated.

      Kinda replying to the other messages in this thread as well -- yourself, chromatic, ikegami -- you are all Perl veterans.

      Even though I have been using Perl for a while, I consider myself a user, in my home-made spectrum, a user being lesser than a veteran. I conducted a very unscientific test -- I asked three of my colleagues. All three of them understood that Perl was a language, and could be installed on a computer. None of them appreciated that Perl 6 was a spec, Rakudo was a compiler and Parrot was a virtual machine.

      Now, it seems that this confusion will likely perpetuate. Those who know better will continue to tell others that Perl 6 is a spec, Rakodu is a compiler and Parrot is a VM. Common users such as myself will continue to use the term Perl to refer to the language, its instantiation, its compiler, and the programs written in it. That is the reality.

      I know that I will be a Perl programmer, I will write Perl programs, and I will call /usr/local/bin/perl to run my Perl programs. Nowhere in this path will I ever refer to myself or the tools I use as being Rakudo or Parrot.

      I don't expect what is out there to change, but I did feel it worthwhile to make my confusion and its source known. I hope that is taken as a point of feedback as it is meant to be.

      Many thanks.

      --

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

        punkish:

        Actually, I think you're making it too complicated. You know what a car is, right? It may surprise you, but you can't actually buy a "car". You can buy a Mustang, a Prius, or many other types of car. But there is no "car". The "car" is a concept, and Ford, Honda et. al. are all manufacturers who would love to sell you one. And they sell different types.

        In computers, you know what an operating system is, but you're not running "operating system", you're running Windows, Linux or some specific type of operating system. You're viewing this message not with "HTML viewer", but FireFox, IE, Opera or some such.

        Since you see this every day in every aspect of life, I find it odd that you're having difficulty with this one instance.

        ...roboticus

        In my view, and perhaps only in my view, you are making this way too complicated.

        What I've been trying to tell you is that we're not making it more complicated than it is. There is some essential complexity, and as a programmer you just have to deal with it. But our naming scheme doesn't make it more complicated than it is.

Re^3: What is Perl 6?
by chromatic (Archbishop) on Nov 21, 2010 at 22:25 UTC
    So, when I install "Perl," I install Perl.

    Which Perl?

    (All the Platonists in the back, put down your hands.)

      So, when I install "Perl," I install Perl.

      Which Perl?

      I thought I made that very clear in my first message -- Perl 5. I have and do install Perl 5. When I do that, I go to perl.org, from where I directed to cpan from where I download perl-5.12.2 http://www.cpan.org/src/5.0/perl-5.12.2.tar.gz. Mind it, not Rakudo or some other name. I download Perl 5, which is evident from the name of the tar gzip archive. I install it and then I call /usr/local/bin/perl the executable.

      See, no confusion at all. Everything is Perl. No metaphysics, no Platonists, no existentialists. Just plain simple Perl all the way.

      This is not the case with Perl 6. I click on download on perl6.org, and I am redirected to rakudo.org. By that time, I am in the, "What the..." mode.

      --

      when small people start casting long shadows, it is time to go to bed
        Back when I was using Perl (5) on Windows, I had the choice between using a Perl that I installed with Cygwin, and Activestate Perl. They were subtly different, yet I still had to deal with the choice, and I even had to care. And even in the cases where "it's already on my computer", there suddenly is a feature of awk that's not in the version that I use (WTF? I thought I had awk? No? Darnit.), and I have to start caring which awk it was anyway. Yet the command line tool is called "awk". I think you just have to deal with this kind of complexity if you want to be a programmer.
Re^3: What is Perl6?
by roboticus (Chancellor) on Nov 22, 2010 at 02:55 UTC