views:

287

answers:

4

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?

A: 

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.

duffymo
+4  A: 

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.

bwawok
+1 for Apple awesomeness.
Brock Woolf
-1 Apple's developer subscription model is horrid.
NullUserException
I rushed out to buy an iPhone 3G, and now want to kill Apple for all the failed hopes I had of multi-threading, etc. You struggle to even have the same functionality of a USB Thumb Drive with an iPhone for christs sake! For mobile, I'll be okay with HTML5, and pray they get accessing the webcam and mic implemented well in some browsers that hopefully an Android variant will play with nicely.
Satori Singularity
+1 to counteract NullUserException's failure to detect the irony.
JeremyP
@Satori Singularity: Explain why you think multithreading is missing from the iPhone - it's not. Explain why you bought a telephone if you really wanted a USB thumb drive.
JeremyP
USB - I'd have hoped that my iPhone would have been a superset of the functionality of a USB drive...that is I could plug it into my usb port and a new drive folder would open. I could drag and drop items into it and take it to other computers. (RIAA make the iPhone less than a USB for a very normal use case!)
Satori Singularity
@Satori, then it is time you rush out and buy an Android instead.
Thorbjørn Ravn Andersen
@Satori, iPods behave like that. You need one of those then
Thorbjørn Ravn Andersen
Multi Threading - You cannot write an application for iPhone that checks (say) a web service every 5 minutes to see if you have a new message. You can't write a program that listens on a socket for an update from your website. All of the cool things that you could have done with a general purpose computer that is small enough for your pocket and includes GPS are mind blowing. But you can't do any of this because the Network Operators (telcos) wouldn't let Steve J. do it. And please don't tell me this is a battery life problem in this day and age.
Satori Singularity
on iPhone sure...but they are all Apple only! I want a platform as a developer that I can actually take advantage of. It's infuriating all the BS Apple saddles developers with.
Satori Singularity
And you also get to experience the awesomeness of Apple's control freak choke-hold. Not to mention the horrible Objective-C language.
Jesper
A: 

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?

n535
I'm looking for something that is in the FREE as in Speech category, not something that just does what I want it to. So I think C# and .NET/Mono, are kind of out? Apple, Oracle, MicroSoft, not wanting to be a fan boy of these guys anymore. Sure MS had the best dev tools first, Eclipse got them later, and I love my dev tools for sure...but I can't stand these closed places anymore. I rushed out and bought an iPhone 3G...only to get tremendously pissed at it's totally closed nature... Now Oracle is trying to crash Android which is so much more free than iOS...just looking for the right home.
Satori Singularity
It depends on what exactly do you mean by 'free'. CLI is an ISO standard. You can take it and implement the whole infrastructure by yourself ( like the guys from Mono team did ). There are free versions of the dev tools. The blog post by Miguel shed's some light on the subject.
n535
Mono is licensed under GPL and LGPL. Why do you think it is not free?
JeremyP
After reading that post, I'm not convinced Mono is the way to go, seems like it could be subjected to the same hell that Android might get relegated to at this point. At this point I don't really want to go from Oracle hovering over my shoulder to MS hovering over it. The comment from 'monoman' - "Bottom line, i guess, is every new-java-knockoff or mono user, at the end of the day, is equally as phucked. " and the rest of his post didn't leave me that inspired about mono. His post is on Miguel's blog referred to in this thread.
Satori Singularity
Well, i'm afraid that every major technology those days is covered by patents and it' development is severely influenced by some major corporation.
n535
+1  A: 

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.

Fabian