This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
I'm considering learning a scripting language very well, Python and Ruby are the candidates.
No flame wars, no nukes and nothing at all. I just want to share my primitive impression.
I think Ruby is much more interesting than Python, things like Meta-programming, open classes and a purer objected-oriented language.
Python is a respected, mature and clean language but I can't see what advantages is going to give to me.
Would you please share your own thoughts?
(I have doing a very little and trivial Ruby and Python in the past).
I have not used Ruby, but that is mostly because I chose Python. My personal view is that Ruby is web-centric. You aren't going to be building standalone applications to run on a Windows box in Ruby. However, if I was a web-centric developer, I would have gone with Ruby.
And as far as "things like Meta-programming, open classes and a purer objected-oriented language", Python is well recognized as one of the best programming languages to do meta-programming, and it is a pure object-oriented language with classes that are in no way restricted. So I am uncertain why you have that opinion of the language.
So, to over simplify things: If you are going to program strictly for the web, choose Ruby, otherwise I highly recommend Python.
No offense to Chaim, but I think that's precisely the kind of answer you'll get from anyone who knows one of those languages and not the other. They both have complex ecosystems that have produced tools to allow them to be used in almost any environment. Both Python and Ruby will tell you they're pure object-oriented, and that they have complex metaprogramming systems, and yet each language interprets these terms differently and offers completely different capabilities.
The thing about Ruby's Web-centricity is untrue; perhaps Chaim is thinking of Rails, which is a Ruby-based Web development system. Similar systems exist for Python, of course. Either language can be, and has been, used to write Web apps, and standalone apps, and small scripts, and large systems, and everything in between.
Which should you learn? Personally, as someone who has used both fairly extensively, and is currently doing a lot of Python work, I prefer Ruby. I find it far more elegant and aesthetically pleasing. Python often feels clunky to me.
But you know, right now scripting language for the JVM are a big thing: Scala, Clojure, and Groovy are all capable and interesting languages that you could consider.
Actually I have been investing heavily into Clojure for the last 4 months.
The JVM have a plethora of languages (Clojure, Scala, Groovy, Kawa, JRuby, Jython and many others) but sometimes I feel that I have to step out the JVM (not to tie myself to a single platform) and explore other tools and languages natively.
Like creating Rails application, not JRails one. Scheme installation instead of Kawa.
Your answer is exactly what I'm looking for, thank you.