Python or Ruby
So, I don't want to start a flame war, but I would like to seriously have good point for one of them. If you could become an expert in one of them, which one would it be?
So, I don't want to start a flame war, but I would like to seriously have good point for one of them. If you could become an expert in one of them, which one would it be?
Yes, sometimes I love python just because it has helped me enjoy reading other's code, something that I just cannot do as easily with Java (C anything or even lisp flavors) without reading comments or looking it up in the library.
I guess these days, go with the one with libraries/frameworks that come in handy to you the most. If you love Rails, stick with ruby. Want an event-driven server, a decent web framework, math tools, visualization engine? Python has great frameworks for those and I love it for that. Mind you, I am sure ruby has much more to offer than my limited knowledge, but for me, code readability trumps over other things.
As about future direction in terms of community support, I would bet on python just because of the sheer fact that so many of Google's projects are glued together with python and the benevolent dictator works there. He must've done something right to get the Googleplex's attention.
That said, Ruby can be quite opaque to the newcomer due to the use of method_missing. It can make Ruby code exceptionally powerful, but it does effectively obscure the traditional stack trace, which can make trouble for people that don't understand what's going on. I landed in the Ruby camp (and honestly, I think I prefer it a bit to Python, just personally), but they're both great languages, both have strong communities, and will both serve you well in a number of ways.
There are lots of people that are professionally successful in both Python and Ruby. Both have vibrant communities, lots of supporting frameworks and libraries, and lots of success stories.
My personal observation is that Python tends to lean towards structure and convention; Ruby tends to lean towards flexibility and malleability. One of Ruby's biggest claims is that it's mindblowingly easy to write your own DSL in Ruby. Things like rake, rspec, cucumber, and the like are exceptionally powerful tools that aren't easily replicated in Python. This can lead to extremely readable, usable code abstractions. The price for this is that the underlying implementation can be somewhat hard to follow until you have a good grasp on Ruby's various tricks. In short, Ruby is far less principled than Python is, but that grants it an agility that Python can't achieve. Depending on what you need, either may be the right tool for the job.