Comment Re:Perl renaissance? (Score 1) 192
are we in the middle of a Perl renaissance?
I hope not. I have to maintain a large body of Perl code at work, and it's a nightmare.
Funny that. I've had quite similar nightmares with Java and PHP, which are supposed to be all that. My history with Java has really REALLY put me off that languaage (and now with Oracle on the litigation warpath I've resolved to avoid Java whever reasonably possible--I'd even wipe my Galaxy S2 of the Java-esque Android and put on boot2gecko if the latter was really ready for prime time). In the case of PHP I found it to be like a walk in the pasture--an easy hike to start but then you step in a pile of crap and can't get that smell off of you. Perl, on the other hand, I learned in the mid-late nineties when I was tasked with authoring simple CGI scripts for an Apache web server on Linux, and I took to it fairly quickly and didn't get trapped in a nightmare. Perl certainly gives you opportunity to step in something smelly, but the simpe requirements in my situation didn't really invite that risk.
Perhaps it isn't the language it is the authors (don't take offense if the large body of Perl you must maintain was written by yourself). I think my dislike of Java comes from the fact that for most of its existence it hasn't been used to do anything "fun". Java went all "enterprisey" and enterprise applications are just big slow stinky piles of anti-patterns. Maybe if I learned Java coding through programming games for Android phones instead of delving into the guts of some WebSphere appllication i would have thought different, but Android and mobile apps just didn't exist beyond what was hard coded into your dumb-phone. The nightmare isn't really Java itself, it's that it is most often used on "nightmare projects" driven by committees using stodgy old "waterfall" management methodologies, resulting in througly unpleasant software (for some reason enterprise software has to be wretched to use--if it isn't as slow, cumbersome and confusing to use as SAP then you aren't ready for production yet).
I remember when PHP itself was a Perl library (how ironic is that, with so many people saying Perl is dead and you should move on to PHP or something like that?). I didn't give it a second look at the time because the PHP library didn't provide me with anything *I* needed at that point). Then somewhere along the line that was dropped in favour of a completely re-implemented "Perl-free" version that, well, looked and behaved like Perl's retarded little brother, and that didn't impress me much (but I DO understand that was probably why it caught on--less sophisticated--easier to adopt). Many years went by and PHP gained a lot of traction and got more complex and now I was confronted with the need to work with frameworks and content-management systems written in PHP. Guess what? PHP is not used to develop anything "fun" either--it is just un-fun in a different way than Java. Instead of dry, accountant-like programmer-analysts of the enterprise-Java world, you had freewheeling wunderkind "web developers" who churned out big balls of PHP goo floating in HTML tag soup. No anti-patterns here--no discernable software design patterns at all actually. And it seems that PHP develpers were the slowest learning programmers of the entire world--even after VB6 devs were refactoring their "code" to implement paramaterised ADO queries it seems PHP devs happily continued to cobble together un-escaped strings and inviting little Bobby Tables to own their arses. When I eventually delved into the guts of the likes of PHPbb and Wordpress and Drupal modules I felt a bit like PHP was in over its head--constantly being called upon to do just a bit more than it was designed to do and that PHP was continually catching up.
I know that Perl is no better--I'm sure that there are critical enterprise systems out there supported by crufty, cryptic Perl that looks like line noise. I'm sure someone out there could cite SQL Ledger as an example of "crufty ugly business Perl" for example. Lord knows the early days of the web rested upon loads of crude, insecure tainted Perl as the dot-com bubble was inflating, but back in the day Perl was "fun" and "cool"--people wrote Perl poetry, people had contests to make it do as much in one line of code as possible, and Perl is the language of choice to create executable ASCII art! Back in the dark ages of the BLINK tag web pages were uncomplicated and as such I was doing uncomplicated Perl code. Gerring into Perl was"fun", not "work" like Java and PHP weree in the contexts where I had to learn those languages. Further to that, Perl remained fun for the most part. Plus, CPAN was the worlds first "app store"/software repository. Perl is like "programmatic lego" than any other language out there. NO other language has as big library of modules as Perl does.
So perhaps the love or hate of perl is more to do with personal context of the programmer than with the characteristics of the language after all. Your first impresion of Perl was probably because you drew the short-straw at work and were foced to learn Perl in the context of maintaining old legacy ad-hoc systems written in Perl by some old grey-beard that has long since retired and/or passed away--and it is uncommented and unstructured and written in Perl 4 style. Of course you'd hate that! That's how I was formally introduced to Java and PHP so I can understand!