Larry Wall On Perl 6, Language Design, and Getting Kids To Code
M-Saunders writes: Perl 6 has been a long time in the making, but Larry Wall, the language's chief developer, now says it should arrive in time for Christmas. In this interview with Linux Voice, Wall explains why Perl 6 took so long, and describes how his background in linguistics influenced the design of the language. He also discusses ways to get kids interested in coding, and notes that Python has done a better job so far in this respect.
Perl still exists.
Never underestimate the power of stupid people in large groups.
Before I'd ever code in Perl.
Their devs obviously rushed it to market compared to Perl 6.
Growing up in the early 80s on an apple II, one of the things that helped me learn to code was that I could edit and modify existing code like Oregon Trail to cheat. It also helped that there was a limited amount of other things. We didn't have 24 hour kid cable channels so once I got bored then I needed something else to do. I see the same things in my kids. They love kodable on the ipad because it gives them a new character every time they completed a level. A similiar game cargobot they aren't interested in at all because it doesn't have any rewards. I also notice that when they are grounded from their playstation is when they immediately start reading more books, playing the piano more, exploring new apps on my ipad, going outside more, etc... Just like adults, kids are going to gravitate towards what is most enjoyable at the moment and unlike adults they have very little concept of delayed gratification so doing something for their future self is not on their radar. The best way to get kids to want to code is give them something they can do with it whether it is control a robot, create a webpage to show off to their friends, etc... When I was in school alot of kids knew basic javascript and html because that was the only way to have a geocity webpage. Facebook and the likes have allowed kids to have a presence on the web without any need to code. It's still possible to get kids interested in coding if you can show them "cool to them" stuff they can do with it.
“People who made early implementations of Perl 6 came back to me, cap in hand, and said “We really need a language designer.””
“I was almost explicitly told: “Stay out of the implementation! We saw what you did made out of Perl 5”
“With Perl 6, we found some ways to make the computer more sure about what the user is talking about.” ...
Is there anything as simple as Basic for introducing kids to the "basics" of programming that is easily installable on Windows based computers?
After am introduction to programming my interest shifted to systems dynamics model programming (principally vinsim). However, I would like to be able to help the students learn the basic concepts (7th grade) While C++ has a lot of tools, it is too abstract and complex to keep the students attention. Hour of cide has a Logo toy. Really, I would like an up to date Basic that can be used easily but features that allow a person to do more with it.
This would have been great 8 years ago.
Correct answers get food.
"I started trying to teach myself Japanese about 10 years ago, and I could speak it quite well, because of my phonology and phonetics training – but it’s very hard for me to understand what anybody says. So I can go to Japan and ask for directions, but I can’t really understand the answers!"
This is exactly what Perl is about. You can write code, but have no chance of understanding code of other people.
So is perl 6!
You have obviously never coded in any language, let alone Perl. Comments like these are usually from people with zero real life experience.
I've been in IT far longer than you have, I guarantee you that. Perl has fallen out of favour, but it is not a bad language. There are things you can do in Perl better than any other language. Full stop. The Internet of the 90s and early 00s was largely built on Apache, Perl, and Linux.
Perl is masterful at text manipulation. There is nothing extant better than Perl for regex. Nothing. Detractors poo-poo Perl because there "is more than one way to do it". Perl code can be treacherously obfuscated, but that's part of the fun. As long as good code is well documented, there is no harm.
Perl is far better than awk, sed, and other, older tools. Better even than Python for text work and regex. Python is the darling of the coder world, but has its own share of warts that even the Python camp gets their knickers in a twist over. Perl 1 still runs. Try running Python 3 in a Python 2 environment. You cannot. Perl is backwards compatible with itself, Python is not. The libraries in Python are wholly incompatible most times. Perl has CPAN, the likes of which don't exist in Python.
It's my opinion that for what Perl excels at, one can get off the ground quicker and easier in Perl than in Python. CPAN helps enormously with this. In closing, Perl is no longer the beauty queen, but she is the girl next door who is a reliable friend, who is acknowledging of her weaknesses and uses, but who does what she does better than anyone else. Perl runs in surprising places. Perl is arguably also faster than Python compiled or interpreted. Just my .02.
Yeah , wonder why. Could it be because its actually readable and has a sane syntax that doesn't look like the aftermarth of an explosion in a punctuation factory?
I use Perl eveyrday. I like Perl. I've seen Perl 6. I'll stick with Perl 5, thanks...
There is no God, and Dirac is his prophet.
It will be nice to see what "bells and whistles" Perl 6 has added.
:)
I can code in several different languages and, while Perl is by far my favorite, I have to say that it was by far the most difficult language to learn on my own. The reason was because the syntax just seemed too cryptic. By contrast, I learned to code in Assembly when I was 14 by reading a book on the subject and trial and error.
In order to get my head around Perl I took a 1 week crash course which really demystified the language. I have now found Perl to be the most useful and versatile language that I have ever used - especially for system administration tasks. It is also great for writing spiders, parsing text, communicating with system resources and interacting with databases. Of course, each programming language is a different tool for getting certain jobs done. Perl is akin to a swiss army knife.
What's also wonderful about Perl is that it is native to Linux and also available on Windows (I use Strawberry Perl at work to monitor hardware as i'm forced to use a Windows Desktop).
I know that a lot of younger coders will scoff at Perl (usually out of ignorance) whilst touting the superiority of VB or Java (which is laughable). To each their own.
It's really nice to see that Perl is still being actively maintained and has a new release coming out. I don't know about the rest of you, but i'm salivating over this one
Political correctness is really just herd psychology pushed by insecure people who desperately seek social conformity.
I think python is popular because it's parameter passing is so similar to Java. Starting from Perl I found pythonic parameter passing to be insane, but it all became clear once I did Java. Perl 6 is for DSL geeks. Which I hope to be one day. Write less code, you'll make fewer bugs.
Isn't Perl considered child abuse in most states?
Why... would you do that? Python 3 is not a new version of Python 2. Python 3 is "other." I think you're just confused by the (admittedly very poor) naming convention they have adopted. It probably should have been called Serpent or something along those lines, because it really isn't an attempt to "be" Python 2 at all. Furthermore, if your code is tested and running, why would you convert it to Python 3 and then have to re-test? Seems to me the number of good business reasons to do such a thing would be a very small number (of course, you might want to do it for fun or educational value, but that's not really germane.) Python 3 is for new code, if you want to go that way (and you certainly don't have to.) Python 2 is solidly emplaced and not going away. It's a different thing. It's not a "you need to upgrade" thing or a "you have to move your code" thing or a "now Python is this other thing" thing. Python 2 is Python 2, Python 3 is other. That's all you need to know.
No, it isn't. For instance, later versions of Perl will choke -- the code will fail and/or act differently -- on various early usage patterns, such as hash references.
https://docs.python.org/dev/distributing/index.html
CPAN itself is a bunch of usable Perl. There's a huge amount of usable Python out there as well. It's disingenuous to suggest that CPAN, which is merely a repository, represents a meaningful difference.
Meh. I haven't run into any text processing problems that I couldn't solve with Python that made me think, "gee, wish I had X Perl feature." And I wrote in Perl for quite a few years, I know the territory fairly well. Python's got some pretty solid regex handling as well. Python 2. No idea what Python 3 has, could care less. Different language and all that. :)
Oh good grief no. Perl is hard to read by nature. Python is easy to read by design. Now, if you had said "for the experienced Perl programmer who knows little or nothing about Python", then sure. But otherwise, just no. Perl is horribly obscure in terms of "getting off the ground." Moving to Python from Perl was like having a huge splinter pulled out my butt for that very reason. I can actually read other people's code and understand it without having to keep in mind a whole raft of special characters and the like. Instead, what is happening is almost always spelled out fairly explicitly in what nearly amounts to plain English, requiring much, much less of my brain to be dealing with the language, and leaving much, much more of it free to be dealing with the program logic.
Not the OP, but I've been in IT since ~1972. You may have been at it longer, but I've been at it long enough to come to the conclusion that the objective of a programming language is to solve a problem, and specifically to do it in such a way that the solution is maintainable, effective, and doesn't naturally hide bugs because of ingrained opacity. Something may come along that is better at these things than Python, but I've not run into it yet, which could certainly be a result of me not looking at things that are already out there -- but it isn't a result of not looking at Perl. I've written an enormous amount of Perl, and if there is one thing I will say about it consistently with benefit of hindsight, it is that I wish I'd been able to write it all in Python. Because Python is much, much easier to write, clearer to read later, easier to debug, easier to fix, and yes, actually more fun.
I've fallen off your lawn, and I can't get up.
Still waiting to lazily evaluate which year, are we?
One day, I will meet Larry Wall, and I will ask him, "So, what's it feel like to be beaten to market by Duke Nukem Forever?"
I've used Perl for 20 years and still find it more productive than most other languages, but I would _never_ recommend it as a first programming language to anyone.
At my high school, which has no programming classes, my co-worker does lead the robotic's club which uses a simplified version of C to make the robot do things.
We also included Alice on all of our netbooks. It does seem like Scratch is probably more popular these days.
DISCLAIMER: I am not affiliated with any of these and I've only used one of them for like 5 minutes so YMMV. I'm not a programmer at all and the only languages I've spent any time with at all are C and Python and I would barely consider myself an amateur at Python and a nothing at C.
I've been around long enough to see Perl go from the glue of the internet to object of scorn. It's no longer the preferred tool of sysadmins or the easiest way to write web applications outside of raw C. I've had a good deal of time to consider why that's the case, and I keep circling back to it being an issue of popularity.
We like to think that we're engineers, scientists, deep thinkers, whatever - and that we as software devs therefore make sound evidence based judgements, at least more often than other disciplines. The fact of the matter is that we're just as led by emotions as anyone else. We have 'Holy Wars' over OSes and languages and frameworks, and what most of them boil down to is justification of personal preference more than anything else. Not features, not availability, just personal preference.
In that light, I've been seeing a lot of fad languages in the last decade or so. I usually refer to them as toy languages though that phrase may have a number of inaccurate definitions. Simply, they're a new toy to play with. Scripting languages are especially prone to this because they tend to have a lower barrier to entry. In recent memory, I seem to remember it going something like Ruby + RoR => Python => Scala => Javascript via node.js => and now the big thing I'm hearing about is R. The claim is that each one is so much better, but the reality of it is, it's just so much newer, and the differences in implementing identical functionality is not as important as the flash and sizzle. Even when the sizzle is backed by something useful, people stop paying attention once it stops. In fact, most of these languages have been around for a long time - several of them almost as old as Perl itself. They've just briefly become popular, not making any sort of surprising forward leap to become capable or more feature rich.
Of course, one big part of the popularity is maintaining buzz, and with what was effectively a 15 year hiatus from any real forward development, much less promotion, Perl dropped out of the limelight.
This is pretty standard though. People seem to forget so quickly; at one time, ColdFusion, Java Applets, Flash and PHP were the darlings of their day. Perl too.
Now, if someone were to take Perl 6, produce a framework for it that tried to force a remedial coding style (Python), require webapps follow a specific directory layout and naming convention (RoR, many JS webapps) as well as page templating (PHP, JSPs, Razor/Webforms, etc), add some human-friendly data query language features (Java Streams, C# LINQ), provide tools for automatic dependency search and import (Maven, Ruby Bundler), and then really play up the functional aspects of the language, and perhaps Perl will rise again too.
If that's really the features people are looking for. I deliver that line with only marginal sarcasm; I note that the number one complaint against Perl is ugly code, which we know is the domain of the author, not the language - and other languages 'fix' this by taking away developer agency.
Even without those new features, and though I don't use it as often, I still like the ole' "swiss army chainsaw," just a little bit more than these other choices. I guess you could say it was just a matter of personal preference.
I am a C/C++ programmer and before my professional Perl experience, every problem seemed to be solvable with a C/C++ solution. I have been doing Perl for 18 months with a team of fanatical/religious Perl developers. I guess that is where the term "Perl monk" comes from. They were are blind as I was but instead of seeing C/C++ solutions, every problems for them where solvable with Perl.
It was extremely frustrating to be imposed using Perl when it was obvious that C/C++ would have been a superior choice. I was laughing in my beard when I saw the rest of the team spending energy for weeks to optimize some Perl code and they were excited to finally have increased the performance from 12 iterations/minute to an awesome 18 iterations/minutes when C would have given them thousands of iterations/minutes without effort.
The most horrible part of Perl that I have witnessed is object-oriented Perl with Moose and its huge module dependencies. Its seems like you need the include the whole universe to use some of the most complex Perl modules.
Back then, I hated Perl but since dust has settle down, I have now made peace with Perl and even surprise myself choosing Perl for some tasks that I need to get done such as parsing mbox files. The thing is Perl is the best choice for some specific tasks. For huge software development in Perl (Yes I have seen that. Horrible, absolutly horrible), the problem is that if you have a function supposed to take some numeric input, crunch it through some math formula and give you the result, with Perl, you could pass the string "Potato and carrot" and the function will happily crunch it and give you a meaningless result. Now, try to find out the problem in hundreds of thounsands of lines of Perl code. Good luck!
I find it strange Ruby is never mentioned in the interview since my impression of Ruby is "object oriented Perl" and I'd guess many of the web application type things traditionally done in Perl have migrated to Ruby.
If it works, it's obsolete
Perl is awesome. Fact. Also, Larry Wall is a hilariously funny guy; read some of his quotes sometime.
All you hipster douches get over yourselves and realize that not everyone is part of your trendy "it's cool to hate Perl" groupthink.
Next up: sustained, controlled nuclear fusion around mid-2025.
The alternative would be nasty - let's break out a protracted set of functions, variables, loops, etc to process this piece of text in a more "readble" way? No thanks - let me bang-out the regexp and be done.
Also - At least Perl uses a normal open/close (braces) to begin and end a scope - unlike Python - which relies on the number of leading spaces. (I've been using Python for years - can handle that - but still think it's a very bad idea).
For me - Pearl's biggest downside has been that the world has simply gone to Python largely, and so have I.Whereas I used to love Perl, I find it hard to keep switching back-and-forth.
That being said - I miss the ease at which Perl can fork a subproces, then scrape and parse it's output. Yes you can do this with Python - but it does take more keystrokes. From a linguistics point of view - it comes down to Information Density. Thus, we can argue that Python looks cleaner, but Perl's code is denser.
To start off I'd like to I'm a great believer in the best tool for the job, however in the 21st century Perl is not the best tool for anything.
Perl is a dead language and has been since the rise of Python and Ruby the only people who don't realise are the Perl heads. The best thing that could happen would be for linux distributions to stop shipping it and then it would naturally die off.
The only people who are pushing it are the die hard Perl heads.
I'm not trying to belittle Perl's place in the development of programming languages because without it we would not have Python or Ruby as they had to be invented to replace Perl. It's time for Perl to head off to the retirement home.
Besides for data manipulation I can do everything I need to do in shell, sed and awk.
Larry, let's get real, fifteen years is a stupid amount of time to work on a single point release of a piece of software. People forgot about you and Perl 6 in 2003. I sure did. I've used a little Perl since then, but I haven't given any consideration to release 6.