Five Years On, Has J2ME's Time Finally Arrived?
jg21 writes "Although he admits to having been frustrated by the slow adoption of the J2ME platform, software developer Eric Giguere believes that we're 'turning the corner.' He remembers Sun demonstrating Java running on Palm OS 'way back in 1999 when so many hoped the wireless Java revolution was just around the corner. Five years on, with notable successes such as the J2ME-enabled BlackBerry wireless handheld, that has already made a billionaire of RIM founder Mike Lazaridis, Giguere claims that, with most of the new handsets being produced supporting either JTWI or else its key component - version 2 of the Mobile Information Device Profile (MIDP) - developers finally now have a more consistent and capable platform to use for application development. Anyone wandering round this week's CES may be inclined to agree."
I think the real question is, "people still use Java?"
Well, Java is just not a particularly good language. No amount of add-ons and libraries is going to change that. However, there is hope. The language is slowly picking up flexibility, which will get rid of one major reason to avoid Java.
Please correct me if I got my facts wrong.
I still don't really see the point of J2ME. Every Java app that I have seen run on a phone or PDA has been dog slow or at least sluggish. Isn't J2ME specifically intended for these devices? If so, then why does it suck so much? If not, isn't J2ME a solution in search of a problem?
Please correct me if I got my facts wrong.
Why don't you tell us what you think is a good language and/or what makes Java so bad. Compare and contrast them if you want people to get any value out of your statement.
The defect of Java I feel most is its lack of flexibility. There's one paradigm and that's what you have to use. There are no macros, and the recently introduced generics are but a poor substitute.
On top of that, Java is very verbose. Type declarations, wrapping everything in classes, casts, mandatory exception handlers, etc. all stand in the way of rapid development.
The vanilla runtime environment is a huge download, and the development environment is even worse. The VM takes up a lot of memory, and the startup time basically rules out efficient little programs (think Unix commands). AFAIK, neither the runtime nor the development environment come with a run-time debugger. There's no such thing as incremental compilation or a read-eval-print loop.
Some things exist in Java, but are a pain to use. For example, anonymous methods (useful, for example, for mapping over a sequence), need to be wrapped in classes. Iterators exist, but are clumsy. Containers like List and Vector store Objects, which is practically never what you really want.
You asked what languages I do like? Lisp and Ruby, mostly. If you compare them to Java, you will indeed find that they are a lot ligther, but also more elegant and flexible. They may not have a library for every Java library out there, but I'm pretty sure these could be implemented if needed; what's more, I'm willing to bet the implementations would be smaller.
Please correct me if I got my facts wrong.
So basically, you dislike Java because it is not Lisp? :)
:)
Remember, Java is an excellent language to use on your project, because it allows a PHB to hire hundreds of cheap, poor programmers, as a commodity. Java's structure reduces the difference between how different people/teams write code, so that new developers can be integrated into a development team faster, spending less time learning the ropes of a particular project.
Java is a good tool to allow poor programmers to write reasonable code.