11 ms·
Why Perl?
- rhizome31 15y agoThis is really just a checklist that can be applied to any language. So yes, why not Perl after all...
- Mithaldu 15y agoHonestly, the only point there that applies to any language is the "freedom" one. The rest are, with varying margins, real differentiators. Especially the CPAN ecosystem one. No other language has that.
- Kototama 15y agoWhat are the differences between CPAN and, for instance, Maven repositories?
- blibble 15y agoindeed, or pypi, or PEAR, and I'm sure ruby has something similar too
- gte910h 15y agohttp://rubygems.org/gems http://rubygems.org/gems 2005 gems listed at the moment.
- utkarshkukreti 15y agoThat's 2005 gems starting with the letter "A".
- gte910h 15y agoGood Catch
- Mithaldu 15y agoAll of those have a long way to go yet to match the CPAN ecosystem. See my reply above.
- blibble 15y agoand as a user of packages, rather than a package developer, I care about precisely none of that functionality. I want this package installed (plus its dependencies), and I want it now, that's all. I'm not sure I buy that (paraphrased) "Perl is good because CPAN has billions more packages than other language's repos" either, for one I remember trying to find a library that did SHA1 digests, there were three, and I managed to pick the one that give incorrect results... of course in Python it's just built-in, as are sockets, http, smtp, imap...
- Mithaldu 15y agoAs a user of dists all that stuff is extremely important to you for two reasons: For one, it means the dists are of higher quality because authors have better tools at their hands and get poked to increase quality. For the other, as a user you can tell whether the dist works on your particular system without even installing it and if it doesn't, you can easily find out on what system it DOES work, or which previous version did work on your system: http://www.cpantesters.org/distro/M/Moose.html#Moose-2.0205 http://www.cpantesters.org/distro/M/Moose.html#Moose-2.0205 > I managed to pick the one that give incorrect results... That's why there is a review system: http://cpanratings.perl.org/dist/Email-Send http://cpanratings.perl.org/dist/Email-Send http://cpanratings.perl.org/dist/Email-Sender http://cpanratings.perl.org/dist/Email-Sender
- blibble 15y agoI guess understanding why purely language bound code (which most likely accounts for 95% of the packaged code out there), e.g. an object system, would need testing across the cartesian product of all versions, all OSes and all archs, is beyond me... I guess when you have a language that doesn't have a specification, you require things like this...
- Mithaldu 15y agoNext time i'll make the ecosystem bit blinking and pink. Maven repositories are just that: Repositories. They store file and display some metadata. CPAN shows documentation from the code of a distribution itself. It also provides a bugtracker. When installing things from CPAN via cpan on the command line, the tests of that dist are run. Users can opt to install Test::Reporter, which then uploads those test results to cpantesters.org. Many people do this, across many OSes and Perl versions across the globe. Authors of dists get emails of failures. Users can look at nice matrices displaying the passes and failures on their platform combination. On failures regression analysis is performed automatically to try and pinpoint possible failure reasons. Since metacpan there is also a public API to an ElasticSearch database containing all the metadata about CPAN dists and their authors. So you can for example, find all dists written by authors living in your town. Et cetera. I could go on, but i think i made my point.
- deleted 15y ago[deleted]
- rhizome31 15y agoHaving worked on real-world projects in Perl, Python and Ruby, I can tell you that CPAN is not a differentiator. It doesn't matter if there are gazillions of packages to choose from. What matters is if I can find the packages I need to do the job. I remember working on a Perl project and being mocked by a Python guy because I had to implement a library that was already available for Python. On the other hand, I could choose from many different Perl packages to help me write classes and do things that Python does out of the box.
- Mithaldu 15y agoWhat was that library you reimplemented?
- lawn 15y agoHmm let's see. "Perl Programmers love their language." Sadly not true enough for many languages. Does PHP programmers love their language like Perl programmers do for example? Somehow I doubt it. "True Freedom" Perl is free and open source and most code is too. How does that compare to Java or the microsoft stack? "Great Community" There are a lot of great communities surrounding most languages to be sure, but it's a stretch to say that any (every) language has it. "CPAN" How would this apply to any language? There's simply nothing near CPAN anywhere. Ruby has gems and Haskell has hackage, but they aren't comparable to CPAN in size or breadth. "Awesome Third Party Support" Is a language simply the syntax and the standard library or could the freely available libraries and tools be counted too? In that case Perl stands out as well, there's just so much of it. Can C or Java rival it? Sure, maybe, but most others won't even come close. "Jobs" I wouldn't say that Perl has the highest job count out there, but compare it to Scala, Haskell, Go, Rust and many other and it's probably easier to get hired. I like Perl, it's a fun language to use, but I'm not the biggest Perl advocate in the world. But it does do pretty good in the above points and to say it's a checklist that can be applied to any language is just untrue. If there are good or bad points that's a whole other topic. I think they are pretty good points, and we must remember that this is an explanation of why they personally are using Perl. Find another language which does better on these points if you can, cause I can't think of any.
- scott_s 15y agoSadly not true enough for many languages. But I think equally true for the languages considered its successors: Ruby and Python.
- berntb 15y agoFrom what I've seen of at least Python, it can't really touch CPAN (yet?). It is not the same width of neither modules nor infrastructure (CPAN Testers, etc.). And the lack of code blocks irritates the life out of me. But I get why it is a common education language, like Pascal in its days. Edit: Mithaldu wrote this up well.
- 15y ago
- kablamo 15y agoThere are lots of great languages. I think we can learn from each other. Perl has a lot of problems but also a lot of strengths. CPAN is one of its strengths. Compare CPAN: https://metacpan.org/module/Moose::Manual https://metacpan.org/module/Moose::Manual Then compare with other repositories from other languages: http://stackoverflow.com/questions/1693529/list-of-top-repositories-by-programming-language http://stackoverflow.com/questions/1693529/list-of-top-repos... CPAN does * Documentation * Historical versions of libraries * Search * Source code * Integrated bug tracker * Integrated review system * Links to repositories * Integrated automated tests regularly run against hundreds of machines/operating systems/perl versions.
- mikeryan 15y agoSure but 99% of what I want is something that A. Has a library I want and B. can install it easily. All those bells and whistles are nice. But they're not something I'm basing my technology stack on because most of the time theyre not something I need.
- draegtun 15y agoAnd also there is: * CPAN Forum - http://cpanforum.com/ http://cpanforum.com/ * Annotated CPAN - http://www.annocpan.org/ http://www.annocpan.org/ * Discussion/review on pre CPAN modules - http://prepan.org/ http://prepan.org/
- draegtun 15y agoThe author originally posted this article on his blog a few days before this one. If you ignore the trolling then there are some interesting comments on what Perl offers today: http://jjnapiorkowski.typepad.com/modern-perl/2011/10/why-perl.html http://jjnapiorkowski.typepad.com/modern-perl/2011/10/why-pe...
- pasbesoin 15y agoThanks. That one also doesn't require JS ("Why not JS"?). (Call me old-fashioned)
- DanielShir 15y agoOne of the main points that caught my eye while reading this was the fact that the author mentioned that Perl programmers love their language. As a Perl hacker, I couldn't agree more, and that's the main point I guess. Sure, CPAN is awesome (there is even a module for controlling USB rocket launchers - http://search.cpan.org/~pen/Device-USB-MissileLauncher-RocketBaby-1.01/lib/Device/USB/MissileLauncher/RocketBaby.pm http://search.cpan.org/~pen/Device-USB-MissileLauncher-Rocke...) and everything is open source, but the thing I love most about Perl is the fact that thought is translated into code very quickly and naturally. Something just clicks and feels right. I suppose that's why despite being fluent in several languages, I always come back to it.
- ominous_prime 15y agoI think this issue is where a lot of the schism comes from - not everyone's thoughts translate well into perl. I've tried to "get" perl a few times, and I also get tasked with maintaining legacy perl code from time to time. Perl is the only language I can't readily use without a few books and perldoc.perl.org handy. It just doesn't fit my brain - yet I can jump around in other languages with little trouble. Maybe it's just me, but I imagine that there's others that have a similar dissonance with the language.
- Mithaldu 15y agoSometimes it takes a while to click. I abhorred `map` for the longest time, but nowadays i use it everywhere; since i read the SICP and suddenly grokked them.
- Peaker 15y agoWe shape our tools and thereafter our tools shape us. -- Marshall_McLuhan It's not that Perl makes it natural for people to express their thoughts. It's simply that your mind was trained to think in Perl.
- chrismealy 15y agoPerl was the first language I loved, and I'll always love it, but I'm sticking with ruby. No more my $self = shift
- DanielRibeiro 15y agoAlso, Ruby's lack of @ $ % is great. And the fact that it has a single object model, not falling to the Paradox of Choice[1] makes it a great alternative to Perl. And what is best: I've never seen anyone that loved Perl not enjoy Ruby. They both have very similar ideologies, but Ruby stands on the shoulders of Perl, Smalltalk and Lisp. Therefore it could see farther. [1] http://en.wikipedia.org/wiki/The_Paradox_of_Choice:_Why_More_Is_Less http://en.wikipedia.org/wiki/The_Paradox_of_Choice:_Why_More...
- rcfox 15y ago"In Ruby, ordinary variables lack sigils, but "$" is prefixed to global variables, "@" is prefixed to instance variables, and "@@" is prefixed to class variables."[0] Okay, I don't know Ruby well enough to know if these are commonly used features, but the statement that there are no sigils is false. [0] http://en.wikipedia.org/wiki/Sigil_(computer_programming)#Language_comparison http://en.wikipedia.org/wiki/Sigil_(computer_programming)#La...
- pyrhho 15y ago@ is common.. The others are pretty rare.
- prophetjohn 15y agoRuby even uses some predefined globals (eg $_) that are pretty much straight out of Perl. http://www.tutorialspoint.com/ruby/ruby_predefined_variables.htm http://www.tutorialspoint.com/ruby/ruby_predefined_variables...
- jamesbritt 15y agoRuby even uses some predefined globals (eg $_) that are pretty much straight out of Perl. They exist, and while I'm a fan of $: over $LOAD_PATH I don't think I've even seen $_ used in the wild.
- TheRevoltingX 15y agoHear hear, Perl developer here. I've used C/C++/ObjC/Java/Erlang and I just love Perl for gluing it all together. I must admit my stack is outdated, I still use CGI::Application, though I love Moose. I haven't kept us since catalyst, etc started to appear. CGI::Application works really well for me. The other day I implemented push notification and geolocation bases functionality for a client in a couple of days. To them it looks like magic, but to me it's just awesome that there are libraries in cpan to do just about everything making it a real time saver.
- gatlin 15y agoI've said it before and I'll say it again: other imperative scripting languages feel like incomplete subsets of Perl. And the community is fantastic.
- TylerE 15y agoThis is the language that doesn't have proper function arguments, exceptions, objects, etc, and you're calling OTHER languages a subset? Sorry, I just don't see it. What exactly is so awesome in Perl that isn't easily done in Python/Ruby/Scala/D/Haskell?
- gatlin 15y ago> proper function arguments my ($a, $b, $c) = @_; # this works Or I can do things like my ($first, @rest) = @_; giving me features which require all manner of annoying syntax in Python. > exceptions http://search.cpan.org/~nilsonsfj/Error-TryCatch-0.07/lib/Error/TryCatch.pm http://search.cpan.org/~nilsonsfj/Error-TryCatch-0.07/lib/Er... or just eval and see what the output is. > objects Edit: I was being an asshole Perl has a decent object system out of the box and Moose for those times when you want type constraints. package MyClass; use base 'Parent'; sub new { my $class = shift; bless { prop1 => undef }, $class; } package main; my $obj = new MyClass; > etc Lexical scoping, anonymous coderefs that can be passed as data, modifiable syntax, reference semantics, and the regex engine I see other languages comparing theirs too.
- pitchblack 15y agoThere’s nothing that can’t be said about any other scripting language from their respective fans.
- superasn 15y agoPerl is also an awesome language for web automation and testing, esp with WWW:Mechanize and LWP. Also the kind of freedom or strictness Perl offers to users is just unique. It's like slider on top. Building a website or project? then use strict, and warnings and objects. Want to write a quick and dirty csv parser? well just paste your code in the command line. How cool is that!
- insertnickname 15y agoPerl blah Perl Perl Perl? Perl! Also, did I mention Perl?
- 16s 15y agoThe thing I admire most about Perl is that the libraries written for it tend to be more complete than what I've seen in other, similar languages. I think this is due to its age. This may not seem important, but when you need a complete implementation of something you'll likely find it in a Perl library before you will in a Python or Ruby library... just my experience.
- abuzzooz 15y agoAge is not the real reason. Perl was first released in 1987, while Python was released in 1991, Tcl in 1990, and Ruby in 1995. I believe that Perl's success is due to the fact that it was written to scratch an itch. Larry Wall didn't care much about making a pretty language. He cared about creating a useful language. To this end, it was picked up quickly by Unix junkies everywhere. The other big issue, that's often overlooked, is the Perl community itself. People working on Perl are really passionate about it. Spend some time reading the perl5-porters (p5p) archives, and you'll see for yourself.
- jamesbritt 15y agoLarry Wall didn't care much about making a pretty language. This suggests that Larry Wall was happy to create a kludgey language for the sake of just getting things done. I don't have any references around to back this up, but given Wall's background in linguistics, and his demonstrated interest in language features, I have to believe he was interested in creating a coherent, thoughtful, as well as practical, language. Perhaps you nor I find the results pretty per se, but the language does have its own aesthetic which apparently many find to have a kind of beauty.
- kamaal 15y ago>>This suggests that Larry Wall was happy to create a kludgey language for the sake of just getting things done. Don't really know what to reply to this. Is this your speculation, or do you have a citation to back this up. Have you had some programming experience in Perl? Perl is the only programming language(the other tool is emacs) I have learn't so far which gives exponential gains in productivity with a linear learning curve. No other scripting language remotely comes closer to Perl practicality and pragmatism in the real world. Python and Ruby aren't even closer. All beauty and other merely-for-talk stuff aside, For serious applications nothing is beating C++/Java in the larger scenario. And Python and Ruby never came to match Perl's glory. Python's glory is fading pretty quickly. The web crowd is going to the next cool framework. Ruby tends to be pretty famous these days. Perl is truly among those first things done right tools. Nothing will ever replace C, Lisp, Perl, Unix, Emacs kind of tools completely. Because whatever tries to replace them, ultimately ends up looking up very similar to them.
- buster 15y agoThis is my view on Perl after coding occasionally with it for 2-3 years. For the last 6+ months i've been coding Perl 8 hours per day. In general i'd consider myself at least average in those languages (meaning this list includes my favorite language(s) and ones that i came across for projects and never looked back): C, C++, Java, Javascript, Python, Groovy, Visual Basic, C#, PHP. To be honest i don't agree at all (actually i'm all for letting Perl die except for little scripts less then 100 loc): Perl Programmers love their language: Me (and colleagues) had to use Perl for some projects and i can't say i love the language at all. I understand it, i can write it and i am constantly underwhelmed, disappointed and sometimes disgusted. The point is that Perl is sort of a zombie in many businesses and runs often enough that it can't be ignored and often enough has to be maintained. True Freedom: Probably yes, but "and often can find the core developers in charge of some code" really doesn't apply anymore.. i browsed a lot through CPAN and a huge part of modules hasn't been touched for years (i can't count how many modules i've seen from 2001). Great Community: I certainly wouldn't bash a whole community, it sure may be great, but when searching online you get the feeling it died years ago (most posts are ooooold). perlmonks.org is often a good resource, but beyond that... the IRC channels i know are more idle then other languages (by far). CPAN: True, a big selling point for Perl is the huge amount of libraries on CPAN. But it's really untrue to say "there is nothing like it" (PIP for example).. Same point as above, a big amount of CPAN seems to be not maintained anymore, there are many modules with unsolved bugs.. just a few examples of widely used modules that haven't been updated for years and have open bugs: Config::Simple https://rt.cpan.org/Public/Dist/Display.html?Name=Config-Simple XML::Simple https://rt.cpan.org/Public/Dist/Display.html?Name=XML-Simple HTML::Parser https://rt.cpan.org/Public/Dist/Display.html?Name=HTML-Parser (atleast active) And i just went through search.cpan.org hit some "buzzwords" and checked the results, there is a BIG amount of modules nobody looked at for years. I'm not saying that there is no development at all, but often enough i think "mhh, should i even use this module? Nobody seems to care about this anymore". Certainly the most important libraries are actively maintained for sure, no doubt about that! Awesome Tools: Yes sure.. Moose is a good example of what's wrong.. it's trying to bring object system to a language that wasn't even remotely designed to support modern language features. Not to bash Moose, i like Moose, it's good! But it tries to solve a problem that shouldn't be there in the first place. Another creepy example: Want to have exceptions in Perl? Turns out the language doesn't have them.. There are modules.. all of them do some black magic trying to emulate this. The number one google hit (Error.pm) even states "Using the "Error" module is no longer recommended due to the black-magical nature of its syntactic sugar, which often tends to break.". And this is not some fancy 2011 language feature, it still isn't built in! What's also not built in? Perl thinks it's ok when you read an uninitialized variable. Want the script to terminate when this happens? You'll have to implement and change signal handlers and take care of it yourself when other modules try the same... ugh.. Want to know if an element is in an array? There are some hideous for loops you could do, but nothing like "if X in Y".. best thing: Most recommended way to do this is to convert your array to a hash/dictionary and check for the key.. that's basic array handling.. I could go on with this list for weeks but i fear this is already too long of a text.. Jobs: Yes, where i live it doesn't matter. As IT guy it's unbelievable easy to get a job, that has nothing to do with the language. At least where i live. My criticism on Perl: - Perl lacks basic language features of a modern language (Exceptions, Array Handling, Error Handling, Unicode Support is horrible and so much more) - In general Perl code from different programmers looks very different, because basic things can be done equally "well". This and a hideous syntax leads to really hard to read code unless you know every way a Perl program can be written (and i'm sure not even Larry Wall knows that) My fun fact on Perl: - Did you know that Parrot (the Perl6 VM) won't have a Perl5 interpreter because it's next to impossible to craft a 100% perl5 compatible parser.. at least they gave up early. I've had the highest WTF-count while reviewing other peoples code by far(i may at one day put my prime example on thedailywtf.com). Now this will get me a massive downvote, but this is my Perl experience. I can only beg people: When your script/tool exceeds 100 lines of code, don't use Perl! Atleast not if there is the remote possibility of another human being having to understand or maintain it. Please! [edited for some paragraphs, but well... not as readable as i'd like it to be, sorry!]
- geebee 15y agoIt can be very revealing how people feel about a programming language after they stop using it for new projects. Some people can't quite give it up, others fondly send flowers once a year, and some people piss on the grave. I do think people often wind themselves up when they're breaking up with something - could be a personal relationship, a hobby, a programming language - anything that required a lot of devotion. I think we do this to justify the decision and overcome the dissonance we feel (ie., we overstate the problems we have experienced as a way of overcoming the pain of leaving), so it's especially impressive when people still look back on a programming language with affection. Perl seems to be one of those languages. Java gets a lot of scorn from people who once used it and have moved on. I personally look back on the days of servlets, jsp, and jdbc fairly positively - I do remember sometimes looking at the screen and realizing that my fingers were going to spend a few days typing something that I'd already thought out, but it all made sense and I felt like I could do anything. I didn't start hating java until configuration hell arrived. Then, I wanted out.
- windsurfer 15y agoA few years ago I did a lot of Perl work. Since I do interactive multimedia, I wanted to try my hand at game programming (Frozen Bubble is written in Perl, it couldn't be that hard, right?). At the time, however, the only graphics libraries were extremely limited, which forced me to work in different languages. Recently, a new awesome SDL library has been created: http://sdl.perl.org/ http://sdl.perl.org/ that actually supports drawing lines on the screen! It's really tempting to make some perl games again. Right now I'm using the Effect Engine which has a perl backend. It's wonderfully written and straightforward. Many of the "simple" things it does would have been a lot more complicated had they been written using other popular languages. The library support also means that extending anything is easy as pie.
- agentultra 15y agoI made a few patches for SDL::Perl and I'm a fan. I also helped do some of the porting work on Frozen Bubble and Pangzero to the new APIs. It was pretty fun. Perl isn't easy to learn because it's difficult to become familiar with it. However, I found it enjoyable to work with. It's certainly a little quirky but for a dynamic language it is also quite malleable. My example is Moose: Perl didn't ship with an OO system but is flexible enough that Perl6's object model could be back ported. Don't like Moose? There are others. Or you could just use straight blessed hashes (which Python, Ruby, and others just put syntactic sugar around). For a dynamic language it's pretty nice. But I don't think it's going to be winning many converts these days. The tower of babel had fallen long ago and people are starting to pick up the pieces again. Languages that stray too far from the squishy middle of collective wisdom, I fear, are likely to relegate themselves to history. That being said, Perl does have an excellent community. And I really like reading Perl books. They're really fun where too many are either dry or over-compensating in quirkiness. Perhaps its those unixy origins that still pull me to it.
- _delirium 15y agoPerl is my first choice go-to language, but I'm not finding the CPAN advantage as big as it used to be. Increasingly I'm having to use languages I don't prefer (not out of any hostility, just not as comfortable in them) because they have libraries that CPAN either doesn't include, or doesn't include with the same polish/functionality. For example, there doesn't seem to be anything in the Perl world as good as the Python Imaging Library (PIL); PerlMagick is featureful but not very fun to use. The data-visualization libraries are also way behind Python's matplotlib. NLP is a closer call, but overall I find NLTK better integrated and maintained than the stuff in CPAN, though CPAN does have modules for most things you might want to do. I'm currently using Perl for some simple GIS stuff, and the GIS packages also are pretty hit-or-miss. Admittedly I might just not be good at finding the right packages. Python seems to have more of a culture of headline projects, which register their own domain names, like NLTK, PIL, numpy, etc., while Perl mostly has a big pile of CPAN modules, which range from excellent and actively maintained, to a script someone once wrote that's incomplete and hasn't been touched in 12 years.
- phaylon 15y agoHave you tried Imager[1]? It's what I'd recommend these days, but I don't have experience with image manipulation in any other language so I can't compare. I agree that there need to be better ways to find modules. I have high hopes for MetaCPAN in this regard. [1] https://metacpan.org/release/Imager https://metacpan.org/release/Imager
- chromatic 15y agoNLTK is great; it's one of a handful of headline projects that make Python worth knowing. (Pygame is another.) I haven't found anything that makes GIS easy.
- greenName 15y agoThe great downfall of Perl is that it's slow: http://shootout.alioth.debian.org/u64/which-programming-languages-are-fastest.php http://shootout.alioth.debian.org/u64/which-programming-lang... 60X slower than C. 30X slower than Java If sed/awk/grep/sort/tr is not up the task, sure, try Perl for those one offs. For serious computation? Fuggedit.
- bitcracker 15y ago> The great downfall of Perl is that it's slow: What about Perl6 and LLVM? My personal experience with Perl5: - It has incomparable expressiveness. Only APL is more expressive. But more expressiveness makes source code less readable. - Perl's regexp engine is the best - no doubt about it. - I would never use Perl for big projects. Its odd syntax ($, sometimes %,... before variable names etc.) is terrible for long term maintainability.
- chromatic 15y agoWhat about [Perl 6] and LLVM? No Perl 6 implementation is mature enough to use for practical purposes. LLVM probably won't help Perl 5, because Perl 5 lacks sufficient type information, and because LLVM's design really seems to want static languages. See also the JVM and the CLR. Its odd syntax ... is terrible for long term maintainability. I would never attempt to maintain code written in a language I don't know.
- bitcracker 15y ago> I would never attempt to maintain code written in a language I don't know. I know Perl 5 well enough but will my successors also? Is Perl still rising? I don't think so.
- chromatic 15y agoI know Perl 5 well enough but will my successors also? That sounds like a hiring and training question.
- Duff 15y agoMy perspective on Perl is that it's like a Dremel tool. If you've ever had a household project that requires a tool you don't have or skill you don't know, you can usually take your Dremel out, dig through the gift pack of attachments that you received for Christmas, and find a way to do what you need to do. Will the results be pretty? No. Is it the best way to get the job done? Probably not -- but it's good enough. Perl's great because it has the power to do lots of things, quickly, and without alot of drama. It's dangerous because it's just good enough to keep some hastily written program around too long. Many "black box" processes written in unintelligible Perl by persons unknown haunt data centers all over the globe. I enjoyed the time I spent with Perl immensely. But I spent it as a individual sysadmin/DBA turned developer integrating lots of complex systems on multiple platforms a decade ago. (For better or for worse, some of those apps are still working!) For a team of programmers in 2011, there are probably tools out there that will do the job better for the same price.
- JadeNB 15y ago> My perspective on Perl is that it's like a Dremel tool. Or, perhaps less literally, like a Swiss-Army chainsaw. http://catb.org/jargon/html/S/Swiss-Army-chainsaw.html http://catb.org/jargon/html/S/Swiss-Army-chainsaw.html
- Duff 15y agoThat's great... I somehow never ran into that before. Thanks!
- lawnchair_larry 15y agoPerl is easily the worst language I have ever had to use. I just can't stand it. Maybe perl 6 changed everything, but I thought perl 5 was such a terrible hack.
- bitcracker 15y agoAnyone using Perl 6? What is your experience? Is it mature enough for serious use or should we stay with Perl 5? This article http://perlgeek.de/en/article/5-to-6 http://perlgeek.de/en/article/5-to-6 shows a glimps of the features of Perl 6.
- chromatic 15y agoIs it mature enough for serious use or should we stay with Perl 5? Stay with Perl 5.
- 101000101 15y agoSo if I compile a busybox-like crunched binary with a variety of "do one thing well" UNIX utilities, including sh itself, and then I write a shell function that only calls this single binary it its various incantations and uses pipes and temporary files residing on tmpfs or mfs (instead of reading entire files into memory the way perl does), and this binary used like this can do all that Perl can do, why should I use Perl? That's my question.
- chromatic 15y ago* [If] ... this binary used like this can do all that Perl can do...* If you can do that, great! Do it. That's a big job though, and it's not worth my time even to consider how much work it is. That's why I don't bother.
- 101000101 15y agoIt's actually a very small job. The hard part I guess is learning to do things with the shell and UNIX utilities instead of Perl. And simplifying what you do and how you do it. If you choose to do complex things and do them in complex ways, or you can only see complex solutions where simple solutions exist, I guess a module-powered scripting language like Perl becomes irresistable and using the UNIX base utilities becomes a prohibitively painful exercise. I want to learn Perl. But I just cannot find the motivation because I never need more than what UNIX gives me.
- Mithaldu 15y agoYou wrote a website with only the shell and unix utilities?
- 101000101 15y agoI write small, simple shell functions using a single busybox-like binary that do the same things as Perl modules. I store the shell functions in a local repository and load/unload them as needed. I make "programs" by combining different functions.
- mmaunder 15y agoI program in a variety of languages and Perl has formed a big part of that during the last 12 years. The one thing that all other languages seem to lack is the native support for regex that Perl has. Perl also seems to give the best regex performance of any language. Regex is the swiss army knife of text processing, which is most of what we do when building web apps. I'd like to see all major web languages support regex natively like perl does including things like: $str =~ s/([a-z])/$myFunc->($1)/ge;
- brider 15y agoHonestly, I am completely unsure why we are discussing this article, or why it showed up in a place like HN. It is clearly based on shutterstock's agenda in acquiring perl developers. I coded perl full-time for a year, straight up, for 10+ hours a day -- using it as the glue to hold a rudimentary distributed system together. To show that I myself am not biased, I will admit Perl has a lot of nice things, but it also has a lot of undesirable things. This article only concentrates on the former (and doesn't even focus on what could arguably be the right nice things to speak of).