10 ms·
Guys I am genuinely asking this and I have zero intent on bashing on Perl. What is the position of Perl industry right now? how much it can compete with Python.
by 0xFFC 9y ago
Guys I am genuinely asking this and I have zero intent on bashing on Perl. What is the position of Perl industry right now? how much it can compete with Python. Where does it compete? is it on losing side ?
P.S. I am student and I have no real perspective on what is going on in industry right now.
- C0d3r 9y agoCompanies who are already using a technology such as Perl usually already have both some senior people who only know that technology and/or have a big codebase on that, such that migrating the code would take considerable resources. Basically, sometimes it's not a choice.
- deleted 9y ago[deleted]
- deleted 9y ago[deleted]
- rglullis 9y agoThe only big company I know that uses Perl extensively is booking.com, and I think that has more to do with any technical merit from the language, and just that is what they started and it was working for them. To be honest, I think Perl still powers a whole lot of systems, and certainly is a powerful tool for someone who is a Unix sysadmin, but this kind of job is dying. And as a language, I think Perl has nothing on Python or even Ruby, or even PHP nowadays.
- thinkMOAR 9y agoWhy do you think unix sysadmin function is dying? Just curious.
- dagw 9y agoAs an ex-sysadmin I find that a lot of what I used to be responsible for is now outsourced to "the cloud" and most of my old tasks are being handled by other people as a secondary responsibility. Back when I started it wasn't uncommon for a 20-50 man company to have a dedicated sysadmin, whereas now I hardly ever see that.
- thinkMOAR 9y agoI see this too, and i think it is a shame/mistake, i'd recommend to keep such people on board, and expand their workload/responsibilities when sysadmin work is on the low. (though when needed they should be able to dedicated their full time on sysadmin related work). I then see it happen they no longer have any knowledge about systems and their processes, just outsourcing. And often, things then go downhill quite fast in service which leads to less happy customers which leads to lower company/employee moral etc. People not knowing what computing power certain processes need or what its worth in money (over/under specced nodes), or backup processes not properly monitored or setup.
- mdnormy 9y agoDevOps duh In all seriousness I'm glad with these changes. I'm paid more to be NIX sysadmin, with minimal working knowledge of AWS/Azure/GCP. All hail buzzword!
- walshemj 9y agoI still think CPAN has more coverage than the equivalent in python
- cutler 9y agohttp://modulecounts.com http://modulecounts.com
- falsedan 9y agoWhich python module lets me declare object methods like: method foo(bar): self.do_foo(bar+self.baz) ? Because I get tired of all those selfs
- falsedan 9y ago…is the answer 'the downvotes module'?
- falsedan 9y agoDownvoters: ok I get it: never post anything that's not a glowing recommendation of Python or an attempt to learn more about available modules/distributions.
- cyphar 9y agoComplaining about downvotes won't get you any praise in this community. It comes off as whining and is against the guidelines: > Please resist commenting about being downvoted. It never does any good, and it makes boring reading.
- cyphar 9y agoThere isn't one, because "explicit is better than implicit". Personally I've always found that Java's optional-self syntax to be incredibly confusing when reading code. You could try to monkeypatch it by creating a decorator that will mess around with the closures of methods to make it work, but I don't understand _why_ you would want to do that.
- pwr22 9y agoI saw a talk at FOSDEM where a developer who worked at Booking said something along the lines of - Big company bought lots of different hotel sites - Big company decided to consolidate them into one system - Booking (the Perl shop) won out So I don't think it's necessarily just that "it started in Perl", if so then it could easily have been consolidated based on one of the other platforms that were not Perl based
- graysonk 9y ago> Unix sysadmin, but this kind of job is dying I don't think this job is dying, but rather evolving. Of the Unix admins I learned under, only the ones who were also okay programmers and adapted have a great job right now. The writing is on the wall for those that can't/refuse to program. I had an interview with Facebook and they were bragging about laying off 100's of sysadmins with a machine learning model. Also, this is anecdotal, but of my friends who are software engs only, I make more as a "Systems Engineer" or "DevOps Engineer" or whatever buzzword by knowing systems and a moderate level of programming, but it is the same skills from the 90's applied to the "cloud".
- kluck 9y agoHonestly, you are asking the wrong question. How can two turing complete programming languages even "compete"? I though about this a long time and came to the conclusion that it's not worth the effort to come up with an answer unless objective metrics are beeing found.
- gkya 9y agoGood luck finding Ioke jobs then.
- stevekemp 9y agoEven now I start web-projects with Perl. It's not "cool", it's not "sexy", but there package collection (http://cpan.org/ http://cpan.org/) is __huge__. I find it unlikely that new people will suddenly rediscover perl, in the golang/node.js/python-centric state the world is in. But the people who love it, do continue to love it, and do continue to do useful and essential things with it.
- forinti 9y agoCPAN has never failed me. I love it.
- cutler 9y agoThe CPAN argument for choosing Perl was relevant about 10 years ago but if you look at http://modulecounts.com http://modulecounts.com you'll find Ruby, Python, PHP, JS and Java have an order of magnitude more libraries to choose from. CPAN is not __huge__ by today's standards. Drupal alone has the same number of modules. The declining community also means many of the libraries on CPAN are unlikely to be maintained.
- i336_ 9y agoYes, "stableperl" maintains a small number of backported bugfixes to Perl 5.22: http://blog.schmorp.de/2015-06-06-a-stable-perl.html http://blog.schmorp.de/2015-06-06-a-stable-perl.html The author cites a couple of issues as the motivation behind the release.
- wazoox 9y agoHum, depends upon your definition of what's a module. from cpan.org front page: The Comprehensive Perl Archive Network (CPAN) currently has 186,953 Perl modules in 35,278 distributions, written by 13,095 authors, mirrored on 248 servers.
- deleted 9y ago[deleted]
- krylon 9y agoI don't use Perl for anything that I suspect will amount to more than 1,000 lines of code. But for smaller scripts that automate tedious tasks or massage data to connect two otherwise software systems or generate a report-ish overview of a database/table, it is very hard to beat. Ruby comes close, but then again, Perl has been relentlessly optimized and fine-tuned over the last ~15 years, so for the stereotypical use-cases it is actually very fast, even compared to what one could cook up in C without weeks of hand-optimization and tweaking. Someone once said that Perl is to batch-processing of text what Emacs is to interactive editing. I think the comparison is somewhat accurate.
- rurban 9y agoon the contrary perl5 has been relentlessly de-optimized and destroyed over the last ~15 years by its maintainers. how did you get to this interesting opinion? do you really believe the p5p marketing hype? perl5.6.2 still blows away all newer releases performance and memory usage wise. 15 years ago the author was still active.
- i336_ 9y agoIt's sad you're being downvoted. I've found similar sentiment elsewhere, and I'm interested to learn more. stableperl (http://blog.schmorp.de/2015-06-06-a-stable-perl.html http://blog.schmorp.de/2015-06-06-a-stable-perl.html) is a fork of perl 5.22 with a couple of tiny reversions that re-enable access to some internal state required by certain CPAN modules. The author talks in other blog posts (http://blog.schmorp.de/2016-12-29-griefing-the-perl-api.html http://blog.schmorp.de/2016-12-29-griefing-the-perl-api.html, http://blog.schmorp.de/2015-11-12-tidbits-why-coro-crashes-or-how-perl-6-deals-with-bugs.html http://blog.schmorp.de/2015-11-12-tidbits-why-coro-crashes-o..., http://blog.schmorp.de/2015-12-15-tidbits-cgipm-a-data-point.html http://blog.schmorp.de/2015-12-15-tidbits-cgipm-a-data-point...) about the decline of Perl's cohesion. It's sad to see. -- EDIT: And now I'm being downvoted. I have no problem with Perl, I watched the Perl 6 presentation when it was released with great interest. Perl remains on my list of languages to learn (I know, I know...). It's up there. And that's why I said I was sad to see datapoints like the one I linked. I want Perl to keep going strong, and I hope it lasts another 20 years. I guess I added this comment because I wanted to find out if there was anything I could do.
- TurboHaskal 9y agoThere are still jobs specially on the banking sector, but these are not the kind of jobs you want. Its position in the industry is somewhat dying as I'm not aware of many new projects being written in it. I am myself in the process of phasing out a significant Perl codebase in exchange for Java. I think it cannot compete with Python at its current state. This has nothing to do with the language (I consider Perl to be vastly superior) but rather its ecosystem and lack of momentum. Concerning scientific programming, PDL used to be among the first choices but I'm not even sure if it's being used in bioinformatics anymore. Its last nail in the coffin was missing the DevOps hype-train (Puppet, Chef...) So even though the language is awesome I wouldn't recommend a developer in 2017 to learn it
- oblio 9y ago> I think it cannot compete with Python at its current state. This has nothing to do with the language (I consider Perl to be vastly superior) but rather its ecosystem and lack of momentum. In this specific case, these are contradictory. Perl and Python had roughly the same amount of corporate backing (almost none) and Perl had a huge head start. If Perl as a language would be "vastly superior", Python would have never developed its ecosystem and wouldn't have ever gathered enough momentum.
- cutler 9y agoPython's growth in popularity is largely due to its superior data science libraries and the backing of Google. Without these it wouldn't be where it is today. Perl's stewardship is largley responsible for its decline. If Perl6 hadn't taken 15 years to complete Perl's popularity might be different. Perl6 is far superior to Python and most popular languages. It's just not performant at string/regex handling which is ironic considering regex was Perl's forte.
- oblio 9y agoPerl is not more readable than Python. I know that "readable" is a subjective trait, but Python is 1 cm away from being pseudocode. And when a programming language is basically the thing we write when we don't have any tools to assist us, that says a lot about the language's syntactic quality, including its readability. Both the data science libraries and Google's backing come from this. And to be honest, I don't really see how Google's backing mattered that much... 99% of the popular Python libraries have nothing to do with Google, especially Django.
- rurban 9y agoMostly legacy. perl5 is not developed anymore, just managed to death compared to the other big 3. Of the big 4 only php managed to improve itself significantly, but it's still only php. perl5 is still top 10, runs tons of code, has one of the hugest library codebases (CPAN), and is much easier to use than e.g. python or php. ruby is better, but slower. You cannot use simply a repl in whitespace formatted language (python), and trivial scripts get soon overly large. with perl sysadmin tasks or extending bash scripts is trivial. why gdb chose python over perl is not a technical decision (perl would have fit much better), but more a management decision. perl5 is going nowhere, and python is also stagnating, just slower. with ruby there still is a bit of hope. php done everything right, but still got its legacy coders and the horribly designed old stdlib.
- throwaway7645 9y agoThey're all stagnating. Nim for Python & Crystal for Ruby are the logical steps forward to get speed (GCC & LLVM respectively for compilers).
- collyw 9y agoI moved from Perl to python around 6 years ago. There are more jobs available for Python, though probably more competition as well. I regularly see Perl jobs posted in London, but the wages are surprisingly poor, compared to what I could get for my Django knowledge.
- tacostakohashi 9y agoI think your comment on wages is astute, and it's the same everywhere. There are Perl jobs around, but they're on legacy codebases in (parts of) organizations that are basically too dysfunctional / under-resourced / incompetent to upgrade them, and if you take the job you'll just be putting out fires and stagnating. When you take that into account, the salary would need to be at a real premium to make it worthwhile, and the premium just isn't there.
- voidmain0001 9y agoThe 2017 SO Developer Survey has Perl in 6th place for highest compensation in the world. https://insights.stackoverflow.com/survey/2017#technology-top-paying-technologies-by-region https://insights.stackoverflow.com/survey/2017#technology-to... Interestingly, Perl places 5th in the USA for highest compensation, and it doesn't even make the lists of France, Germany, India, and the UK.
- tacostakohashi 9y agoHmm, I am pretty surprised by that, but I'll take it at face value. I suspect there is too much else going on for a comparison of salaries by language to be meaningful. Those Perl programmers are probably highly paid mainly because they have 20ish years of experience, and lots of other valuable Linux/Unix experience. There are probably lots of fresh graduate and entry level JavaScript / Java / C++ developers bringing down those averages. I always get a good laugh when I see job ads for a "Junior Perl developer" paying 25k GBP or something. They stopped making those 20 years ago.
- cafard 9y agoI learned Perl back in the Perl 4 days, and still write one-off scripts in it. Lately, though, I do most new work in Python, since the young seem more likely to know that than to know Perl.
- monk_e_boy 9y agoLocal companies using Perl have all migrated to Python or are 90% on the way. I know a few Perl guys who are employed just to keep legacy systems working while the customers are migrated over to the new Python systems.
- wcummings 9y agoI interviewed for a Perl gig at a biotechnology company recently. There's still people using perl out there.
- wcummings 9y agoModern Perl pretty much has feature parity with python. Don't listen to the "perl bigots".
- cutler 9y agoMy Indeed.com API client, which eliminates duplicates, shows 39 Perl jobs by title search in London compared with 405 Python and 166 Ruby. For the UK it's 64 Perl to 741 Python and 274 Ruby. So most of the Perl jobs are London-based. To put it in perspective, the same stats show Golang with only half the number of Perl jobs.
- petre 9y agoWe are using it in production. It gets the job done. Looking forward to a Perl6 stable release. It is stable but Rakudo still needs a bit of polush. Also it doesn't have the amount of modules Perl5 has. What it does have however, is precise arithmetic because numbers in Perl6 are internally represented as rationals. https://docs.perl6.org/type/Rat https://docs.perl6.org/type/Rat
- yellowapple 9y agoPart of Perl 6's current problem is that it doesn't have a real CPAN equivalent yet. Hopefully that'll be fixed soon.
- petre 9y agohttps://modules.perl6.org/ https://modules.perl6.org/ Although it's merely a list. But you have zef, an installer that pulls and installs modules.
- yellowapple 9y ago"Although it's merely a list" Hence why I feel that a proper CPAN equivalent does not currently exist. The Perl 6 website even admits such. Still, it does work reasonably well for now.
- tete 9y agoI am also not a Perl programmer (anymore). I used to program in Perl decades ago and mostly switched essentially because of the hype. I've now many years of professional experience with Python and while I really like the language and will continue to use it I have to say that Perl gets too much bashing and Python sometimes not enough. I think there are a number of reasons for this. One is that a lot more Perl code got written by non programmers (sysadmins) than Python code. People know Perl for regexes and "golf" (writing extremely short code), which looks like "compressed" (as in Closure/uglify compiled) JavaScript: Ugly. The main thing that I disliked about Perl is something I also dislike about C, which is writing arrows. Other than that using other languages like Python didn't get me a lot. You can and will write ugly, unmaintainable code and long unreadable lines in both Python and Perl. The main thing that makes Python look prettier seems to be forced indention, but believe it or not Perl can be indented too. The other thing probably are sigils, which are also a rather powerful feature. There are of course different tradeoffs. Perl is more on the Ruby/JavaScript side, where people prefer expressiveness of code, where Python people prefer simplicity. And while I always for simplicity I don't think whether the community in large sets a bit more focus here or there there doesn't seem to be a great indicator for whether to choose one or the other language. When comparing Perl with Python or Ruby, which I think are maybe other than JavaScript make the most sense in terms of use cases I think Perl influenced both of them more than a lot of programmers realize. Despite the others being very mature I think Perl would wins on the edge of having solid modules and infrastructure. It certainly doesn't win in terms of image and popularity. What is nice about Perl is that the shortcomings of the languages have been largely compensated via modules. That includes modules that add changes to the syntax or add really big features like Moose, adding a lot around the topic of Object Oriented Programming, more than you have available in other languages. Another thing I want to point out is, that Mojolicious is by far the best web framework I've seen so far. It's my personal opinion, but it beats everything available in the Python and Ruby world by far. And at least with Python I've used Django and Flask for multiple years, as well as taken a look at others. The eco system in general is really good. There is a lot in regards to testing. If you really are into test driven development that alone might be a reason to give Perl a shot and be it simply to steal some ideas around this topic. That includes many modules around the topic of testing as well as CPAN Testers and other things. For the bad side. Other than reputation, the learning curve is higher. This has a multitude of reasons. One is that Perl was designed after natural languages, which explains many of its oddities. That's why it isn't as easy to pick up as other languages. Knowing other languages simply might not help you as much. Another is that a lot of very old and bad Perl tutorials are around. So one might want to look at something that in one way or the other mentions Modern Perl. One might think to know and understand Perl really quickly, but it simply takes longer than knowing how to write Perl. This is why it makes a lot of sense to read Perl code from some "big people" in the community. In terms of industry usage. I think the big names here are DuckDuckGo, Craigslist, eBay (I think), Amazon (I think). However that probably is very outdated. A good reason to not learn Perl is if you want a simple language. Perl simply is not that. I changed to prefer simple languages, which might be the reason I am now sticking mostly to Go and Python. However, it might open your eyes about different ways of simplicity here and there. It's also good to know the other side and know how "simple" certain more complex tasks can be, if you just approach them with another tool. Okay, this wasn't so much about the industry. It's certainly around, both for older and newer projects. I've seen it both in the Enterprise and Startup scene and not just online. It's more quiet, but then most projects that have been around for a while don't have any big news. Debian, Postgres, various OSs, etc. Oh one more reason: If you like it boring to get stuff done then use Perl. I think the Perl5/Perl6 thing is over and everyone agrees they are two different languages, so it's not like in Python where you still have so many projects supporting just a subset of Python in order to keep compatibility. I think if you have Perl developers, which certainly exist, even in large quantities, choosing that one rather than Python certainly won't give you a big downside or so. I think they are pretty much the same in that regard, even though I am pretty sure that neither community would agree on that statement. I chose Python and Go for everything I do, mostly cause I haven't been programming Perl in ages and so my development setup, my muscle memory, etc. and money is all there, still I don't think other than that Python really has an edge over Perl. Again. I know people will disagree. I haven't touched Perl in 10+ years. At all in fact. So if anything I am biased towards Python.
- maxlybbert 9y agoPerl has great Unicode support. Not just Unicode regexes, but a lot of built-in Unicode support ( https://perldoc.perl.org/perlunicode.html https://perldoc.perl.org/perlunicode.html ). I have no idea if other languages have caught up, though. Perl doesn't have anything like Python's GIL. People have other complaints about threading in Perl, but you can count on things running in parallel more often. I believe Larry Wall is correct that he borrowed more from Lisp than Guido did. Perl built in functions are also often modeled after POSIX functions (that may not mean a lot to you, but I like it). On the other hand, Perl 5 doesn't have anything like Python's "yield", and the closest it gets to list comprehensions is a Lisp-style "map" that is NOT lazily evaluated. And I've never managed to get a job where I was expected to write Perl (I've written Perl utilities at plenty of jobs, but Perl was never on the official job description).
- i336_ 9y agoWhat do you mean by Perl functions being modeled after POSIX functions? My only points of reference are POSIX being a UNIX system specification which defines both a C language reference and system userspace specification. I also have a vague notion of POSIX specifying the fundamental behavior of shells. I'm just not quite sure which point of reference to apply.
- falsedan 9y agoPerl has a core function called 'unlink', which maps directly to unlink(2). Same for stat, rmdir, link, etc. They're good for when you want something more than what the coreutils give you, but don't want to compile some C.
- i336_ 9y agoOooh, I see. Nice!
- maxlybbert 9y agoIf you want to read a directory, you use the functions opendir, readdir, and closedir. You can get a decent idea of what they do by looking at POSIX documentation. They have been modified to fit Perl better, so you still have to look at the Perl documentation as well. If you want to fork a process, you use the function "fork". If you want to call exec, Perl has it. You can even have the parent process wait on the child's pid. This isn't a big deal to everyone, but I like POSIX, and I like knowing that if I want to do something new, there's a good chance I can start with "how would I do it in C on a POSIX system?" I have many complaints about Java, and one is that their original standard library appears to have been modeled on early versions of MFC, even though Sun had access to a superior API, since they had plenty of experience with shipping a POSIX operating system.
- microwavecamera 9y agoI've been using Perl for years, it's a pretty neat language. It can seem a little esoteric at first, but once you get into Perl it's pretty intuitive. I don't know how many times when I was learning it the I thought "this seems like this should work", tried it and it did. I'm not bashing any other languages (I think it's pointless, the "best" programming language it the one that makes you productive) but Perl definitely has it strong points: - Great for sys admin stuff. Working with files and external programs is a breeze. *NIX administration is how I got into Perl. Perl is a devops friend. - Handy for processing anything text based. Tedious tasks like screen scraping is straight forward. - Versatile. Don't like X in Perl? Someone else probably thought the same thing and made a module for it. Even low level stuff like Perl subroutines and OO have alternatives. As they say in Perl TIMTOWTDI (there is more than one way to do it). - So many modules! Write less code and get stuff done fast. - Low level voodoo is easy. Perl exposes many of the internals of the interpreter so things like adding grammars and making DSL's doesn't seem like voodoo. - Multi-paradigm. Doesn't force a programming style on you. - Complex data types. Not that everything is unicorns and rainbows in the world of Perl. - Some features/syntax can feel outdated or seem "clunky" for lack of a better term. - Versatility is a double-edged sword. You can write code so bad/evil it can summon an elder god and Perl will happily execute it. - So much punctuation! If your new to the world of Perl, try out Perl 6. It has all the cool features of Perl 5 and ditches most of the weird stuff but has all the modern features you would expect from other new(er) languages.