In August, globalrev wondered what Ruby has that Python doesn't (http://news.ycombinator.com/item?id=283639). I have a related question.<p>In my day job I am a Java engineer working on enterprise software (I know, I know). I'm considering taking the time to gain expertise in another language that is strong where Java is weak (I currently stumble around in python with decent results).<p>No offense to language people, but what I care least about is obscure edge cases. I have no pressing plans to do class metaprograming or crazy language-hack magic in general. I do appreciate elegance and simplicity in a language.<p>I definitely want something stable, widely deployed, with a rich set of functionality/libraries -- thus my initial thoughts of python or ruby.<p>What language would you recommend? Why?
Either Python or Ruby is a good bet. I'd personally go with Ruby. I could rack my brain for good, logical reasons, but I'll keep it simple: I've used both and I like it more. Other people prefer Python. I do think that JRuby is a bit further along than Jython, but that's probably not a deal maker.
Go for Ruby. JRuby is actually faster than Ruby, and will improve in future versions of jvm. Calling java classes from jruby is simpler than calling Java from Java. If you're using Eclipse as IDE, I suggest you try out the DLTK Ruby plugin for code completion and debugging. Netbeans IDE is also a good bet.<p>I've never gotten used to python's use of indentation as syntax. The __magical__ method names with double underscore looks just plain ugly. In my opinion Ruby code looks more clean and simple than python.
Since you've started with Python why not stick with it?<p>Python and Ruby have way more in common than the good natured ribbing the two communities give each other might suggest. Besides which, Java/Python is a very employable combination.<p>Once you've gone a bit further with Python why not try some ruby, then lisp/erlang/ocaml etc. etc. etc.
Ruby and Python are both great choices like everyone has said. However be warned! It may make you quit your enterprise software job. Once you move to a dynamic language you will become increasingly frustrated with the inadequacies of the Java language. Eventually you'll want to work with Ruby/Python/etc so much that it will make you quit your job....and move on to something, possibly, better. :)
There's Groovy (<a href="http://groovy.codehaus.org/" rel="nofollow">http://groovy.codehaus.org/</a>). I didn't get a great feeling about it when I tried it a couple years ago, but I really haven't used it much or know enough about it to pass judgement. It sells itself as "builds upon the strengths of Java but has additional power features inspired by languages like Python, Ruby and Smalltalk", so it seemed pertinent to this thread.
i first learned python to use google app engine. if u think u might be dabbling with mini web apps, try python so u can drop into google app engine. just fyi that gae is still immature but barrier to entry is the lowest that i've seen. curious on other's opinions about this.
jruby doesn't work very well at the moment. Dog-slow performance on the jvm, buggy. I'd suggest trying out Scala. Eventually jruby will catch up, but supposedly it needs java 1.7 jvm dynamic language support to be effective.