I was recently asked this question and didn't know what to reply exactly. Do you think Ruby and Python are taking over Java these days? Or is it the reverse?
What's your take on this?
Its like asking web developers what their favorite language is :) This poll won't really mean anything substantial.
Such an open-ended Question , like which programming language is better, can be best answered by looking at it from a specific context.
First thing such an individual would need to do is understand that the development of programming Languages are part of a glorious legacy of technical expression, and the internet has archived this journey. An excellent book to understand the basic nuts and bolts of what a programming language is evidenced in the book - GNU Programming using Small Talk.
This book introduces you to the basic concepts that you need to know if you have to understand the distinction between the different types of Programming languages, specifically the ones that are interpreted (Python/Perl/Ruby), compiled (C, C++) and platform independent(Java).
This basic knowledge of how languages differ from each other is crucial to taking a stab at answering such a subjective question.
Python and Ruby , being interpreted languages , have a faster learning curve , and a basic leaning towards logic and internet concepts is sufficient to get you up and running. With the kind of help that is available on the web, you can easily write a program to send mail, collect online feedback, submit an online form within a couple of weeks.
There is nothing like producing working code within a few weeks of your learning stint to engage interest in a programming language
Java on the other hand , requires an introduction to concept of Virtual machines, Application / Web Servers, and its capabilities in Enterprise Application Software development, if one were to truly want to see why Java is running on 1 billion devices.
The point here is Java is perfect for working in large teams and building enterprise applications, owing to its scalability and extensive API with vendor support.
Either Python or Ruby will do the job for you.
Python would be language of choice due to the traction that it already has, and you can find people to join you in such a large pursuit.
The world is your playground - Python, Ruby , Perl , LISP, Erlang, Go , Haskell
Notice that Java is not in this list, because (in my opinion) the stereotype of those who learn Java are not those who want to contribute to the growth of the language per se, since it is now a proprietary software. Java will always be relevant , but it will not be the default choice of those who want to exist at the cutting edge of Language Development.
Java , surprisingly is a good option here, because the language sits at the confluence of a good Graphic Api (awt,swing) , great OOPS capability, and excellent free tools.
Michael Merritt
I love all things Mobile and HTML5
IMO, Every beginner should start their programming journey from Java. They will get to know the real strongly typed language before jumping into others. Every programmer must face the exceptions that Java has. ;) This will make them a real soldier!