7 ms·
Yes. At my $work, most of our code is in Perl, roughly a half-million lines of it dating back to the mid-1990s. There's no point in rewriting it in something
by rrwo 4y ago
Yes.
At my $work, most of our code is in Perl, roughly a half-million lines of it dating back to the mid-1990s.
There's no point in rewriting it in something else, since the cost in resources to do that would outweigh the potential salary savings by hiring cheaper programmers who know Python or C# or whatever. (My experience with some other companies is that they want to move away from Perl because Perl programmers are more expensive, not because it's a worse language.)
Likewise, there's no point in starting new projects in another language since we'd then have to hire people people competent in both of those languages.
My experience is that people who turn their nose up at "old" tech like Perl are not worth hiring. If they don't care to learn about the technology you are using, then they won't care to learn about your industry or your company's business logic.
- chrisseaton 4y agoAren't you missing advances in programming language technology (performance, tooling, instrumentation) by sticking with such an old interpreter?
- kamaal 4y agoThere's quite a bit of legacy running in our industry. Most of it is not even Perl. Think Java, Jquery, and even Python(2.x) these days. Most shops don't have the budgets for total rewrites, or even partial and gradual rewrites. The way old things die, is that new projects don't get started in those languages. To that end, Perl is something of the past already. It is still a very useful technology for a lot of Unixy work on adhoc tasks. But I doubt people learn Perl the way, they learn Python these days. Older people(including me), call upon Perl for lots of work even till date. This is similar to how people continue to use vim/emacs despite things like vscode. There is always going to be a audience for these tools. But the crowd moves on.
- mfontani 4y agoPerl gets new releases on a yearly cadence. We're now at 5.36 IIRC. A far cry from 5.8 or even 5.10. The new releases usually come with bug fixes, speed-ups, additions to the core language, optional syntax features, etc. The only way one gets to use an "old" interpreter is if they're stuck on an old OS release (i.e. RHEL?) and/or they don't build their own version and use the "system" Perl.
- jsymolon 4y ago>stuck on an old OS release (i.e. RHEL?) and/or they don't build their own version and use the "system" Perl. I build my containers and put Perl right in them. Makes the container a little chubbier but no outside dependencies.
- deleted 4y ago[deleted]
- rrwo 4y agoNo. The Perl interpreter has been regular updated and improved. There's a new release of Perl every six months, and the libraries on CPAN provide access to various other kinds of technology and tooling.
- chrisseaton 4y agoDoesn't even have a basic JIT does it? Still using a 90s-era basic interpreter and GC architecture. And there's only one implementation. Doesn't seem very healthy.
- School-Cotton 4y agoPython (or at least, the implementation used 99% of the time in the real world) doesn’t have a JIT either, so this property isn’t limited to niche, dying languages.
- chrisseaton 4y agoWell yeah compare to Python - Python has multiple alternative implementations, an active academic and industrial research community coming up with new ways to improve performance and add tooling, including revolutionary work such as meta-tracing, has new GC work, has a couple of JITs depending on what tradeoffs you want, new explorations into specialising interpretation. Perl doesn't seem to have anyone making this kind of effort? You're stuck with the tech from decades ago.
- rrwo 4y agoThe implementation is open source and not owned by a for-profit company that could decide to kill it off in the future. This is a good thing, because it means that we don't have to worry about a program running on one implementation vs another. Also, one of the things that Perl is great for (unlike many other scripting languages) is backwards compatibility. A program written in the 1990s for Perl 5.004 will probably run with minimal modifications on Perl v5.36.
- 4y ago
- vultour 4y agoI worked at a place like this and it was a nightmare. We had a few dedicated Perl programmers who swore there was nothing better since sliced bread, but there were so many legacy Perl programs it spilled into everyone's responsibilities. I know for a fact everybody else absolutely hated having to go in and decipher decades old Perl code.
- rrwo 4y agoThat's a problem with the codebase at your place of work, not the language.
- juice_bus 4y agoYou could replace Perl with any language and people would have the same experience.
- deleted 4y ago[deleted]
- vultour 4y agoMost other "popular" languages share a pretty good chunk of their syntax. You can dig through PHP/Java/C#/Go/Javascript/C++/Python pretty easily if you already know one of them. Perl and its magic variables are absolutely undecipherable if you haven't worked with the language before (or in a long time).
- kamaal 4y ago>>Perl and its magic variables are absolutely undecipherable if you haven't worked with the language before (or in a long time). Yeah, either the language gives you magic variables, or you make your own one's in the programs you write. Programming isn't sorcery. Somebody has to write the code for features a language doesn't give you. That the is whole problem in essence, the more minimal your syntax goes, the more code you will write for features the language doesn't give you. Good part about the Perl magic variables is at least they are documented.
- 4y ago
- josephcsible 4y ago> people who turn their nose up at "old" tech like Perl The problem with Perl isn't that it's old. It's bad in ways that other old languages aren't. Consider all the people who like C but not Perl, even though C is older.
- rrwo 4y agoPlease describe those uniquely bad aspects of Perl that other scripting languages aren't.
- TheDesolate0 4y ago