23 Years of Culture Hacking With Perl
Modern Perl writes "Larry Wall, the creator of Perl, reflects on Perl's history of hacking its culture, from subverting the reductionist culture of Unix to reinventing the ideas of programming language and culture in Perl 6 and the verbal aikido used to encourage honest detractors to become valuable contributors. Perl turned 23 years old last week, and Perl 6 is available."
(Hiring ~4 OO software engineers to do Perl. Forgive the inane outsourced hiring-management site. Merry Christmas.)
The World Wide Web is dying. Soon, we shall have only the Internet.
The only language that looks the same before and after RSA encryption.
Mind you, I'd be thrilled to see some nice new stuff in the Perl space. But I work on a software appliance and some of the customers pay tens of thousands of dollars (or more) for it and they do expect a modicum of reliability....
The World Wide Web is dying. Soon, we shall have only the Internet.
The thing that kills me about the Perl culture is that the delusions of what things mean to the non-Perl world.
This article is yet another example of that. Larry writes about Camelia representing so many points, which sound fantastic but are complete bollocks. Perl6.org, and specifically Camelia, do not say "fun", or anything about sterile environments or anything about clarity.
What it says is that in 23 years, the old Perl guard still hasn't figured out that making something that looks completely stupid makes people think you are completely stupid.
Everything looks completely stupid that comes out of Perl6.
Nobody really even knows what Perl6 is (even O'Reilly) and then randomly people point out Rakudo Star. This looks like the community is fractured (which it isn't, but it looks that way at a glance, which is all people are getting.)
I'm saying all this as a Perl hacker. I do love Perl, I think it's great, but all of this is basically turning Perl into something like Furries. The people involved seem to not think there is anything wrong, but every other person in the world makes faces at them.
I can't imagine being involved in that good thing Scala really is all those things Larry wishes Camelia represents.
I suppose I learned a lot about the Perl community though.
I've been playing around with Perl 6 a little this week. Rakudo works well enough that I'll be using Perl 6 where I've previously been using Perl. I find it useful to follow the Perl 6 Planet, as it has a bunch of Perl 6 developers' perspectives and musings as they use the langauge. (For example, one guy wrote his blogging engine in Perl 6, and commented on speed differences between a couple Perl 6 implementations.)
I'm also helped that Larry Wall has been doing active code review of the Perl 6 code over on Rosetta Code, a site I run; it's nice to have an active source of idiomatic code for understanding the language.
tasks(723) drafts(105) languages(484) examples(29106)
That /. is written in Perl.
you had me at #!
That inference may go too far. Perl 5's default OO is flexible and powerful, but it goes too far in allowing flexibility and it doesn't promote an obvious best way for most projects. As with any abstraction which offers and takes advantage of defaults, Moose reduces complexity and makes it easier to write consistent and concise code.
I'm certain many CPAN contributors will welcome an automated testing system to find non-spelling documentation typos. That'll be a very nice addition to the extensive test suites for Moose and other important CPAN distributions.
Thanks for reporting the typo, though. I'm fixing it in the repository right now.
how to invest, a novice's guide
My experience has been largely:
-if working on existing progress, continue in language it is already in
-if working on new project, what's the language most comfortable for the most developers available
Frequently, the answer continues to be perl, sometimes python, sometimes ruby. Usually, I can't be bothered to care. If it comes down to my call, currently I prefer:
-If planning to use across many OS updates, perl5. Nice and stagnant, not screwing around with how it does things, perl6 threatens this.
-If not expecting a lot of churn on the runtime but active development across random developers coming and going as available, python as it forces readability.
-If expected to work in a barebones as possible generic windows, vbscript, but please no.
-If wanting to work with as few prereqs as possible on Windows server 2008r2/7, then powershell.
-Have gone along with ruby, but have not personally found the magic situation I personally prefer it for above all other possibilities.
XML is like violence. If it doesn't solve the problem, use more.
What I appreciate most about Perl and C is the stability and culture. It is not just a hype which _might_ be around in 10 years. It is one of the languages, which will persist, it is a language I can rely on, just because experience has shown me that. In a rapidly evolving time, it is good to have some things which persist.
My recent experience is that discussions of Perl quickly turn to discussions of Python, after people make statements like, "If it weren't for CPAN, Perl would be dead."
That's not too far from the truth, if you understand that statement to be analogous to "If it weren't for the US dollar, the American economy would be dead." It may only be one thing, but it's a pretty big thing.
"There's more than one way to do it." translates to, quoting from Wikipedia, "This makes it easy to write extremely messy programs..."
No grasshopper, you fundamentally misunderstand the implications of that statement. Show me a problem in which there isn't more than one way to do it, and I'll show you a problem you haven't grokked properly yet. Perl is a language without ideology. If programming languages were religions, perl would be closer to atheism (sorry Larry) than to anything else. Yes, it sometimes does cast people adrift because they're forced to accept that there is no final arbiter, that sometimes choices do come down to indulging one's biases. The difference here is that we recognise that, and that you have no one to blame for the biases except yourself.
For a good programmer, this is one of the paths to enlightenment.
To abuse the ideology metaphor a little further, perl is democratic (and borderline anarchic) because it does not criminalise stupidity. Likewise, it doesn't always protect you from yourself. If you really want to do things a certain way, the language probably won't stop you, and might even help you.
And if you still don't get the freedom that perl provides, feel free to vacate the green space in front of my domicile. I'm not going to force you off, but I might laugh at you if you stay.
Crumb's Corollary: Never bring a knife to a bun fight.
So I looked at the Perl5To6 Manual, and it gave me a headache. Really, I had to get some medicine just now. There used to be 10 ways to do anything in Perl 5, and in Perl 6 there's 20. And operators are approaching APL in obscureness and number. It has ways of being even more terse at the expense of the maintainer's head possibly exploding. Some changes are very nice and clean up some weirdness, but they compensated for it with a vengeance.
There's macros, and more contexts (where function returns different things depending on how its value is getting used), and meta-operators, and operator overloading on never-before-seen scale, and weird variant types, and ways to embed an enum into any object, even more complicated regular expressions, and so on ...
Perl 6 spec is still in development, not done yet. Rakudo is an implementation of something that is not done yet, and pugs even less so. Anyone who uses this for any remotely production related is insane. Face it folks, Larry killed Perl.
In some circles. I *like* Perl. I work non-coding with experienced C/C++/Javascript/OoP developers. These are desktop/UI programmers mainly with some server side. They use and expect fluency in Python, which I don't know much. Perl OTOH I know quite well. The head programmer knows no Perl. Mentioning that I like and know Perl is like ... well it's just totally irrelevant. Those on the team that know Perl keep quiet about it. Perl seems to be politically incorrect and by default and without trial held to be wrong for it "unreadability". Besides it's not Python is it.
This is my experience as well. However, in my case the definition of project is a bit loose:
- Someone wrote a script in perl and left the company.
- Someone else needs to make Improvements to this code but they dont know perl. Even though the original code is written in as clear and readable perl as possible, they automatically think perl is hard. This is in fact company policy now. They write a python script and make a system call to it from the perl code. Soon there are two, three... seven python calls in the perl code.
- Someone now wants to break the perl code up, so now there are python calls in the perl code and perl calls in the python code.
- Someone wraps this up in a shell script.
- Someone else learnt bash and not sh so they make bash calls in this code and it no longer works on non linux architectures.
- Someone who knew the original developer calls him and they enjoy a wry laugh.