Slashdot Mirror


New Video Peeks 'Inside the Head' of Perl Creator Larry Wall (infoq.com)

"I was trained more as a linguist than a computer scientist," says Perl creator Larry Wall, "and some people would say it shows." An anonymous reader describes Wall's new video interview up on InfoQ: "With a natural language, you learn it as you go," Wall says. "You're not expected to know the whole language at once. It's okay to have dialects... Natural languages evolve over time, and they don't have arbitrary limits. They naturally cover multiple paradigms. There are external influences on style... It has fractal dimensionality to it. Easy things should be easy, hard things should be possible. And, you know, if you get really good at it, you can even speak CompSci."

Wall also touched on the long delay for the release of Perl 6. "In the year 2000, we said 'Maybe it's time to break backward compatibility, just once. Maybe we can afford to do that, get off the worse-is-worse cycle, crank the thing once for a worse-is-better cycle." The development team received a whopping 361 suggestions -- and was also influenced by Paul Graham's essay on the 100-year language. "We put a lot of these ideas together and thought really hard, and came up with a whole bunch of principles in the last 15 years." Among the pithy principles: "Give the user enough rope to shoot themselves in the foot, but hide the rope in the corner," and "Encapsulate cleverness, then reuse the heck out of it.."

But Wall emphasized the flexibility and multi-paradigm nature that they finally implemented in Perl 6. "The thing we really came up with was... There really is no one true language. Not even Perl 6, because Perl 6 itself is a braid of sublanguages -- slangs for short -- and they interact with each other, and you can modify each part of the braid..."

Wall even demoed a sigil-less style, and argued that Perl 6 was everything from "expressive" and "optimizable" to "gradually-typed" and "concurrency aware," while supporting multiple virtual machines. He also notes that Perl 6 borrows powerful features from other languages, including Haskell (lazy evaluation) Smalltalk (traits), Go (promises and channels), and C# (functional reactive programming).

And towards the end of the interview Wall remembers how the original release of Perl was considered by some as a violation of the Unix philosophy of doing one thing and doing it well. "I was already on my rebellious slide into changing the world at that point."

