- Next »
- Previous
Why I use perl and still hate dynamic language weenies too
(Note: This was originally written as an e-mail to the editors of hacknot regarding the article Invasion Of The Dynamic Language Weenies. But it's also a lot of why I decided to get a Vox account today and consider inflicting my madness on the world in text form. Anyway.)
Well, actually, the 'why I use perl' part is simple: it works for the code I write. Well, the stuff I write in perl. The stuff in shell, C and lisp, it wouldn't haved worked sufficiently well so I didn't use it. The 'p' at least nominally stands for 'pragmatic', after all.
But the invasion of the weenies is being met with as much mixed amusement, annoyance and sadness by myself and most of the perl devs I know as it is by practicioners of other languages - and, to be honest, by quite a few of the pythonistas I occasionally raise a glass with as well. I am, frankly, massively disappointed in Piers Cawley, since he used to be an active member of the perl community and wasn't nearly so mindlessly aggressive in those forums; perhaps this is part of the reason he switched languages, although I rather hope not.
I think rather than these people being weenies in the sense I know for 'lisp weenies' they're more 'fanboys' - analagous to trekkies, or Stargate fans, or similar. They're people who've found something new, that they like, and fallen into an echo chamber of other people who're also overjoyed by the new discovery and without anybody around playing the role of 'sane adult'. I remember looking at ruby and related things back before Rails became widely known and I saw a far more interesting community than I see now - there are definitely a core of people there who are pragmatic, relaxed and more interested in getting things done than in advocacy. I think largely the perl community now -only- consists of such people, since we're no longer 'fashionable' so fanboy-ism doesn't really work.
However, in microcosm, I've seen this effect before. I started a perl ORM project called DBIx::Class, originally intended as a research project to prototype possible new ways to improve the existing Class::DBI and then over time as it became evident that Class::DBI couldn't be improved in the ways we (myself and the by then several other contributors) wanted without compromising the stability and backwards compatibility that had drawn us to consider that library acceptable to talk to our production databases in the first place.
Once a certain critical feature mass was reached by DBIx::Class, people moving their codebases over from Class::DBI and/or preferring DBIx::Class for new development became steadily more numerous. I engaged in some advocacy on the Class::DBI mailing list where I felt that DBIx::Class was sufficiently better designed for the user's purpose (often due to being able to reap the benefit of knowing the way Class::DBI was designed -didn't- work for that purpose) but continued to help out users of Class::DBI where I didn't see a convincing reason for them to change their tools.
Shortly after that, a slightly upsetting trend began of users who'd 'made the switch' posting short, content-free 'our library is better than your library NYAAH' type e-mails to the Class::DBI list. I made a point of watching for these and each time mailed the author, politely explaining that while I was pleased they were excited about the project I'd founded I didn't consider their behaviour appropriate and would prefer they didn't repeat it. The practice petered out quite rapidly and never really became a problem, and yet even so I'm aware of at least a couple of people who chose other libraries to migrate to because they were offended by the attitude they perceived to be coming from the DBIx::Class community, even though that attitude wasn't shared by any of the people who'd founded and maintained it.
What I suspect has happened to Ruby is that they've had a similar influx of people getting a 'wow' feeling but that nobody's talked to them to tone down the fanboy-ism and bring them from 'awestruck child' to 'adult' status in terms of their membership and position in the community - whether that's because not enough of the old hands tried or simply because the popularity grew too fast for them to keep up, I have no idea.
However, I don't think this is really anything to do with the languages. Your quote of
'"They [dynamic languages] will appear, hang around for a while, and then disappear", he explained. "This is what happens when fashion dictates progress rather than engineering concepts such as measurement, validation, root-cause analysis, and defect prevention." '
summarises my view on the subject, except that instead of [dynamic languages] I'd have [the ruby fanboy brigade] - and the comment could be made equally of any fanboy brigade, including those that grew around XP, and python, and Java, and even Object Orientation. And once the fanboy brigade has moved on to greener pastures, the true community around the technology in question gets on with making things better and with using that technology where it makes sense and not otherwise.
Here's hoping that the backlash currently building against the slavish fanboy-ism displayed by many ruby converts accelerates that process so we can all get back to having interesting conversations about technology-as-tool rather than technology-as-religion.
In the meantime, I'll be happily writing perl, and maybe even writing about writing perl - I'm rapidly coming to the conclusion that we need more people publishing things about ways to get stuff done rather than how to prove a particular way of getting stuff done is the One True Way.
Assuming you got here, thanks for reading this far and thanks also to the author of 'Invasion Of The Dynamic Language Weenies' for a thought-provoking article and for inspiring me to make the effort to think the current situation through.
Well, actually, the 'why I use perl' part is simple: it works for the code I write. Well, the stuff I write in perl. The stuff in shell, C and lisp, it wouldn't haved worked sufficiently well so I didn't use it. The 'p' at least nominally stands for 'pragmatic', after all.
But the invasion of the weenies is being met with as much mixed amusement, annoyance and sadness by myself and most of the perl devs I know as it is by practicioners of other languages - and, to be honest, by quite a few of the pythonistas I occasionally raise a glass with as well. I am, frankly, massively disappointed in Piers Cawley, since he used to be an active member of the perl community and wasn't nearly so mindlessly aggressive in those forums; perhaps this is part of the reason he switched languages, although I rather hope not.
I think rather than these people being weenies in the sense I know for 'lisp weenies' they're more 'fanboys' - analagous to trekkies, or Stargate fans, or similar. They're people who've found something new, that they like, and fallen into an echo chamber of other people who're also overjoyed by the new discovery and without anybody around playing the role of 'sane adult'. I remember looking at ruby and related things back before Rails became widely known and I saw a far more interesting community than I see now - there are definitely a core of people there who are pragmatic, relaxed and more interested in getting things done than in advocacy. I think largely the perl community now -only- consists of such people, since we're no longer 'fashionable' so fanboy-ism doesn't really work.
However, in microcosm, I've seen this effect before. I started a perl ORM project called DBIx::Class, originally intended as a research project to prototype possible new ways to improve the existing Class::DBI and then over time as it became evident that Class::DBI couldn't be improved in the ways we (myself and the by then several other contributors) wanted without compromising the stability and backwards compatibility that had drawn us to consider that library acceptable to talk to our production databases in the first place.
Once a certain critical feature mass was reached by DBIx::Class, people moving their codebases over from Class::DBI and/or preferring DBIx::Class for new development became steadily more numerous. I engaged in some advocacy on the Class::DBI mailing list where I felt that DBIx::Class was sufficiently better designed for the user's purpose (often due to being able to reap the benefit of knowing the way Class::DBI was designed -didn't- work for that purpose) but continued to help out users of Class::DBI where I didn't see a convincing reason for them to change their tools.
Shortly after that, a slightly upsetting trend began of users who'd 'made the switch' posting short, content-free 'our library is better than your library NYAAH' type e-mails to the Class::DBI list. I made a point of watching for these and each time mailed the author, politely explaining that while I was pleased they were excited about the project I'd founded I didn't consider their behaviour appropriate and would prefer they didn't repeat it. The practice petered out quite rapidly and never really became a problem, and yet even so I'm aware of at least a couple of people who chose other libraries to migrate to because they were offended by the attitude they perceived to be coming from the DBIx::Class community, even though that attitude wasn't shared by any of the people who'd founded and maintained it.
What I suspect has happened to Ruby is that they've had a similar influx of people getting a 'wow' feeling but that nobody's talked to them to tone down the fanboy-ism and bring them from 'awestruck child' to 'adult' status in terms of their membership and position in the community - whether that's because not enough of the old hands tried or simply because the popularity grew too fast for them to keep up, I have no idea.
However, I don't think this is really anything to do with the languages. Your quote of
'"They [dynamic languages] will appear, hang around for a while, and then disappear", he explained. "This is what happens when fashion dictates progress rather than engineering concepts such as measurement, validation, root-cause analysis, and defect prevention." '
summarises my view on the subject, except that instead of [dynamic languages] I'd have [the ruby fanboy brigade] - and the comment could be made equally of any fanboy brigade, including those that grew around XP, and python, and Java, and even Object Orientation. And once the fanboy brigade has moved on to greener pastures, the true community around the technology in question gets on with making things better and with using that technology where it makes sense and not otherwise.
Here's hoping that the backlash currently building against the slavish fanboy-ism displayed by many ruby converts accelerates that process so we can all get back to having interesting conversations about technology-as-tool rather than technology-as-religion.
In the meantime, I'll be happily writing perl, and maybe even writing about writing perl - I'm rapidly coming to the conclusion that we need more people publishing things about ways to get stuff done rather than how to prove a particular way of getting stuff done is the One True Way.
Assuming you got here, thanks for reading this far and thanks also to the author of 'Invasion Of The Dynamic Language Weenies' for a thought-provoking article and for inspiring me to make the effort to think the current situation through.
Comments
As I said, I rather doubted you'd switched languages for anything but technical reasons - I'm glad to have it confirmed though.
Unrolling @_? Do people still do that?
Sure, that's hyperbole again since the module isn't released yet, and sure, the implementation involves a little bit of source mangling trickery - but I still consider perl5 sufficiently flexible to be worth fixing these sorts of niggles rather than jumping ship. That's just me though; I'm happy to agree to disagree with anybody who's switched and is happier with $other_language because really, if we're going to have a technical holy war I'd rather it was something sufficiently silly like vi vs. emacs that we could do it over a beer.
Thanks very much for making the effort to reply and for doing so in a reasoned fashion. Now all we have to do is convince everybody else to do the same thing ... :)
I dunno, I actually quite like ruby on the whole, it gets a fair few things right perl got wrong, but it strikes me as easier to get those things back into perl than it does to get the things ruby missed into ruby (no MI in an 'OO language'? what?) - showing off use args was meant as a soundbite version of that, really :)
Saying that Smalltalk does such and such is in no way an argument that such and such is a good thing to do - such and such could be the thing that Smalltalk got wrong.
A couple of years ago, something snapped. I'm not sure what it was. Maybe it was the flood of Rails fans invading the regular Ruby channels. I thought that Rails had some good ideas, but all the rabid love for it was taking the spotlight away from a lot of other great Ruby projects. Now, when I mention Ruby in casual conversation, there is always somebody who only associates it with the Ruby on Rails project. And when I dismiss Rails in casual conversation with a group of Ruby hackers, there is always somebody who reacts as if I had spoken heresy.
Then the clouds opened, a warm enlightening glow suffused my being, and I realized in a sudden burst of enlightenment about Ruby:
Actually, the real words in that momentary satori were a little stronger than what I put, but I opted for self-censoring on this public forum.
Since then, I haven't been able to get emotionally invested in any language at all. I use and enjoy several languages, including Ruby and Perl. The only favorite I have right now is Python, and only in the sense that it's my favorite language to teach with. Even that is only because I haven't figured out how to communicate other languages to novices in a clear way.
Thanks again for posting your thoughts.