With Oracle suing Google over Dalvik's patent infringements, I'm wanting to get off the Java bus I've been on for 10+ years. I really enjoy coding in Java, love the tools (eclipse, profilers, etc...), cross platform, garbage collection, etc... What is the best alternative out there? I'd like to build cool gui's, mobile apps, web apps, back-end integration, pretty much everything and anything. I don't really want to invest in learning 5 different languages for 5 different scenarios if possible. I'd love to be contributing to FOSS. Even if many things aren't there yet, I want to get on the train with a technology that is headed in the right direction. I supported Java out of the box with 1.0 implementations because it got me off of MS choke-hold. Now I want to get off the Java train for the same reason - Oracle! I looked briefly at Parrot VM. I've never felt too comfortable with Dynamic languages, but if they are really the way to go, I'll battle that early learning curve. Tried Ruby on Rails for a while, and it was okay, though I missed my Eclipse debugger, code completion, etc., so didn't last long. Trying out Groovy...but I want to distance myself from any litigation and really want to support freedom. I'd prefer not to program in C or C++, don't want to do memory management. So, in conclusion, what is a good next step for an old Java hand? What languages have seasoned Java professionals moved onto? Do I need to worry about things like Scala that are designed to run on the JVM? What does this lawsuit about Dalvik mean?
I would look at Python. It's a nice hybrid of functional and object-oriented programming, has a wealth of wonderful libraries, and is supported by Google.
That's the advice that I'm taking. I'm learning it now.
Mobile apps (for any phone that actually sells apps) are either Java or Objective C. So if you jump ship away from Java to building apps in Objective C, you go from the awesomeness that is Oracle, to the awesomeness that is Apple.
Well, this may sound obvious, but why not c# + .NET/Mono? Windows Phone 7 will be released soon, and the beta version of dev tools is already available, so you can start coding right now ( they are absolutely free, however, as far as i know, the distribution model for the applications will be similar to Aplle, so you will have to pay to register in a MarketPlaceMonoDroid (an implementation of mono) will soon be available for Android devices.
What does this lawsuit about Dalvik mean?
Have you read this blogpost?
If you still want to program for Android you need to use a language that runs on the JVM/Dalvik, e.g. Scala or Groovy.
For web apps Python with Django is very nice. Python in general is a nice language, though if you don't like dynamic languages maybe not for you. But I would still recommend trying out one dynamic language, if for nothing else than broadening your horizon.
All the languages mentioned here are open source.