Python is, because Ruby sucks.<p>In all honesty, both are great. People who use either love their language and will pretty much tell you to start with the one they use. Both are free and have good tutorials online with large user communities you can go to for help. Spend a few hours with both and see which one 'feels' best to you and go with it.<p>I'm a Python guy so I'd recommend Python over Ruby. I just find it easier to read and that makes it easier to understand.
I'm all for Scheme as first language. When combined with the SICP book for an introductory CS course, it allows you to explore pretty much any concievable paradigm in a single solid framework.<p>Sounds like a sales wrap, but it's really how I feel about it. And it's the MIT thing to do :-)
Also keep in mind that Python has much better (quantity and quality) libraries.<p>Compare, for example, SQLAlchemy to ActiveRecord. Not even close. Heck, you could even compare Django's ORM or SQLObject to AR and they too tend to be more impressive.<p>In my mind a beginning programmer benefits as much if not more from quality libraries than a veteran programmer.
I find the syntax of Python very logical and intuitive (except for decorators, those seem magical). So that's why I prefer Python. And like others have said it's more mature and practical.<p>Perhaps start with Python but plan to take on another language in 2-5 years, when Ruby is more mature, or web hosting companies start supporting Scheme, or Haskell, etc.
One thing you should keep in mind is that you <i>have</i> to move on to C++ to become a good programmer. Start with any of the languages, then do C++ for a couple of years. Otherwise, you will never be able to work in a low level language, since you will be pampered by all the simplicity of these languages.