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
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/
Why has perl6 flopped?
And "I don't think it has" is not a valid answer.
What do you think about Python . . . ?
Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
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).
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'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?
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...
What kinda drugs did he take to create that crap?
I believe Larry indulges heavily in the opium of the masses.
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!
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.
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?
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 $$?
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.
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."
... all Perl's selling points are now available in pretty much every programming language.
Ya, but I don't want to have to use every other programming language just to get the functionality of Perl. (see what I did there?)
More seriously, different tools for different jobs. Yes, many/most/all of Perl's functionality may be available in other languages, but they are often not as easy to use as in Perl or only available on one platform. One of the projects on which I work is cross-platform on Solaris, RHEL and Windows. I use (more than) several languages (scripting and compiled) to get the job done, but my fallback is almost always Perl (sometimes Java) - especially for something that needs to run identically across all our platforms.
It must have been something you assimilated. . . .