|
A personal foible perhaps but I do find Ruby's regular expression syntax
remains in my brain much more easily than the Python equivalent.
Maybe it's the Ruby inheritance from Perl that makes the difference. For
simple scripts I can just write standard regexps without any recourse to documentation
and they just work! For example:
some_var = "prefix interesting_match some suffix"
if some_var =~ /prefix (\w+) some suffix/
interesting_bit = $1
print "Match found: ", interesting_bit, "\n"
end
In order to do the same in Python I find myself faffing around with the
documentation (using ActiveState Python it's great to have a proper help file,
but I would really like more links between the class reference and real examples of usage to help
me out) and trying to remember if I want re.search or re.match and how do I get
a match group and use it, etc. I have sundry Python scripts floating around that
I open up and copy relevant examples from, but it does rather take time.
import re
some_var = "prefix interesting_match some suffix"
pat = re.compile('prefix (\w+) some suffix')
m = pat.match(some_var)
if m:
print 'Match found: ', m.groups(0)[0]
Now I have to admit that it's not a huge deal in terms of the resulting code,
but it took me 5-10 minutes just now to code and debug the Python version as
opposed to the Ruby version which I typed in and which worked first time.
The net result is that I am noticeably more productive in Ruby for those
little scripts that make life easier, or when I am under strict time pressure.
Now this is not to say that I don't like Python, or indeed that when I have a
little more time I don't get use it and enjoy it. Having done some reasonably
significant work in Python, e.g. rework
P4DTI for PVCS (now Serena) Tracker I feel reasonably qualified to comment.
I also took the time to get sufficiently proficient in Python extensions to
enhance and maintain
P4Python. Mind you I now feel somewhat humbled by the most recent efforts at
a Perforce integration (PyPerforce) - shows a depth of Python extensions knowledge before which I can
only bow in admiration! (Minor aside - Ruby extensions are much easier to write
than Python ones due mainly to the different garbage collection models).
Finishing up, I am definitely Perl-averse these days. There are a few Perl
scripts that I maintain and can't be bothered, or can't find a convincing
"business" case to rewrite, but anything new is Ruby or Python.
|