Interviews: Ask Perl Creator Larry Wall a Question
Larry Wall created the Perl programming language (as well as the Unix utility patch, and the Usenet client rn ). This Christmas saw the release of Perl 6 -- a "sister" language to the original Perl -- that's also free and open source, after 15 years of development. Now Larry has agreed to give some of his time to answer your questions (joking that "I doubt my remarks will be quite as controversial as, say, Donald Trump's, but I suspect I could say an interesting thing or two...")
Larry also gave Slashdot's very first interview back in 2002 -- so it's high time we had him back for more heartfelt and entertaining insights. Ask as many questions as you'd like, but please, one per comment. (And feel free to also leave your suggestions for who Slashdot should interview next.) We'll pick the very best questions -- and forward them on to Larry Wall himself.
Larry also gave Slashdot's very first interview back in 2002 -- so it's high time we had him back for more heartfelt and entertaining insights. Ask as many questions as you'd like, but please, one per comment. (And feel free to also leave your suggestions for who Slashdot should interview next.) We'll pick the very best questions -- and forward them on to Larry Wall himself.
Why is the syntax of perl so bad? It lends itself to scripts that even the authors can't understand after a week or two.
Why do you think so few people have adopted Perl as their language of choice?
Perl used to be central to so many things (the 'glue' language for the internet), but seems to be slowly falling out of use in deference to javascript, java, python, vbscript/powershell, etc. It's the language I used in my first job as a system administrator (back around the time you gave your first interview), and I loved it.
With so many years between the announcement of Perl 6 and it's completion, many people moved on to other solutions or technologies. Perl 6 is here now, but why should I use it?
"Murphy was an optimist" - O'Toole's commentary on Murphy's Law
Why, Larry, why????
The comments above prove the internet is pretty much a total failure that is now mostly populated by assholes who think they are glib, but are really completely unfunny low-IQ douche-nozzles."Enjoy."
Why is Perl so awesome?
What is the killer application for perl6 and why there is none? Historically, that would be scripting of EDA tools for TCL, scripting of web pages for JavaScript, Rails for Ruby, embedded scripting for LUA, Windows UI for VB, scientific computing for MATLAB, and so on. There is nothing for perl6.
As a linguist, you surely have some thoughts to share on the English language predominance in the IT field (as well as many others). Do you think that it may somewhat shape the way programming languages are designed, as well as IT infrastructures and ultimately our societies, in comparison of what it would be if we would use a no-nation-native language such as Esperanto? By the way, did you know Perligata[1] and Babylscript[2]?
[1] http://www.csse.monash.edu.au/~damian/papers/HTML/Perligata.html/
[2] http://www.babylscript.com/
In regards to the syntax; were you drunk/high, or do you just hate people?
Why has perl6 flopped?
And "I don't think it has" is not a valid answer.
Why did you decide to use prefixes to indicate the type of a variable ($@%)?
This is by far the most confusing thing about perl to me.
Other than that I think it's a nice scripting language with a better interface for calling external programs than python for instance.
Or at least one that's easier to use.
I think it probably has the opposite effect unfortunately
What do you think about Python . . . ?
Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
Can Perl prevent shootings?
Force the NRA folks to learn it and write an OS in it .
Perl is proven to be fundamentally broken. Here are two very entertaining videos about how to exploit weird array casting, hashes and so on.
I really think every perl programmer should have seen it.
https://media.ccc.de/v/31c3_-_...
https://media.ccc.de/v/32c3-71...
What do you say about this criticism and the exploited flaws?
I think there is. At least the influence of language is there. e.g. for many a search down is done with / and a search up with ? and for people who use a qwerty this is pretty obvious, as it is on the same key. The / is at the bottom and the ? is at the top.
So you have a key that means search and you can go up or down according to what is shown on the key.
If you work with a different keyboard, this becomes less obvious. on azerty-BE they are not on the same key and both are on the top, so there is no link to know why it is done that way. And understanding is always nice.
And that was just an example. Using [] means I need to use the right ALT key. Same for tick and back tick. or {}. This is not unpossible, but it is a LOT easier to do on a querty.
What I imagine has happened is that they start programming a language, look at the keyboard and think "What is the best key to use here?" and then take one that has not yet been used and which one can be accessed easily? On a different keyboard the result would have been different. e.g. a search could have been as they are not only on the same key, but even point to where you are going.
Don't fight for your country, if your country does not fight for you.
Why would you encourage someone to learn perl? (Compared to other programming languages, feel free to just give a general "reason" for perl, or an actual comparison).
And where can we get some?
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
It seems like a lot of industries have "esteemed individuals" who are given the benefit of the doubt. Priests, rabbis, imams, tenured professors, elite actors and directors, etc. Maybe in technology we have people like Larry Wall, David Heinemeier Hansson, Douglas Crockford, Paul Graham, etc. What are your thoughts on this?
I like having the feeling of esteem. It warms my heart when I think about what I've learned reading Fred Brooks, Seth Godin, Donald Knuth, etc. I hold you all in revence. I don't think this is such a bad thing. Would I blindly follow whatever any you say? No, of course not. But wisdom is wisdom, and experience is experience, and those of you who have it, and have had it, and have written to me about it, are very much appreciated and held in high esteem. I think this is all very good and healthy and perfetly natural. Thank you!
Which large companies are still using Perl in production? I can name Booking.com, but do you know any others?
I'll have enough respect to ask my question in Larry's native language: /\/\/%Â*&(.{5,93}[0-F])$/
Actually I love Perl. I can program in any of several languages and Perl is my all-around favorite. I just can't think of a question because if I had a question for Larry, I would have asked it by now.
I'm a big fan of Perl and still use it when I can for various personal projects and have been known to introduce it in official work-related tasks (where engineers were using batch files or shell scripts, etc.). I love Perl's terseness and flexibility. I learned regex from Perl in my first development job and it has stuck with me through a dozen different languages.
However, as many others have mentioned, it is falling out of favor, and in fact there are very few development shops that even have a need or desire for it. I've looked for Perl jobs and they rarely come up. It seems that most back-ends are now being written in any number of next-gen scripting languages like Python, JavaScript (NodeJS), and Swift. I don't see the advantages of these, but it's often hard to explain to colleagues, CTOs, managers, etc. the value of Perl over the newest trends. And Perl "6" is meaningless because to everyone else it's still Perl. Why should we choose Perl 6 over the new establishment?
Can you give us a glimpse into what your main work computer looks like? What's the hardware and OS, your preferred editor and browser, and any crucial software you want to give a shout-out to?
HI Larry
What has been done to port Perl to very small devices as a tool to create test applications? I'm doing some control work right now and testing/characterizing devices and peripherals with the results generating a set of csv data on the console that is copy and pasted into Excel.
I am really asking about small 32bit devices (with floating point units) - Cortex M4 specifically. I don't think a port could be created for an 8bit processor like the AVR.
Thanx!
Mimetics Inc. Twitter
PHP got a lot of inspiration from Perl, while missing key concepts (you know this one). However, thanks to web development PHP is currently one of the most popular languages.
What is your honest opinion about PHP? Are there things in PHP, missing in Perl, you regret not having thought about?
Reversely, which Perl features PHP should have taken?
$_
Slashdot, fix the reply notifications... You won't get away with it...
From the front page of Perl 6's site perl6.org:
The only requirement is that you know how to be nice to all kinds of people.
Isn't hat social justic enough for you? Linus may get flak for his "social" interactions, but it gets the point across and the job done.
I'd much rather have a correct dickhead over an incorrect nice guy when it comes to doing things that people need to be able to depend on.
Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
What kinda drugs did he take to create that crap?
I believe Larry indulges heavily in the opium of the masses.
Do you know of any project governance models that are 'known good' other than BDFL? It seems to me like 'caring' is the key to project success - and the BDFL him/herself, presumably, cares a great deal and inspires others to care a great deal. I've always wondered whether this known good level of success could be achieved with some modicum of democracy or in a project that is part of a larger project (and the project manager is appointed from above rather than self-selected). I've heard some good things about Apple's DRI or directly responsible individual, but it doesn't seem like other groups have had as much success implementing it, which makes me wonder about the method. By the way, thank you for all your work on Perl - it has brought me great fortune.
That isn't enough. It says "all kinds of people". What about individuals who identify as non-people (like furries)? Report to the nearest SJW reeducation camp!
You can do things right without being a douche nuckle, to me there is no excuse for either.
Perl6 seems to offer a lot in the base language, obviating many CPAN modules, but the network-effect of CPAN modules creates a gravitational field which, in combination with the differences in the base language, makes reaching escape velocity to Perl6 challenging.
What is the strategy for achieving escape velocity from Perl5's orbit to Perl6's?
Seastead this.
Do you think there is a language more powerful than perl?
With so many years in development, especially the language specification, it seems like Perl6 must have the most sophisticated design of all programming languages. Unfortunately it has no killer application (yet), and Perl6 code doesn't look as beautiful as Ruby code. What is being done to make Perl6 more attractive?
1. According to most metrics Perl 5 usage hasn't decreased but there is a perception problem indicating it has. Perl usage outstrips python by a lot but many think the opposite is true. Why do you think this perception exists? Is it related to calling the new language Perl 6 giving people the false impression that Perl 5 hasn't progressed as dramatically as it has in the past few years?
2. As a Perl 5 programmer, why should I care about Perl 6? Perl is most used by sysadmins and Perl 5 of some sort can be found on all major *nix distributions out of the box. Without this support Perl 6 might as well not even exist for this group who already have to code for Perl versions a decade out of date in many cases. How, if at all, do you see Perl 6 resolving this problem or do you see Perl 6 hitting a different base altogether?
As the recently re-trial of the case brought by Oracle against Google (over use of JAVA structures in Android) shows, intellectual property is and will remain hot property. One of the interesting things about intellectual property and languages, however, is how much of the syntax of supposedly different languages is remarkably similar (with a lot of inheritance from C).
May I ask for your views with respect to firstly protecting the intellectual property that you have invested in Perl as a language, but then perhaps also the wider challenge of IP with respect to programming languages and actual software packages?
[ Profound apologies to the moderators if that is two questions; I think they are too tightly linked to separate out ]...
Larry, PERL is a great language, the swiss-army chain saw.
My question is, how can we strategically pull the PERL language into the browser? Javascript and PHP are getting all the browser action. We know that Embperl and Mod_perl exist for server side scripting, but how can we can PERL into the browser? Do you have friends at Google/Apple/Firefox?
I'd like to express my deep, unending thanks for building something that is really wonderful, Perl, and a wonderful community. I made a living with Perl, the first postmodern language of which I am aware, and derived a lot of enjoyment from TMTOWTDI, and contributed back to the community on Perl Monks at the time. It was a lot of fun to meet some of the famous, talented Perl visionaries then. I enjoy thinking in Perl and it has made me stronger.
I'd like to get into Perl 6 which having stolen all the cool stuff from the other languages appears likely to be the most advanced and artistic of all them. At the very least I look forward to being able one day to think in Perl 6.
Can you provide some examples to /. readers about why you like Perl 6, and what dimensions of awesomeness are waiting beyond Python and Javascript? I think you would be a good person to rouse a wakeup call.
That, and if you have a moment, how about a good reason or three (efficiency? creativity? extensibility? ability to suggest further growth? having lots of PhDs?) why Google should promote Perl 6 in-house and support the growth of the Perl 6 language and implementations. Perhaps sponsor completion of the Perl 6 kernel for Jupyter project? How about sponsor some people to document and make accessible free books? What are some Perl 6 initiatives that could use some eyes if not $$?
Given that every other famous Larry in tech seems to be starting their own secret flying car factory, when are you going to start yours?
Please do not use the "f"-word. It is inappropriate. The correct term is "otherkin".
I know this because I use Rust and as a Rust user it's important to use non-offensive terms at all times, in all cases, without exception. I do not want to get on the wrong side of the all-powerful Rust Moderation Team.
I can't imagine why they'd do anything else.
Would you choose, for your most common punctuation, something that you have to take your shoes off to type?
I'll tell you what, editing html/xml is a bastard on AZERTY, with the > < on the same key.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
I'm "retired" now, but I used perl for many years to implement projects, some of which were complex. It never ceased to amaze me how bug-free perl was (compared to VB, for sure!) in spite of its complexity and power. How did you do it?
$_='while(read+STDIN,$_,2048){$a=29;$b=73;$c=142;$t=255;@t=map{$_%16or$t^=$c^=(
$m=(11,10,116,100,11,122,20,100)[$_/16%8])$t^=(72,@z=(64,72,$a^=12*($_%16
-2?0:$m&17)),$b^=$_%64?12:0,@z)[$_%8]}(16..271);if((@a=unx"C*",$_)[20]&48){$h
=5;$_=unxb24,join"",@b=map{xB8,unxb8,chr($_^$a[--$h+84])}@ARGV;s/...$/1$&/;$
d=unxV,xb25,$_;$e=256|(ord$b[4])>8^($f=$t&($d>>12^$d>>4^
$d^$d/8))>8^($t&($g=($q=$e>>14&7^$e)^$q*8^$q>=8)+=$f+(~$g&$t))for@a[128..$#a]}print+x"C*",@a}';s/x/pack+/g;eval
?
I was excited by the Parrot VM which was going to be the back-end for Perl 6 since it allowed many languages other than Perl to be compiled into Parrot bytecode and thus was slated to provide an unprecedented form of interoperability between languages.
Considering that this planet is now adopting WebAssembly as the new universal bytecode for all languages to compile into for running in the portable operating systems that earthlings call "browsers", what is your stance on compilation to a multi-purpose bytecode? Specifically, is it a good or bad thing that Parrot and Perl6 parted ways?
silent k's are over rated.
Been there, done that, got the t-shirt. Larry, Tom and Randal signed it.
There was ice cream too.
-- I have a private email server in my basement.
Hi Larry,
I'm a profession Perl5 programmer who is very worried about the future of my language. I remember when you kicked off Perl6 in the very late 1990s the talk was that it would replace Perl5. Clearly that never happened. If you could redo the project what might you do differently?
Peace, or Not?
Hi Larry, As a long time perl hacker, and contributor of various modules to CPAN I'm wondering what the rational was behind the major syntax changes in perl 6? I've read various items trying to explain it, but none so far have done a very good job. Admittedly I haven't fully grasp perl 6 yet (mostly because it involves learning a new language I thought I knew well).
What are your views on version control systems like git and modern development practices around them?
Early F/OSS development practices started with tarballs and patches, moved to packages and VCSes then to (a)social coding with DVCS like Mercurial or git. You've been there for most if not all of that.
git can be described as a distributed content management system for patches. Linux Torvals' git --am workflow can be likened to playing chess via email but with kernel development the end game and patches as moves.
And thank you for patch, by the way. The diff command outputs the difference between two files. You wrote the patch command to take diff output and turn one file into another, including the ability to even go backwards and undo that change later. As someone who's had to package software for a Linux distribution this is critically important tool. Patch lets me preserve the original author's work. But patch (and quilt) lets me still apply needed changes and store those changes in obvious discrete packets of standard format that are diff files.
"You cannot have a General Will unless you have shared experiences. You cannot be fair to people you don't know."
And you don't have enough sense of humor. Anal Annie over here.
My pet theory of why Perl has lost favor to Python is that it's really a unix language. You can run it on a windows box but only with a lot of effort to install and to maintain it. It seems to me that Perl could be more successful if one could get it adopted intrinsically into the Windows environment. A common, mistaken, lament about perl is all the sigils that make it look like swearing. But those actually add meaning (I can tell what's an array, a reference, a glob, or a scalar) and they are familiar to bash users. But one can see how windows users aren't steeped in this so perl gets a bad rap. If Microsoft were to distribute an app that ran a perl shell with all the first class privileges their own shells have Perl would be widely adopted as a superior do-it-all administration language.
Thoughts?
Some drink at the fountain of knowledge. Others just gargle.
Use the best tool for the job they say. There are many areas that Perl excels at. But in your personal opinion, what kinds of scenarios, situations, tasks, and jobs are most ideal for Perl? What is it the best tool for?
Hi Larry
Thank you for your contributions to the field of Computer Science.
My question is: in your opinion, what are the most important things to consider when designing a new computer language?
friends don't let friends teleport drunk
I can find dozens of courses on Coursera where Ruby/Python/Javascript are used as the programming language for courses related to Data Science, Machine learning, web development or just basic programming. But not a single course based on either Perl5 or Perl6 is available on the various MOOC sites. Do you see any potential for Perl5/6 to be the language of choice for teaching any technical concept? Any examples where Perl is breaking new ground?
Does the Perl 6 development team rather fancy the idea of fully equipping the language for cutting-edge, massively-parallel environments, as in neural networks?
Whenever comparing geek-cred, I mention that I've received personal email responses from Larry Wall and Guido Von Rossum.
What's the most famous person/people you've exchanged email with? Steve, Bill, Linus, Bjarne?
P.S. I use Perl every day at work. Thank you.
...come from Digital's BASIC-PLUS that ran under RSTS/E on a PDP-11, a setup that Larry mentions in the appendix of the Camel book (I was blessed (cursed?) to use BASIC-PLUS-2 in my high school job).
I lurk the IRC channel. There were some motions to start working on this. They got as far as a gist which seems to have now disappeared. As a "troll hugging" culture that aims to actually teach people with less social graces to grow up a bit, Perl 6 has to write its own that is more likely to doll out lots of wrist-slaps at first rather than shooting first and wondering why everyone left the community later.
Someone had to do it.
Hi Larry. I just wanted to say thank you. I love Perl. I've used it for decades. It's still my first choice. My websites still happily use it. This language you created has had a major positive impact on my life.
This year I celebrate 20 years as a Perl guy. I have used it continuously, regardless of the languages used predominantly, and it has made me seem to be able to do the impossible, or at least the highly improbable. Thank you, Larry, for sharing Perl.
I don't pretend that Perl is necessarily able to to most things any better than other modern interpreted languages (autovivification notwithstanding), but I come back to it again and again -- partially for the same reasons that I usually start speaking in English. It is my first language, and my most fluent.
Perl 5 has been meeting my needs for literally my entire career. There's probably something in Perl 6 that I might find useful, but I have found that I have about as much desire to break open Perl 6 as any other new language that I have not yet looked at.
It would help my guilty conscience to receive your absolution. Or am I being unreasonable in my continued, pragmatic use of Perl 5 and it's amazing library of modules, both old and new?
Peace be upon you.
Do you see a way forward to a "high performance" Perl for a niche of use-cases in which fast response times (low latency) is major consideration? This isn't meant to trigger a "fast enough" flame war, but rather, to gain insight and make comparisons with perceived competitors such as Cython, Rpython, and Pypy.
How could it have flopped in just 6 months? Especially as I regularly see new people on irc.freenode.net#perl6. (we also had to split up the channel because it was getting difficult to discuss the actual implementation because of all the activity)
I will grant you that the Perl 6 project is a lot older than that. I'm actually glad it wasn't a rush job, just image how bad of a language it would have been as a result <cough>php</cough>.
You're probably one of those people who are deluded into thinking that Perl25 is on its deathbed. In fact there has been more activity on the Perl5 core in the past 5 years than there was on the previous 10 years. ( Actually a similar thing could be said about Perl6 as well )
Can you create a new language for easy programming on mobile devices?
It would have to be concise, because typing is hard on touch screens. In that sense it would be similar to Perl.
Thanks for inventing Perl!
I wouldn't make any major applications in it just yet, but there are people who have said that they have used it in production in smaller roles.
Really it is a fairly big departure from pretty much all other languages including Perl 5, so I would recommend just tinkering with it for a while.
There is an Inline::Perl5 for Perl 6 and an Inline::Perl6 for Perl 5, so you could write small tools in Perl 6 that integrate with your existing Perl 5 codebase.
There is a project similar to Moose that has been worked on that is planned to go into Perl 5.
Also Larry hasn't been active with Perl 5 for 15 years, so not actually a good question for him
Have you considered the frightening possibility that Wall designed Perl without the use of recreational pharmaceuticals?
"When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
If I have a hash %foo, then a use would be $foo{bar}. Given an array @foo, a use would be $foo[bar]. Not only does the change from % or @ to $ throw me a bit sometimes, the visual difference between those two different things is braces vs. brackets, and as my eyes age that's not really enough.
Could you tell me about the design of sigils, and why they were done the way they are?
"When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
When did Li write that? In C++, complex types are in the standard library, not built into the language itself. Boost provides more C++ mathematical types.
"When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
You may want to check out cperl or rperl. There's also a lot of work going on for performance with Perl6 and in some simple programs it's already faster than Perl5.