Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Perl is obsolete and was replaced by Python for all usages in practice.




Right... except for the use case I pointed out. That being that perl is available on virtually every unix like operating system, not just Linux, and python isn't.

Also, perl has other uses. Perl is much more competent at awk/sed/grep like tasks than python, and it can also be much faster. More people should be writing perl, imo. There's a ton of programs written in C that should just be perl.


The perl regex is more flexible, but that comes with a pretty substantial overhead: compare the speed of "grep -E" to "grep -P" and you'll see what I mean. I wouldn't be surprised if the RE module in modern python is faster than perl... but I also don't really care enough to check :)

Many languages use perls regex engine, like PHP. And PHP is definitely faster than python, but that's a low bar and honestly no idea how the regex performance is.

But, I do know perl regex are very fast because they're compiled at build time. They can have high time complexity if you use lookback, but that's true of most regex implementations. Dynamic regex is definitely slower, but this is somewhat rare in most perl programs.

But, in general, perl is going to be much faster than python or bash. Bash because bash is one of the least efficient languages ever designed, forking for basic functionality, and python because python has truly awful performance characteristics.

But, I would argue, if you have a system with python, you should probably write PHP. It's faster than both and very convenient for shell scripting like things.

But if you don't have python or can't assume it, use perl. For the love of God, don't use bash.

Python has many uses, I just don't think system scripts or system utilities is one of them. That's C, perl, or bash land, and perl is clearly the frontrunner there.


> And PHP is definitely faster than python

That certainly depends on exactly what you're doing...

> But, I would argue, if you have a system with python, you should probably write PHP.

That's a new one, I've never heard anybody seriously advocate for PHP as a system scripting language before...

> Python has many uses, I just don't think system scripts or system utilities is one of them. That's C, perl, or bash land, and perl is clearly the frontrunner there.

Having written plenty of all of those in my life, I really disagree. Python is easier and faster to write, and for scripting that matters more than just about anything else. Performance is almost irrelevant.


Python is really not faster or easier to write than perl. It might be if you don't know perl, but if you do know perl, you basically can't get more expressive and terse than that.

The main problem with python is getting it on systems is the biggest pain in the ass imaginable. Even deploying C++ is simpler.

If you're making the script for yourself then sure, fine. As soon as you're distributing to systems you don't 100% control, drop python. It's just annoying and it's not worth it. That 150 like python script could've been a 100 line perl script, or a 150 line one if you want. And then, you can just plop the file on basically any unix-like and run it.


I should have said "accessible" not "easier to write", that's what I was trying to say. A much larger portion of programmers have meaningful experience writing python than perl or php. I'm more likely to get patches and/or good bug reports from users when the scripts break if the scripts are written in a language they have experience with.

> The main problem with python is getting it on systems is the biggest pain in the ass imaginable.

Just avoid external dependencies and use /usr/bin/python, most scripting doesn't need any external dependencies. Or maybe I'm not understanding what you mean?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: