http://www.perlmonks.org?node_id=26658


in reply to RE: Sorting a list of IP addresses (aka Why I hate Big O)
in thread Sorting a list of IP addresses (aka Why I hate Big O)

There is a very interesting point about Perl and algorithmic efficiency. Perl makes it very natural for people to use highly optimized pattern recognition algorithms in the regular expression engine, and a good hashing algorithm.

C, while much faster, makes it far more natural to repeatedly scan lists rather than store a key in a hash and just check exists.

The result is that the same person in many circumsances will find that their Perl code not only is easier to write and read, but outperforms what they would have written in C. Sure, if they wrote their C carefully they would beat Perl every time. But natural Perl idioms tend to be better algorithmically than the natural C approaches, and algorithmic efficiency trumps raw performance.

(This does not hold true for all programmers, YMMV, etc. But it is surprising how often it is true.)

  • Comment on RE: RE: Sorting a list of IP addresses (aka Why I hate Big O)