For some reason Java doesn't have a very good reputation. Java EE is a total hash. Don't even go near it. Java SE is kind of mixed. Yes, it works in the sense that you can write GUI apps that run on Linux, Windows, and Mac. But. It will look ugly on all platforms. It will be slow on all platforms. It will make your processor overheat.

On the other hand, all the cool kids use it. No, wait, they're using Ruby now. Well, anyway, the schools are teaching in Java. It kind of mostly does most of the things you need for decent OO. There's TONS of open source code out there to do everything you want. Apache turns out boatloads of the stuff. There's libraries to do everything. The syntax is easy to use, blah blah blah. But still. Slow & ugly.

The thing is, that Java was originally written to run on embedded devices, way back when it was called Oak or Elm or some kind of tree anyway. That's why it has all this crazy security sandbox stuff built in. And today, the one place where Java really, really shines is in embedded devices - specifically on mobile phones.

Java ME is great. It does just what it needs to do. Sure you're inside a sandbox and you can't steal the user's private information and send it back to your server. But that's a GOOD thing. I don't want you to write your app to record every single one of my conversations without my knowledge. A mobile phone is a very personal place. Have you ever noticed that people will loan their computers but not their phones? It's a personal device.

Anyway, Java ME has just the right feature set. Unlike SE and EE there aren't a gazillion different APIs, there's a small set and if you really need some function they don't provide, maybe you shouldn't be doing that anyway. Or you can snag it from open source. I love the way that they restrict your choices in so many ways. Want to load a URL into a specific application on the phone? You can't. All you get is platformRequest() and the phone decides what to do with it. I like that, especially since the phones are getting a lot smarter about what they can handle.

I don't know, to me, Java ME has just the right amount of stuff in it. Not too big, not too small. Just right.

NB, I'm going to experiment with allowing comments. Believe it or not, I've been blogging for SEVEN years and I've never allowed comments before.

Tags: (none)
Hierarchy: previous, next

Comments

There are 4 comments on this post. Post yours →

testman
Well... JavaME only miss an opensource AGUI implementation ;-)
Simon
Oh no! I hadn't seen that! It's terrible!!!

I don't know how much you have developed with J2ME, but it's WAY less of a standard than it seems: You end up compiling many versions for different phones with different resolutions, api's, or strange quirks.
And while I agree the sandbox isn't bad, it is way to restrictive: Why can't I always allow a program I trust to use the net, my camera, etc? Why ask me every ***** time? (unless you have a signed app, which is a whole new can of worms in terms of time and money).

Simon

It's pretty standard considering how fruity all the different phones are, how many gazillions of mobile OSs and java VMs there are. The security model is annoying as a developer but makes me feel much safer as a user.

Post a comment

Required fields in bold.

 

This is the official Semacode Weblog!

Browse the weblog archives

Subscribe to the full-text RSS feed or the comments RSS feed.

Tags: