As a "battle" I think it is stupid.  Otherwise, I disagree with you.  They're very different languages.  Python is great for people who are accidental programmers or non-programmer programmers, especially ones who think mathematically and analytically.  It's popular among scientists and engineers who need to understand a language pretty completely in a top-down way, but who want to waste as few brain cells as possible on a programming language because their brainpower is primarily applied to other things.<p>Personally, I've always programmed primarily in other languages (C++ being mein liebster Feind) but I've relied a lot on Python (and occasionally Jython) for day-to-day scripting and for delivering code to customers that reorchestrates existing code to do new things.  Python has never lit a single creative spark in me, but it has always delivered for me without demanding much in return.  Now, that is a statement you will <i>never</i> hear applied to Ruby.<p>I don't know much about Ruby, but the things I hear about it remind me of Perl in some ways.  Back in the day, I spent a lot of time learning Perl, promptly forgetting it, and going back to Perlmonks to learn it yet again.  Perl comes naturally for impressionists who love to program by instinct, pattern-matching, and trial-and-error.  They love it when something new pops into their head and they type it in and it just works, and they aren't immediately sure how or why.  Perl is also for dedicated professionals who want a tool that rewards more study and practice with more and more power -- mastery of Perl is a never-ending road with a seemingly never-ending escalation of power and awesomeness.<p>Ruby seems to be a much more easily understood language than Perl, but (from the outside) it seems to share Perl's magical flavor and open-ended approach to mastery.  Python is better for people like me who want working, understandable code for the smallest lifetime intellectual investment.