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."

6 of 106 comments (clear)

  1. nope by Anonymous Coward · · Score: 0, Interesting

    As a daily user of Perl I can say conclusively that I have no desire whatsoever to peek inside Larry Wall's head, nor into any other part of his body for that matter.

    Any language that requires you to understand how the creator of the language thinks is bound to be a shitshow of epic proportions.

    Perl is even worse than C++, and that's saying A LOT. Two of the most idiotically fucked up languages ever invented.

  2. Want to try it one day by Anonymous Coward · · Score: 2, Interesting

    Been meaning to give Perl 6 a try for years but never got around to it.

    I use Perl as a utility language to automate small tasks and get things done quickly. Yet would never write real software in Perl. Not because the language is somehow defective or incapable of handling it. It's because what makes Perl most useful to me would be disastrous when applied to non-trivial software and when I stop and do it right Perl's convenience no longer outweighs use of other languages.

    Sat in on one of Larrys talks years ago and quite frankly most of what he had to say whooshed right over my head. I'm afraid Perl 6 may be sufficiently clever and advanced that when I finally do seriously get into it..it will prove to be too much/not worth it or simply beyond my capability to understand. I do really appreciate some of the features.. promises and the ability to modify language itself (NQP). A lot of why I like Perl has to do with the ability to quickly use it to run my crappy configuration languages.

    My own view of the future of programming is general solutions are fools errands no matter how clever you are. The only meaningful progress short of AGI will come from implementation and integration of domain specific languages.

    If I want to write music I use music language. If I want to manipulate graphics I use graphics languages. If I want to do statistics I use a stats language. If I want to organize or manipulate information I use a data language. If I want to write a wire protocol I use protocol language. It's the making glue as seamless and easy as possible... allowing users to create their own domain specific language to better address specific issues... that will mark real progress in terms of language design.

  3. 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"
  4. 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;
  5. 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.

     

  6. 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