9 of 106 comments (clear)

  1. I actually remember those early Unix days. by hey! · · Score: 5, Insightful

    The idea that Perl doesn't do one thing well just goes to show people haven't changed; they latch onto a catch phrase then go running around seeing who they can whack with it, apparently proving to themselves how clever they are.

    PERL's wheelhouse from back in the day was right there in the name: practical extraction and report language. People who actually did that stuff for a living had no difficulty grasping PERL's significance: it made your job easier.

    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    1. Re:I actually remember those early Unix days. by hey! · · Score: 3, Informative

      Up to a point, sure. For what in relational terms would be selection, projection, and aggregation of delimited input, awk works great. PERL slots in where you'd start thinking about writing a C program instead.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  2. What a mess! by Gravis+Zero · · Score: 5, Funny

    Why would you use anything besides Malbolge?
    Seriously, just look how straightforward things are in Malbolge!
    (I feel silly having to explain this but) this is obviously a "Hello World!" example.

    (=<`#9]~6ZY32Vx/4Rs+0No-&Jk)"Fh}|Bcy?`=*z]Kw%oG4UUS0/@-ejc(:'8dc

    This is a mess of a "Hello World!" example in Perl 6.

    print "Hello World!"

    Talk about a write only language!

    Seriously, the future has always been Malbolge. Why are people bothering with any version of Perl?

    --
    Anons need not reply. Questions end with a question mark.
  3. The problem with breaking backward compatibility by 93+Escort+Wagon · · Score: 4, Informative

    When you choose to remove backward compatibility, those of us who've been using perl for a while basically will (or at least should) evaluate our need for a new language from scratch. And, compared to other languages (e.g. python, php) perl 6 has several strikes against it - two big ones being the lack of an installed base and the relatively small number of fellow coders.

    People who haven't already used perl in the past will likely not be inclined to try perl 6; and not everyone who's written perl to this point will choose to pick perl 6 as their "new" language going forward. Speaking only for myself, I've got a fair bit of existing perl 5 code, which will be maintained or upgraded as perl 5... and going forward I'll probably pick something other than perl 6 for new work.

    --
    #DeleteChrome
  4. Re:You don't want a natural language by Aighearach · · Score: 5, Insightful

    a programming language is created to speak to a computer/compiler, not to a human.

    Hogwash. The conversation is between the programmer and the programmers who wrote the next layer down, repeated a few times, until those programmers eventually have a conversation with the circuit designer or engineer, who speaks a few different languages used by engineers, eventually speaking to engineers who designed machines that build circuits. And it keeps going down, and it is all humans talking, all the way down, until you get to apes grunting.

  5. Use as intended by Pikoro · · Score: 4, Interesting

    The problem I've always seen with PERL is that nobody seems to use it as it was intended. If you have to take massive amounts of data (usually text), extract information from it, manipulate it, and then output it into a meaningful result, the PERL does this. It is VERY good at this. it's when people start tacking on shell scripts, a tcl/tk ui, and using it as the base for a program that doesn't do those things, that we run into problems.

    I once worked for a telecom in Japan and one of my jobs was to take billing data from a couple hundred subsidiaries, normalize the data, dump it into a formatted table, calculate usage and totals, then output a properly formatted paper bill. (this was in the early 90s) PERL was the obvious and best choice for this back then.

    The data we got was in various formats from CSV to excel sheets, to plain text files with various fields defined (or not). PERL also has an excellent template system for outputting data to fixed width columns and doing output formatting.

    --
    "Freedom in the USA is not the ability to do what you want. It is the ability to stop others from doing what THEY want"
  6. Re: The problem with breaking backward compatibili by Hal_Porter · · Score: 3, Interesting

    Blasphemy!

    C is the pinnacle of human intellectual achievement and Perl is heresy!

    --
    echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
  7. Misconception by mattr · · Score: 4, Interesting

    Now I know why people want to rename Perl 6. That trend even had made me a bit uncomfortable, though the latest candidate "P6" sounds better to me.

    Perl 6 is a totally different language and yet almost all the posts here are by people who rail against Perl 5.

    Perl 6 is already released and it works. It is an incredibly exciting and eminently useful tool that is aimed squarely at the 21st Century. The code is very readable, and probably much more concise than whatever you are using. It is written in Perl 6. It has the best Unicode and regular expressions in the world, full object model, and chained processing, while also mixing in functional and reactive programming styles, plus keywords that make it easy to compose parallel processing for both calculations and UI. It provides exact mathematical results with rational numbers. You can extend the language with your own symbols, and it feels more awesome the more you study it. For example just this past month I learned about how the compiler actually optimizes your code by simulating it before running it. There is a lot more room for it to grow, but it is already awe-inspiring. Not scary awe, but damn! I gotta get me some of that! excitement.

    The community is also very helpful and welcoming. At this point, if you are looking for a tool powerful enough to realize your visions or just to mess around with, I would recommend reading more about it. I'm hooked and am convinced it is the best tool for prototyping mine.

     

  8. Re:The problem with breaking backward compatibilit by ggoebel · · Score: 5, Interesting

    I think you ought to test/validate your assumptions and consider evaluating what Perl 6 has to offer. Many of the core Perl 6 developers had little experience or interest in Perl 5. The pace of development and number of committers seems to be accelerating.

    Performance has gotten about 4 times faster in the last year.

    The developer ecosystem is maturing. CPAN6 is here.

    Perl 6 provides Inline::Perl5. Which allows backward compatible access to and mixing of Perl 5 and Perl 6. It also allows you to specify a versioned dialect of Perl 6. So in ~10 years when Perl 6.i is released. Your code targeting Perl 6.d functionality which has been deprecated in 6.e and removed in 6.f will still work.

    The design and implementation of Perl 6 is clean and heavily influenced by Paul Graham's essay on The Hundred-Year Language. Most of Perl 6 is written in both Perl 6 and a subset of Perl 6 called Not Quite Perl (NQP). Which means Perl developers don't need to learn another language to become core developers.

    Larry said that acceleration beats velocity. Perl 6 certainly seems to be accelerating. If you watch the video... there's a lot of exciting things baked into Perl 6. However the focus is on getting things right, clean, and fast (in that order). If/when performance gets within ~10-20% of Perl 5, Python, etc... I think the expressiveness and strangely consistent and clean language design will prompt many to re-evaluate their concept of Perl.

    --
    Life is like an egg better scrambled than fried. -- Ken Sawatari