PDA

View Full Version : Java for Maemo 5


Architengi
2009-09-15, 00:36
There are a lot of applications written in Java. Android developers develop in Java. Big gaming companies develop many games in Java. Java has ported its VM for ARM processors.
If Java embedded runs on N800, is it running on N900?
When will be a full port of Java available on N900? Or there is one available now?

>> Jaffa wrote:
"Full Java" on N900 seems to be somewhat pulled out of the air. Jalimo isn't there yet, and "full Java" nowadays is including things like JavaFX.

>>> Bundyo wrote

http://java.sun.com/javase/downloads/embedded.jsp

This Java headless one works like a charm on my N800, of course takes 100% CPU most of the time, but works nevertheless and is full :)
Probably JavaFX doesn't work but runs web start apps.

EABI, glibc 2.5, Hard Float (VFP), Little Endian

Architengi
2009-09-15, 00:43
Java SE at a Glance

Java Platform, Standard Edition (Java SE) lets you develop and deploy Java applications on desktops and servers, as well as today's demanding Embedded and Real-Time environments.

http://java.sun.com/javase/

Sun offers Java SE for Embedded products in both binary and source offerings under an innovative licensing model. Development is free, but royalties are required upon deployment on other than general purpose systems (for details see license). Platforms available for embedded use include not only standard Java SE platforms but also platforms that are exclusive for the embedded market. In all cases, the products offered are fully Java SE compliant -- which enables you to reuse any Java code from other platforms or products without having to go through porting, recoding and test cycles.

Embedded Use home page


--------------------------------------------------------------------------------

Custom embedded platforms - for embedded devices having approximately 32MB or more for Java.

Java SE for Embedded 6
ARMv6 Linux - Headless (Early Access)
EABI, glibc 2.5, Soft Float, Little Endian
EABI, glibc 2.5, Hard Float (VFP), Little Endian
ARMv6 Linux - Headful (Early Access)
EABI, glibc 2.5, Hard Float (VFP), Little Endian

-----------------------

Java Development Kit 7 (JDK 7) is the next major release of the Java SE platform.
http://java.sun.com/features/jdk/7/
Through the OpenJDK project, JDK 7 has been a highly collaborative effort between Sun and volunteers from the Java developer community. Sun extends its gratitude to all who have contributed to this release.
Download the JDK 7 Early Access:
http://java.sun.com/javase/downloads/ea.jsp

Key Features
JDK 7 introduces several key features to improve performance, usability, and security of the Java platform. A detailed list of these features appears on the OpenJDK site.

Based on the feedback from the developer community and Sun's customers, the JDK 7 features primarily focus on the following areas.

Modularization A large-scale effort to refactor, or break up, the Java SE platform into smaller, separate, interdependent modules. Individual modules can then be downloaded as required by the Java virtual machine and/or Java applications. This effectively shrinks the size of the runtime on the user's machine.

One benefit of modularization is that the platform is a smaller download, potentially improving start-up performance. Having a smaller memory footprint also enables significant performance improvements, especially for desktop applications. A smaller platform also means it can now fit on devices with less memory.

You can find more information about modularization on the OpenJDK site, on Mark Reinhold's blog , or on the Project Jigsaw site.

Multi-Language Support Improves compatibility between Java and various dynamic languages, such as Ruby and Python, by providing better-than-native implementations of these languages on top of the Java Runtime Environment (JRE).

Refer to JSR 292a>, also called “InvokeDynamic”. This JSR defines the elements critical for Ruby, Python, and other dynamic languages to be addressed for JDK 7.

You can find more information on the Da Vinci Machine project page
http://openjdk.java.net/projects/mlvm/
or on the Sun wiki site.
http://wikis.sun.com/display/mlvm/Home

Developer Productivity - JDK 7 will also include several features to enhance developer productivity. One of Sun's goals is to make JDK 7, and other versions of the JDK, as developer-friendly as possible. Here are some features in JDK 7 to do just that:
Project Coin: Small language changes
Concurrency and Collections Updates
JSR 308: Type Annotations to improve static program checking
JSR 203: New I/O to define a true filesystem API

Performance Sun understands the need to improve the performance of the Java SE platform, and several features in JDK 7 address just that. Here are two such features slated for JDK 7:
Compressed 64-bit object pointers G1 Garbage Collector
The new Garbage First (G1) Garbage Collector is a low pause, server-style garbage collector that will eventually replace the Concurrent Mark-Sweep (CMS) garbage collector. G1's primary advantage over CMS are incremental compaction, better predictability, and ease of use. You can find more information on the OpenJDK site
http://openjdk.java.net/projects/jdk7/features/
or on Alex Miller's blog.
http://tech.puredanger.com/2008/05/09/javaone-g1-garbage-collector

solideogloria
2009-09-16, 20:13
Can anyone confirm Java applications working on the N900?

shadowjk
2009-09-17, 01:12
What are you asking here?

when you buy an n900 and take it out of the box and switch it on, java apps wont work, and there's no app available in maemo select or extras to make them work. That clear enough? No userfriendly way.

ovjo12
2009-10-15, 17:20
I know there no official support for Java, JavaME/CLDC/MIDP or JavaME/CDC today. This is a mistake from Nokia I believe, every Java developer I talk to say they will move to Android. Perhaps the community could add it? Anyone know anything about it?

allnameswereout
2009-10-15, 17:36
http://java.sun.com/javase/downloads/embedded.jsp
http://community.java.net/mobile-and-embedded
http://www.microemu.org

Well I haven't tried them yet, but once I have N900 I will. The above links are all you need for now.

fms
2009-10-15, 17:40
go to www.java.net and download, then 'other OS' and then pick 'embedded' then you see Linux/ARMv6 and Linux/ARMv7 Java binaries of IIRC Java 5.0. Some are for headless, some for GUI. Then you have to sign up. In theory these work.
Ahhahahahahahahahha 8)
Eeehhehehehehehehehehehe ;)
Ohhohohohohohohoho :)

thecursedfly
2009-10-15, 17:42
actually who would be supporting JRE (java runtime environment) on N900 if it was there? Nokia? Sun? is it freeware? open source?

I would love to see it on the N900 too. Not a deal breaker for me, but well, I would be able to access my webmail with it at least. :)

@allnameswereout: you mean here? http://java.sun.com/javase/downloads/embedded.jsp

jaark
2009-10-16, 10:00
I've just been reading about the intent to create JavaME environment for netbooks, this gives me hope for Java and Java ME on the n900 :-
http://www.theregister.co.uk/2009/10/15/java_for_netbooks/

allnameswereout
2009-10-16, 10:07
OpenJDK 6 is also ported to ARMEL. (http://packages.debian.org/lenny/armel/openjdk-6-jre/filelist)

nadavwr
2009-10-16, 11:36
Both OpenJDK and Sun's embedded JRE work well on N810. I've only tried OpenJDK in chroot, but Sun's embedded JRE works fine on Maemo.
They both include Swing and for the most part software just works.
Performance on N810 is unimpressive (though reasonable so long as the program isn't too memory hungry), but I'm sure on the N900 Java will do just fine.

thecursedfly
2009-10-16, 11:46
then why is there the "no java" complaining around? and I was told I couldn't surf to my webmail either? (gmx.com has a total java webpage afaik)
and java games applications should work too then?
is the only problem you have to install java yourself?

Rushmore
2009-10-16, 11:49
Wouldn't java layered on Maeomo be inefficient? It sucks on Android and that is the truth. Nice for some level of portability, but sucky in regards to resource efficiency.

Ironically, the very thing that makes Android so "easy" to program for is what is holding it back. lame ***** java.

Cool on a laptop or computer though.

jaark
2009-10-16, 11:57
Java is always 'layered' ontop of whatever platform you are running, and will always be slower than the base system.

That is the trade-off for 'compile once, run almost anywhere' for many applications the trade-off pays off, for others it doesn't.

Jaffa
2009-10-16, 12:30
In addition to the above links there's also Jalimo.

Unfortunately, unless it's possible to right first-class apps with these JREs, they're destined to be niche things rather than mainstream app platforms. Personally, I think it's a shame.

I asked Peter about it at Nokia World; the answer is simple: "Other platforms" [Android, webOS and iPhone] have one development platform. Nokia have two which are strategic - Web Runtime and Qt. That's already more complicated than the other platforms both in terms of introducing developers to the platform and maintenance/support.

quipper8
2009-10-16, 12:33
F*** Java

I know it won't die, but at least we can stab it

SubCore
2009-10-16, 12:35
then why is there the "no java" complaining around?

the thing is, these Java SE Embedded packages for Linux are not "official" yet. they're evaluation versions valid for only 30 days.

also, sun currently does not permit redistribution of these packages.

thecursedfly
2009-10-16, 12:39
the thing is, these Java SE Embedded packages for Linux are not "official" yet. they're evaluation versions valid for only 30 days.

also, sun currently does not permit redistribution of these packages.

and what happens after 30 days? it stops working? if so, it equal to me that it doesn't exist.. and it means it's not GPL (I tought java was?).. :/

SubCore
2009-10-16, 12:43
i don't know what happens after this evalutation period, i don't have a NIT on which to test it on.

and yea, it's not GPL. these are binary packages and have a special licensing scheme (link to it is on the download site for embedded packages).

edit:
i just realized that these packages are evaluation NOT because they're beta versions or under developement, these are evaluation because sun wants to MAKE $$$ FAST on embedded devices :)

see here (http://java.sun.com/javase/embedded/index.jsp#faq10)
Q10 and Q11 are relevant.

Bratag
2009-10-16, 13:11
i don't know what happens after this evalutation period, i don't have a NIT on which to test it on.

and yea, it's not GPL. these are binary packages and have a special licensing scheme (link to it is on the download site for embedded packages).

edit:
i just realized that these packages are evaluation NOT because they're beta versions or under developement, these are evaluation because sun wants to MAKE $$$ FAST on embedded devices :)

see here (http://java.sun.com/javase/embedded/index.jsp#faq10)
Q10 and Q11 are relevant.

It also states its free for development use. So develop with it. The two follow up Q's I took to mean deployment WITH a device - IE the n900 shipping with it.

SubCore
2009-10-16, 13:18
i'm quite sure that "Deployment" also includes deploying the embedded runtime after shipping.
nokia has to pay these royalities or we will forever have to cope with the evaluation...

admiral0
2009-10-16, 13:53
This could be an alternative:

https://wiki.evolvis.org/jalimo/index.php/Main_Page

I use it sometimes on the freerunner.

fms
2009-10-16, 14:02
All these alternatives etc are pretty useless until you get to install a single package from Extras, click on any .jar or .jad file from the File Manager and get the MIDP program running instantly.

All the above stuff, either from Sun or from Jalimo, is just some cruft for Java geeks. Has been this way for months.

hypest
2009-10-16, 14:04
I would use Java on the N900 at least for one reason:

Opera Mini

I think nothing beats Mini's efficiency. For the few things Mini does, it does it remarkably well...

TA-t3
2009-10-16, 14:19
Java by itself is possibly just 'nice to have', but Java applets is a 'must have'. In my country all the banks (and I mean _all_) are changing to a system where not only net banking, but also credit card validation is done through a java applet. Without it, these things can't be done with the tablets (or the N900). Which is a major bummer, in particular when travelling.

Bratag
2009-10-16, 14:23
Java by itself is possibly just 'nice to have', but Java applets is a 'must have'. In my country all the banks (and I mean _all_) are changing to a system where not only net banking, but also credit card validation is done through a java applet. Without it, these things can't be done with the tablets (or the N900). Which is a major bummer, in particular when travelling.

Ewwww really?

Good God thats awful. I thought they had taken Java applets out the back and shot them by now.

Hogwash
2009-10-16, 14:24
Perhaps it would be OK to port the Java ME specification.....that shouldn't suck too much horsepower.

But a full-blown SE JVM.....F that into a cocked hat.

jaark
2009-10-16, 14:27
i just realized that these packages are evaluation NOT because they're beta versions or under developement, these are evaluation because sun wants to MAKE $$$ FAST on embedded devices :)

see here (http://java.sun.com/javase/embedded/index.jsp#faq10)
Q10 and Q11 are relevant.

Hmm, other questions imply that the embedded version is designed for embedded, limited/single purpose devices - which isn't what the n900 is about. The page also implies that ARM versions of normal Java SE exist, but I can't find a download - not that I've looked very hard.

admiral0
2009-10-16, 14:31
Try this:

https://wiki.evolvis.org/jalimo/index.php/Maemo#Install_packages

You're only a click away from a JVM.

I really don't like Java. I prefer true C, C++ apps as they are faster. But open source is made of choices, so why shouldn't there be java for maemo?

SubCore
2009-10-16, 14:35
Hmm, other questions imply that the embedded version is designed for embedded, limited/single purpose devices - which isn't what the n900 is about. The page also implies that ARM versions of normal Java SE exist, but I can't find a download - not that I've looked very hard.

These (http://java.sun.com/javase/downloads/embedded.jsp) downloads are in fact the ARM versions of JavaSE.

I believe Sun didn't quite anticipate that powerful devices like the n900 would so soon be able to host a full Java SE. You're right, these downloads are aimed at other, more specialized embedded devices (TV-set top boxes f.ex.), so you as a manufacturer can evaluate the possibilities.

Note that there are no similar evaluation downloads for Java ME!


edit: Hogwash is right though, the SE JVM probably won't perform too well. it's just that these downloads are currently the only way to get sun java on this tablet.
Porting Java ME is a huge licensing issue. If Nokia didn't "buy" it for the N900 already, chances are they are never gonna do so.

jaark
2009-10-16, 15:00
These (http://java.sun.com/javase/downloads/embedded.jsp) downloads are in fact the ARM versions of JavaSE.

They are Java SE Embedded - a slight, but important in licensing terms, difference.

I retract my previous post, after re-reading the FAQ it doesn't imply that a Java SE for ARM exists.

Hogwash
2009-10-16, 15:08
Plus, you simply don't just compile a JVM for a hardware platform (outside embedded systems)....you also compile for OS. You need an ARM/Maemo JVM.

allnameswereout
2009-10-16, 15:38
i'm quite sure that "Deployment" also includes deploying the embedded runtime after shipping.
nokia has to pay these royalities or we will forever have to cope with the evaluation...Unless you get commercial gain I'd say we are rather beta testers.

If you get them from unofficial source here are the sha256 checksums

$ sha256sum ejre-1_6_0_10-ea-b39-linux-armv*
0d3df7ea125a1fb9dbf74cbe2412bcff67362604ed8736d976 9c2335e74528c6 ejre-1_6_0_10-ea-b39-linux-armv5-sflt-eabi-headless-eval-31_jul_2009.tar.gz
ddc017b48ea6a45599e25ea8b3a5af50ccbe60c64865e20970 88dc1242a11c0c ejre-1_6_0_10-ea-b39-linux-armv5-sflt-eabi-min-eval-31_jul_2009.tar.gz
f369777d24636c8805840fb8771dc7390d69a808d29d50104a b96c5e79a18d93 ejre-1_6_0_10-ea-b39-linux-armv6-sflt-eabi-headless-eval-30_jul_2009.tar.gz
b9e78e0c5d204d6ad2e50adfe89f0bfdf6e1bbb64492f53326 caf9df51ae4014 ejre-1_6_0_10-ea-b39-linux-armv6-vfp-eabi-headless-eval-30_jul_2009.tar.gz
5c707c8e38d1ceae039ad3910e5dc7663d28ec582a92bc8a3b 4f5915b096e5da ejre-1_6_0_10-ea-b39-linux-armv6-vfp-eabi-min-eval-30_jul_2009.tar.gz

As you can see the latest snapshot is from 20090730. And, there is no ARMv7 build.

There is no SUN Java SE 6 for Linux/ARM, but there is OpenJRE 6 for ARM(EL)

Hogwash
2009-10-16, 15:42
... but there is OpenJRE 6 for ARM(EL)

That won't help you on Maemo5....I presume this JVM runs naked on the processor.

SubCore
2009-10-16, 16:20
As you can see the latest snapshot is from 20090730. And, there is no ARMv7 build.

Ouch, you're right.
I forgot that Cortex is a v7 family processor :(

@hogwash
openjre/jdk (http://openjdk.java.net/) is just another JVM. no nudity :)

Hogwash
2009-10-16, 16:26
@hogwash
openjre/jdk (http://openjdk.java.net/) is just another JVM. no nudity :)

I understand this. My point was that it is no use for the stated desire of running java apps on Maemo5. If you want to build a new java OS on an ARM platform, you may be in luck, but this JVM (if I understand it) has no knowledge of Maemo interfaces/hildon/gtk/qt etc, so would be pretty useless.

SubCore
2009-10-16, 16:33
why would the JVM need to know about hildon, gtk, qt? it's not about making java-applets run with the same interface as native maemo software, applets just use swing as they do in any other jvm on any other platform.

allnameswereout
2009-10-16, 16:35
I would use Java on the N900 at least for one reason:

Opera Mini

I think nothing beats Mini's efficiency. For the few things Mini does, it does it remarkably well...Opera Mini requires Java ME; not Java SE. When we refer to Java we usually refer to Java SE.

Opera Mini is optimized for specific devices (screen size, input methods, etc). I'm not entirely sure how this optimization works, but you cannot simply grab Opera Mini and run that on any device you get Java ME working on and get an optimized experience.

Have to admit I'm impressed with Opera Mini 5.0 beta btw.

I think SUN is aware of Nokia N900 because I see various blog posts by employers about that. JavaFX requires either Java ME or Java SE. An early access built of 1.2 is available for Windows Mobile only though.

phoneME Feature software is an open source development effort addressing the market and technical requirements of “feature phone” devices. The majority (about 80%) of mobile phones in the world today are feature phones. Devices of this type typically include a high-resolution screen, multiple forms of messaging (SMS, MMS, IM, Email), basic 2D and 3D gaming, a camera, music player, Internet browser, etc.phoneME was ported previously to 770 and N800 (Bora).

Project homepage: https://phoneme.dev.java.net
Linux/ARM port: https://phoneme.dev.java.net/downloads_previous.html
Nokia 770/N800 port: http://wiki.java.net/bin/view/Mobileandembedded/PhoneMEAdvanced

That won't help you on Maemo5....I presume this JVM runs naked on the processor.What do you mean? That is always the case.

The JVM is static or dynamic compiled and utilizes the processor. Whether it runs on a Linux kernel and you have only Java SE programs running on the JVM (like with Jalimbo) or whether you run a full Linux server headless with Apache/Tomcat does not matter. The JVM runs on an OS with a kernel, and the Java applications run in the JVM.

The good news is that OpenJRE (OpenJDK 6 JRE) is almost completely compatible with SUN's Java SE 6. There are only a few proprietary parts of SUN Java SE 5 & 6. Effort is put in replacing these with open source variants.

All one has to do is recompile this and its dependancies in sbox. Which will take quite some time, and the built will not be optimized for Maemo 5 or ARMv7 (but Linux/ARMv5 and Linux/ARMv6 should work!). Once packed this binary may be distributed via extras-devel.

We could also use Jalimbo, its already ported to previous Java versions.

We'd also need a plugin for MicroB to be able to embed Java. These work with e.g. OpenJRE too.

In short, there are tons of methods to get a Java ME compatible VM or Java SE compatible VM working on Linux/ARM. Each requires effort though. Before I start effort on porting I rather first try SUN's proprietary packages to check performance and see if MicroEmu can be run from that.

allnameswereout
2009-10-16, 16:45
I understand this. My point was that it is no use for the stated desire of running java apps on Maemo5. If you want to build a new java OS on an ARM platform, you may be in luck, but this JVM (if I understand it) has no knowledge of Maemo interfaces/hildon/gtk/qt etc, so would be pretty useless.The Java SE applications I use are either headless or Swing. Yes, doesn't look nice in desktop environment. Whatever. Both Qt (Qt Jambi (http://doc.trolltech.com/qtjambi-4.5.2_01/com/trolltech/qt/qtjambi-deployment.html)) and GTK have bindings for Java, allowing you to give the application 'native feel'.

Hogwash
2009-10-16, 22:29
By "run naked on the processor" I mean that the JVM is the only software that runs on the processor - as is the case with embedded apps.

To actually see anything on your display, a whole truckload of library code needs to be implemented; take the simple case of Swing (which ain't that simple) - for a basic Swing window to visually appear on your N900, there needs to be bindings through to the hildon layer....ie. the JRE needs to be built - not only for the ARM platform - but also for the Maemo environment it will interact with. Not only that, but the limitations of the Maemo5 GUI will have a significant impact on how those bindings are implemented. Coding Java apps for Maemo5 will be a tad more awkward than for good ol' 'Doze or X ;)

allnameswereout
2009-10-17, 00:51
You just end up with 2 toolkits, Swing and GTK (Maemo 5) or Qt (Maemo 6). Not recommended for the faint of heart although for backwards compatibility its either an option or not.

Ability to use Java applets is also sometimes required as example above.

I don't believe Java support on the device is going to be a killer feature though, but doesn't mean those who care should stop caring.

Can one not simply port their Java application to Qt Jambi? Provided one has access to source that is.

FWIW, I've made a stub for Java at Maemo wiki (http://wiki.maemo.org/Java) the old article was unnecessarily technical, out of date, and mostly about Nokia 770.

Hogwash
2009-10-17, 01:13
I'm unfamiliar with "Qt Jambi"....but whatever it is, it ain't gonna work unless the specific JRE you install has been compiled for both your hardware and OS/framework environment.

Think about it...when the particular bytecode is executed in the JVM...how does it know what to call through to to cause the OS and graphical interface system to display a nice window or button? Now consider the limitations of the hildon framework - we don't have outer app windows floating around on a big desktop....the available real estate on the device has constrained the GUI framework, and that constraint must therefore be passed onto the relevant Java APIs.

SubCore
2009-10-17, 02:01
when the particular bytecode is executed in the JVM...how does it know what to call through to to cause the OS and graphical interface system to display a nice window or button?

take a look at the java se embedded site (http://java.sun.com/javase/downloads/embedded.jsp) once again.

you'll notice, these packages are not only compiled for ARMv6, but also linked to glibc2.5.
you'll also notice there are "headful" and "headless" packages. "headful" just means linked to X11R6.

in a headful package, frameworks like swing have their own controls to be used by any application. API calls made by swing are basic drawing calls to X11(as in, pixel here, line there etc.).

for a hildonized button (which swing by itself does neither offer, nor know about or even care), you'll need something like the bindings allnameswereout mentioned (thank you btw, didn't know they existed).

allnameswereout
2009-10-17, 02:06
:confused: lets say we have a hypothetic open source Java application using Swing as toolkit.

We port it to Qt Jambi (Java bindings for Qt), and run this in the JVM.

It will look native Qt, the code remains Java, and runs on X11. Just like when I run Qt application on Mac OS X it uses COCOA but internal code is almost completely same as Linux, Windows version.

So, except for the fact our application isn't hildonized (the horror, frankly I don't give a flying dodo about, as long-term is about Qt anyway, it isn't worth it) why would that not work well?

The Java application _is_ using Qt and it 'Qtized', and the JVM hasn't got anything to do with Qt.

If the Qt 4.6 for Maemo works well, and Qt Jambi is supported, all this will easily work too. Although there is no Qt Jambi for embedded as of now.

The problem is with closed source Java applications, and web applets. Those may seem fugly.

fms
2009-10-17, 05:42
:confused: lets say we have a hypothetic open source Java application using Swing as toolkit.
Drop "hypothetic" and think of how many such applications exist that are actually useful. This should provide you with the answer why Java is not on the device.

PS: We are talking JavaSE here, not JavaME, so Opera and games do not count =)

SubCore
2009-10-17, 12:02
well, here (http://talk.maemo.org/showthread.php?t=31681) is one example.

just because you can't think of useful java apps, doesn't mean they don't exist.

fms
2009-10-17, 12:12
well, here (http://talk.maemo.org/showthread.php?t=31681) is one example.
Ok, and what does this example do? As far as I can tell, this is just some guy trying to run some custom piece of business software.

just because you can't think of useful java apps, doesn't mean they don't exist.
Back to square one: How many useful Java apps do you actually know? Please, exclude JavaME (separate case) and custom corporate middleware (does not qualify as useful for general public).

SubCore
2009-10-17, 12:20
Ok, and what does this example do? As far as I can tell, this is just some guy trying to run some custom piece of business software.

and what exactly makes that less valid ??

i'm not gonna list examples, that would be of no use to you or anyone. fine, you don't need java. other people do, which is exactly my point. here we are talking about ways to deliver it, and you seem to convince us not to do it, which is counterproductive.

fms
2009-10-17, 13:17
i'm not gonna list examples, that would be of no use to you or anyone.
Actually, it would be of good use to me: I would genuinely like to know just what useful general purpose applications have ever been written in Java. I know of just one (Eclipse) that at least some people find useful. Are there any others?

fine, you don't need java. other people do, which is exactly my point. here we are talking about ways to deliver it, and you seem to convince us not to do it, which is counterproductive.
Well, I would like to know how many "other people" really need Java? I mean, not to entertain themselves programming in it, but to run real Java apps?

SubCore
2009-10-17, 14:40
well, i myself would actually need it for "custom corporate middleware" :)

for one, i need it to be able to place orders with my bank on the go. i can't do that now (unless i have my laptop with me, which i usually don't), and it's not a must-have or dealbreaker or anything like that. i don't even know if the bank's applet would be usable on the n900 (icon and screen size), but i sure would like to try :)

another use case for me would be logging in remotely to my corporate desktop. my company offers 3 options: activex (no need to elaborate), a local citrix client (which i haven't actually looked into as a possibility on the n900), and a java applet. again, it's not something that i currently can do or that i'm sure would work, but it would be quite nice to have.

basically, you're right about the reason why java doesn't come with the n900 out-of-the box (and why it didn't on earlier tablets). there are not really many use cases for it on such devices, but they do exist :)
which makes pursuing this goal worthwhile.

fms
2009-10-17, 15:11
well, i myself would actually need it for "custom corporate middleware" :)
I see.

basically, you're right about the reason why java doesn't come with the n900 out-of-the box (and why it didn't on earlier tablets). there are not really many use cases for it on such devices, but they do exist :) which makes pursuing this goal worthwhile.
You should then download Jalimo and start hacking, shouldn't you? :)

SubCore
2009-10-17, 15:25
as soon as i get my n900, i will :)
openjre also sounded very interesting, for that matter.

RevdKathy
2009-10-17, 15:29
Being trying to follow this thread, but I got lost in the various sorts of java. I think the sort you're talking about is the sort that BlackBoard runs on, which is he software used at universities and colleges for distance larning. That's what I'd want it for.

Rushmore
2009-10-17, 15:41
Java is always 'layered' ontop of whatever platform you are running, and will always be slower than the base system.

That is the trade-off for 'compile once, run almost anywhere' for many applications the trade-off pays off, for others it doesn't.


Yep. Non cpu intense apps it would be fine, but for things like emulators or medai apps using codecs it would not.

fms
2009-10-17, 16:29
Being trying to follow this thread, but I got lost in the various sorts of java. I think the sort you're talking about is the sort that BlackBoard runs on, which is he software used at universities and colleges for distance larning. That's what I'd want it for.
Well, there are three sorts of Java the normal consumer should care:

1. Android Java, running on top of its own virtual machine (aka Dalvik). As long as you do not have Android, you can disregard this variety.

2. JavaME also known as MIDP, also known as J2ME, also known as PhoneME is a somewhat lobotomized version of Java supported by most mobile phones. Most mobile games and some mobile apps running on dumb phones are written using this version of Java.

3. JavaSE is the desktop Java. If you ever run a Java application on your PC or Mac, or a Java applet in your browser, it is most likely written in JavaSE. The number of widely used Java applications is near nil though, mostly due to problems with performance, compatibility, and maintenance, so you are unlikely to ever use this one.

Of these three, only #2 (JavaME) is of practical interest to a big number of users, because everybody is used to MIDP games on their phones. Unfortunately, there is still no standalone JavaME package for the tablets, that would instantly allow users to play .jar and .jad files with MIDP games.

RevdKathy
2009-10-17, 16:52
Ahh right. Android java I have no experience of.

J2ME is a term I recognise. That's what my shopping list runs on, in my current devices. (And jtwitter, which I can't wait to put behind me) Yes, it would be nifty if n900 could carry that.

JavaSE would indeed be what Blackboard runs. It has a forum system - I never worked out why it needed to be java. I can't reply to anything from an NHS computer because the java on those is out of date (they run XP with IE6 :p and regular staff don't have admin access to update.) I was under the impression that n900 could handly that sort of java? Did I not see it running a chat applet in one of the videos? (Or did I dream that bit?)

SubCore
2009-10-17, 16:57
The number of widely used Java applications is near nil though

don't underestimate just how much of the aforementioned corporate middleware there is :)
the second example of mine, citrix access gateway, is fairly widespread.

probably a question of the definition of "widely" ;)

pupu
2009-10-17, 17:11
Java applications are used a lot on the web. The smaller things like tic-tac-toe kind of games are irrelevant, but for example, Runescape is done in Java, and so are chat applications on some sites. IMHO, a device can't really claim to offer the full web experience without Java.

Consumer desktop applications tend not to use Java, but as others have said, many of us do use Java applications in a work setting. From my personal user's perspective, I really haven't witnessed poor performance. For example the RealVNC Java application has worked just fine for me. There's a longer wait when you start a Java application for the first time during your OS session, but even that disappears on subsequent use.

bcaroll
2009-10-17, 17:14
The iPhone is the phone everybody wants to beat, so what must Nokia do to make Maemo better. I have some ideas and one of them is Java.

Every iPhone developer a have talked to complains about the awful IDE that Apple provides Xcode. That feel like going back to how Java IDEs looked 10 years ago. They also complains about having to work in C and specifically memory management. If development is done is Java everybody can use their favourite IDE (Eclipse, NetBeans, IntelliJ, etc) and on device debugging can be used easily.

JavaME is a must so that it can be used until the native Maemo apps are created. I won't buy a phone that don't have JavaME.

There should also be JavaSE on the device and QT bindings for the developers that want leverage all the native power. With JNI most of an app could be written in Java with callout to the native platform for performance or hooks into native functions.

JavaFX would be nice but I don't think that it would make difference on the sales of the devices.

Bratag
2009-10-17, 22:15
The iPhone is the phone everybody wants to beat, so what must Nokia do to make Maemo better. I have some ideas and one of them is Java.

Every iPhone developer a have talked to complains about the awful IDE that Apple provides Xcode. That feel like going back to how Java IDEs looked 10 years ago. They also complains about having to work in C and specifically memory management. If development is done is Java everybody can use their favourite IDE (Eclipse, NetBeans, IntelliJ, etc) and on device debugging can be used easily.

JavaME is a must so that it can be used until the native Maemo apps are created. I won't buy a phone that don't have JavaME.

There should also be JavaSE on the device and QT bindings for the developers that want leverage all the native power. With JNI most of an app could be written in Java with callout to the native platform for performance or hooks into native functions.

JavaFX would be nice but I don't think that it would make difference on the sales of the devices.

So you want speed and java. Yeah thats not going to happen. As an android coder who also codes in C I can tell you there is no comparisson in performance. The reason java coders hate to code in C is because it forces you to think about memory allocation and freeing and that goes against the " throw everything into memory and let garbage collection sort it out " mentality that most Java coders have.

Trust me the surest way to take something fast and hobble it is chuck Java into the mix. Here is an example.

I have a pixel by pixel filter I compiled on my G1 in C and also the same filter in Java. The C version runs in 2 seconds on a selected image, the Java version takes 20 and on top of that half the time it craps out because the jvm runs out of memory.

Take from that what you will I guess

fms
2009-10-17, 22:23
The C version runs in 2 seconds on a selected image, the Java version takes 20 and on top of that half the time it craps out because the jvm runs out of memory.
...and this returns us to the importance of correct memory allocation :) Like someone said good five+ years ago, "if Java is the answer, then what the hell was the question?"

javispedro
2009-10-17, 22:28
then what the hell was the question?

Easy: look a few posts above for someone who hates C memory allocation. You get what you ask for ;)

allnameswereout
2009-10-17, 23:22
2. JavaME also known as MIDP, also known as J2ME, also known as PhoneME is a somewhat lobotomized version of Java supported by most mobile phones. Most mobile games and some mobile apps running on dumb phones are written using this version of Java.If SUN wants JavaFX run on Nokia N900 they're gonna need either Java ME or Java SE on Nokia N900. For now, SUN is merely providing an early access version of JavaFX for Windows Mobile though.

Once JavaFX is ported to Linux/x86-32 it shouldn't be too hard to port to Linux/ARM because it already is ported to WM6/ARM. Shouldn't be too hard for SUN if proprietary or official port, for community if open source, or both.

It is nice to have backwards compatibility. I've taken advantage of this before. Sometimes, it is beyond your control because you have no power over it because your employer or business partner decides the software to be used. For example, in past I had to use Java for .nl ccTLD administration. Some custom software we run is proprietary and requires Java, they cannot be rewritten (would cost too much), and it'd be nice if I wouldn't need to use a seperate device than N900 to run these. Some corporations also require usage of Java applet, with their only alternative (if there is one!) being a bad interface. For a long time my bank required Java! I need Java to get remote desktop over HTTP, too.

We all have different needs. I don't need any of the game emulators yet they're popular. LUA was useful on Diablo for me but I doubt it was much used. Regarding Java, we're not necessarily talking about out of the box which is also both related to chicken/egg, as well as legacy from non-opensource Java.

Although you said no Java ME on S60 phone I have Opera Mini 5 as my backup browser. I like to use it when roaming. I've even used Opera Mini 4.2 on S40 phones in an emergency. I don't yet how I'm going to fix this on my N900...

fms
2009-10-18, 05:55
If SUN wants JavaFX run on Nokia N900 they're gonna need either Java ME or Java SE on Nokia N900. For now, SUN is merely providing an early access version of JavaFX for Windows Mobile though.
Who, other then SUN, even needs JavaFX? Are there any useful JavaFX applications? Will there ever be any? As far as I can tell, the world seems to have standardized on Flash for these purposes.

Although you said no Java ME on S60 phone I have Opera Mini 5 as my backup browser. I like to use it when roaming. I've even used Opera Mini 4.2 on S40 phones in an emergency. I don't yet how I'm going to fix this on my N900...
I have not said "no" to JavaME. In fact, I continue insisting that we absolutely need JavaME on Maemo, because there are so many applications written in JavaME on the market.

qgil
2009-10-18, 08:11
I was wondering whether http://maemo.org/community/brainstorm would help consolidating this interesting discussion in one proposal with potential solutions listed.

bcaroll
2009-10-18, 09:36
So you want speed and java. Yeah thats not going to happen. As an android coder who also codes in C I can tell you there is no comparison in performance. The reason java coders hate to code in C is because it forces you to think about memory allocation and freeing and that goes against the " throw everything into memory and let garbage collection sort it out " mentality that most Java coders have.

Trust me the surest way to take something fast and hobble it is chuck Java into the mix. Here is an example.

I have a pixel by pixel filter I compiled on my G1 in C and also the same filter in Java. The C version runs in 2 seconds on a selected image, the Java version takes 20 and on top of that half the time it craps out because the jvm runs out of memory.

Take from that what you will I guess

Unfortunately a lot of people, like you, think that there is a jvm in the Android platform. The vm used in Android is called Dalvik and it is not a jvm. The only thing Java about Android is the syntax and the syntax has little to do with performance. Thus your example has no relevance in the Java discussion.

The most important thing lacking in the Dalvik VM is a JIT. The difference in speed has been measured to 5-10 times faster with the JIT. The actual speed naturally depends on what you do but a better figure to use is that Java runs at about 80% of the speed of native programs.

If you had read all of my post you would have noticed that I see the need for some programs and parts of programs that run on the native platform.

However most applications are not image filtering and why would you want to to manage the memory of simple data lookup and entering app?

I think we have all see all those great C developers that "know" how handle memory of apps the leak memory, forcing us to restart the app regularly. A large number of security holes are due to developer that cannot handle a simple buffer overflow. I guess we have to expect a huge increase in mobile worms in the future.

ovjo12
2009-10-18, 12:43
I was wondering whether http://maemo.org/community/brainstorm would help consolidating this interesting discussion in one proposal with potential solutions listed.

I have not used it before so don't know how it works. But I like the idea to consolidating this interesting discussion in one proposal with potential solutions listed

qgil
2009-10-18, 12:47
I have not used it before so don't know how it works. But I like the idea to consolidating this interesting discussion in one proposal with potential solutions listed

http://static.maemo.org/static/m/maemo_brainstorm_introduction.swf

ovjo12
2009-10-18, 13:13
I think also it would be very interesting to be able to run eRCP applications. It is a solution from a Eclipse project called eRCP. eRCP is installed on top of JavaME/CDC1.1/FP1.1 and using eSWT instead of AGUI or LCDUI(MIDP). This is something I also think Nokia would like to support because they are supporting this technology since many years in the eRCP project. eSWT support is already added in Nokias's S60 Java runtime from S60 v3.2 because eSWT don't need JavaME/CDC support, it runs also on top of JavaME/CLDC/MIDP.

fms
2009-10-18, 13:17
I think also it would be very interesting to be able to run eRCP applications. It is a solution from a Eclipse project called eRCP. eRCP is installed on top of JavaME/CDC1.1/FP1.1 and using eSWT instead of AGUI or LCDUI(MIDP). This is something I also think Nokia would like to support because they are supporting this technology since many years in the eRCP project. eSWT support is already added in Nokias's S60 Java runtime from S60 v3.2 because eSWT don't need JavaME/CDC support, it runs also on top of JavaME/CLDC/MIDP.
Ok. How many applications use eRCP/eSWT at the moment?

SubCore
2009-10-18, 13:22
I have compiled a little list of options for Java ME and Java SE, which i would put on brainstorm. i'd like to get a few comments on it here first, though :)

these are mostly options allnameswereout mentioned. i have no idea about the compatibility of open source implementations with the official one. maybe someone could elaborate on that.

i also put in the possibilities of nokia porting open source implementations of SE and ME, though i'm not sure that's even realistic, since it would mean effort without being able to say "Java compatible". if you think these options are not even worth mentioning i will leave them out.



Proposal 1:
Java ME (http://java.sun.com/javame/)

nokia buys Java ME royalities and lets sun port it
+) official implementation, official support
-) probably quite expensive
-) Closed License

community ports phoneme (https://phoneme.dev.java.net/)
more info (http://www.sun.com/software/opensource/java/faq.jsp)
+) GPL
-) no team as of yet
-) not "official", so no advertising of MIDP capability
-) no info as to how complete this implementation is

nokia ports phoneme
+-) see above

nokia or the community ports a Java SE implementation,
and we use smth. like microemu (http://www.microemu.org/) for ME compatibility
+-) see above
-) might be a bit slower



Proposal 2:
Java SE (http://java.sun.com/javase/embedded/)

nokia buys java SE embedded royalities and lets sun port it
+) official implementation, official support
-) probably quite expensive
-) Closed License

community ports OpenJDK/JRE (http://openjdk.java.net/) 6
more info (http://www.sun.com/software/opensource/java/faq.jsp)
+) GPL
-) no team as of yet
-) not "official", so no advertising
-) no info as to how complete this implementation is

nokia ports OpenJDK/JRE 6
+-) see above

community ports Jalimo (https://wiki.evolvis.org/jalimo/)
+) GPL
-) not much activity lately
-) no advertising, maybe incomplete

fms
2009-10-18, 13:59
I have compiled a little list of options for Java ME and Java SE, which i would put on brainstorm. i'd like to get a few comments on it here first, though :)
Do you by any chance remember that Nokia already ships J2ME VM with both S40 and S60 phones? In other words, Nokia already has a PhoneME implementation.

community ports Jalimo (https://wiki.evolvis.org/jalimo/)
Why should "community" port Jalimo which is already ported to the tablet and has packages available from Diablo Extras?

mikec
2009-10-18, 14:03
Where does Iced Tea fit in with all these options?

SubCore
2009-10-18, 14:16
Do you by any chance remember that Nokia already ships J2ME VM with both S40 and S60 phones? In other words, Nokia already has a PhoneME implementation.

yes, but not for Maemo. and even if porting from S60 to Maemo would be easy, nokia still would have to license it for the new platform/device.

Why should "community" port Jalimo which is already ported to the tablet and has packages available from Diablo Extras?

well, the last news concerning maemo (http://evolvis.org/forum/forum.php?forum_id=102) on the project site is this:

"Simultaneous with the launch of the wiki, we have started to support
maemo4. Currently cacao, classpath and SWT are tested and work fine.
They have the same features and limitations, as for maemo3. But we hope
to improve the support on maemo4, soon. Since maemo moved to gtk2.10 and
cairo, we have some more options on this platform."

to me, that suggests that even more work will be needed to optimize it for maemo5. granted, the build for chinook might run out of the box ( i haven't read anything from people who got a n900 already, links are welcome :) ).
if it does run well, there is no need for this option and i will not add it.

though that quote also suggests that there is not much activity any more (this entry is from 2007), and if many people vote maybe that could change and even attract new devs for the project.

SubCore
2009-10-18, 14:28
Where does Iced Tea fit in with all these options?

very interesting, didn't know about that!

i will add it to the Java SE Proposal:


community or nokia builds Iced Tea (http://icedtea.classpath.org/wiki/Main_Page)
+) true GPL, no binary components
-) no team so far
-) no official advertising

rafanto
2009-10-18, 14:32
the inclusion of Java is essential to offer a complete development platform to all developers not only C, C + +, Python, etc. ..

From this we can think how to integrate Java in Maemo

SubCore
2009-10-18, 14:35
I just found something on the Nokia Forums: link (http://discussion.forum.nokia.com/forum/showpost.php?p=646713&postcount=22).

that seems to be an official statement, is there any point in including the "nokia options" in the brainstorm proposal now, qgil?

ovjo12
2009-10-18, 15:01
I just found something on the Nokia Forums: link (http://discussion.forum.nokia.com/forum/showpost.php?p=646713&postcount=22).

that seems to be an official statement, is there any point in including the "nokia options" in the brainstorm proposal now, qgil?

MIDP 3.0 is in Proposed Final Draft, so there is no JavaME VM with support yet. Read more here: http://jcp.org/aboutJava/communityprocess/pfd/jsr271/index.html

fms
2009-10-18, 15:02
I just found something on the Nokia Forums: link (http://discussion.forum.nokia.com/forum/showpost.php?p=646713&postcount=22). that seems to be an official statement, is there any point in including the "nokia options" in the brainstorm proposal now, qgil?
Is the guy who has made this statement working for Nokia?

javispedro
2009-10-18, 15:41
If you want to use Java to develop for Maemo, then check Jalimo.
If you want to use Java to run J2SE applications or applets, check for Java SE Embedded, IcedTea or "full" GNU Classpath with a GNU VM.
If you want to use Java to run J2ME... well, try to do it first on your PC and then do whatever you did on your PC in your Tablet.

ovjo12
2009-10-18, 15:42
Ok. How many applications use eRCP/eSWT at the moment?

Not many I think, not so many phones support eRCP yet.
No phone from Nokia support eRCP, but eSWT is supported in all Nokia S60 phones from version 3.2.

There is the new Sprint Titan platform with OSGI Technology in the Mobile, it will be released very soon (???), with support first for eRCP (IBM/j9) on windows Mobile devices. I did not found so much about at http://developer.sprint.com/ , but I found this about developer Tools for the Sprint Titan Platform: http://developers.sun.com/mobility/community/sprint-adp/downloads/index.jsp

fms
2009-10-18, 15:56
Not many I think, not so many phones support eRCP yet.
No phone from Nokia support eRCP, but eSWT is supported in all Nokia S60 phones from version 3.2.
Then, personally, I do not see any reason to support these. The only reason to support any kind of Java is to get access to existing library of applications.

SubCore
2009-10-18, 15:57
MIDP 3.0 is in Proposed Final Draft, so there is no JavaME VM with support yet. Read more here: http://jcp.org/aboutJava/communityprocess/pfd/jsr271/index.html

thank you for the link, but that posting is not about a MIDP 3.0 runtime. he just mentions that they would have to make revisions to their implementation once it comes out.

Is the guy who has made this statement working for Nokia?

yes, i think this is a nokia employee. his picture, title and activity suggest that.

allnameswereout
2009-10-18, 18:51
yes, i think this is a nokia employee. his picture, title and activity suggest that.He is (http://www.linkedin.com/pub/hartti-suomela/0/a6a/239), he also has account here on t.m.o btw.

Who, other then SUN, even needs JavaFX? Are there any useful JavaFX applications? Will there ever be any? As far as I can tell, the world seems to have standardized on Flash for these purposes.Yes, I realize that, which is why I wrote its in _SUN's_ interest.

It is, IMO, in our interest because:
1) We'd get Java ME and/or Java SE.
2) We get a more competitor to Adobe Flash and Microsoft Silverlight which is more open.

As Java hater I suppose one would see point #1 as negative.

As of now, more interesting is compatibility layer for Android, or even iPhone OS. I don't mean to run complete Android OS, but to run an application which is unique to Android without replacement/alternative/port on Maemo. Ofcourse, native is better, similar pro/con exist for WINE on Linux/x86-32 desktop.

I have not said "no" to JavaME. In fact, I continue insisting that we absolutely need JavaME on Maemo, because there are so many applications written in JavaME on the market.Excuse me, didn't quote the part I replied to. It was reference to your (reasonable) request not to mention Java ME applications. :)

fms
2009-10-18, 19:36
As of now, more interesting is compatibility layer for Android, or even iPhone OS. I don't mean to run complete Android OS, but to run an application which is unique to Android without replacement/alternative/port on Maemo.
I doubt Nokia will ever do anything about Android compatibility, so it is purely in the hands of community. As to J2ME, there is some hope.

allnameswereout
2009-10-18, 19:48
very interesting, didn't know about that!

i will add it to the Java SE Proposal:


community or nokia builds Iced Tea (http://icedtea.classpath.org/wiki/Main_Page)
+) true GPL, no binary components
-) no team so far
-) no official advertisingHi, I put this and your previous post on wiki so we can edit it easier. I added 2 'TODO' as well. The entry is Task:Brainstorm_Java (http://wiki.maemo.org/Task:Brainstorm_Java). Please feel free to delete it after you made your Brainstorm entry. The formatting is a bit messed up but I cannot fix that right now, hopefully in an hour. Formatting of this entry and Java entry should be OK now. Ciao.

Bratag
2009-10-19, 00:57
Unfortunately a lot of people, like you, think that there is a jvm in the Android platform. The vm used in Android is called Dalvik and it is not a jvm. The only thing Java about Android is the syntax and the syntax has little to do with performance. Thus your example has no relevance in the Java discussion.

The most important thing lacking in the Dalvik VM is a JIT. The difference in speed has been measured to 5-10 times faster with the JIT. The actual speed naturally depends on what you do but a better figure to use is that Java runs at about 80% of the speed of native programs.

If you had read all of my post you would have noticed that I see the need for some programs and parts of programs that run on the native platform.

However most applications are not image filtering and why would you want to to manage the memory of simple data lookup and entering app?

I think we have all see all those great C developers that "know" how handle memory of apps the leak memory, forcing us to restart the app regularly. A large number of security holes are due to developer that cannot handle a simple buffer overflow. I guess we have to expect a huge increase in mobile worms in the future.

I know all about Dalvik and regardless of what you call it its a JVM, and there is no friggin way in the world it runs at 80% of native C.

What YOU apparently are unaware of is that Android has achieved a lot of its speed improvements by cutting huge chunks out of the standard Java API and by customizing the graphics layer instead of using swing. Simply adding Java to the n900 isnt going to give us the same performance.

Lastly - memory management is required in any and all apps. Particularly a data retrieval app where its easy to lost track of how much memory a data object is using.

jaark
2009-10-19, 01:31
Then, personally, I do not see any reason to support these. The only reason to support any kind of Java is to get access to existing library of applications.

I don't usually get like this on forums, but your attitude is beginning to really annoy me.
Fine, you don't use Java or Java apps. Yes, we get that. In that case, the provision of a Java SE or Java ME layer will have zero impact on your usage of the device.
I can't think of any Ruby based apps off of the top of my head, but I welcome the availability (or development) of a ruby environment on the N900 (or any other platform) for the simple fact that it only increases options.

Let's look at the pros and cons of the Java environment being made available :-

Pros :
* Users can run Java (SE/ME) apps - if they want to ... no-one is forcing you to do so.

Cons :
* A few megs of storage space is used - you could spend a few minutes writing a shell script to delete all the Java stuff if you were that bothered,

There. That's it. Unless you have something constructive to say, please either STFU or find another thread, this one (http://talk.maemo.org/showthread.php?t=32158&goto=newpost) could probably use some attention.

@Everyone else - yeah, I've probably just fed an annoying, yet unusually persistent, troll - castigate me if you will.

fms
2009-10-19, 05:10
Fine, you don't use Java or Java apps. Yes, we get that. In that case, the provision of a Java SE or Java ME layer will have zero impact on your usage of the device.
You are missing the point. The point was that people do use JavaME apps but not JavaSE apps. The point also was that it is only worth implementing frameworks that are in wide use.

I can't think of any Ruby based apps off of the top of my head
And that is why Ruby is not available on the tablets out of the box, isn't it?

Cons :
* A few megs of storage space is used - you could spend a few minutes writing a shell script to delete all the Java stuff if you were that bothered,
Well, there is third-party JavaSE for the tablets (Jalimo). You can go to Extras and install it from there right away, and get all the Java goodness, the command line launch interface, the CLASSPATH fiddling, etc.

If you want Java to be present on tablets by default though, this will cost Nokia money and time developing and integrating it. Don't you think it should be counted among cons as well?

BaKSo
2009-10-19, 05:17
JavaSE would indeed be what Blackboard runs. It has a forum system - I never worked out why it needed to be java. I can't reply to anything from an NHS computer because the java on those is out of date (they run XP with IE6 :p and regular staff don't have admin access to update.) I was under the impression that n900 could handly that sort of java? Did I not see it running a chat applet in one of the videos? (Or did I dream that bit?)

okay this one give me a lil worry, i need to open blackboard on my browser as most of university in the world use this blackboard for their online learning tools.. i was thinking that blackboard need javascript not the javaSE...

so is there anyone here can confirm or try blackboard site on their N900? if they have one..

mve
2009-10-19, 05:33
I have a need for full java support in Maemo browser. I would like to use N900 with a java application used by http://www.routegadget.net/ to draw my route in orienteering.

allnameswereout
2009-10-19, 05:37
Well, there is third-party JavaSE for the tablets (Jalimo). You can go to Extras and install it from there right away, and get all the Java goodness, the command line launch interface, the CLASSPATH fiddling, etc.I don't see Jalimo listed here (http://maemo.org/packages/search/?org_maemo_packages_search%5B1%5D%5Bproperty%5D=na me&org_maemo_packages_search%5B1%5D%5Bconstraint%5D=L IKE&org_maemo_packages_search%5B1%5D%5Bvalue%5D=jalimo ) :confused:

fms
2009-10-19, 05:41
I don't see Jalimo listed here (http://maemo.org/packages/search/?org_maemo_packages_search%5B1%5D%5Bproperty%5D=na me&org_maemo_packages_search%5B1%5D%5Bconstraint%5D=L IKE&org_maemo_packages_search%5B1%5D%5Bvalue%5D=jalimo ) :confused:
Check here:

https://wiki.evolvis.org/jalimo/index.php/Maemo

Jalimo is definitely present in Diablo Extras. It is not in any of the Fremantle repos, but that is mainly because nobody cares.

javispedro
2009-10-19, 05:50
I know all about Dalvik and regardless of what you call it its a JVM

I disagree. And Sun disagrees. And the fact is, Dalvik doesn't even run Java bytecode, nor follows the JVM spec.

Also, Dalvik is an interpeter and thus can forget about any kind of performance comaprable to C. Unlike JITs, which can on certain workloads. Of course, that does not mean Dalvik/Java is useless for interactive (read: 99% of wall clock time waiting for user input) stuff.

allnameswereout
2009-10-19, 06:09
Check here:

https://wiki.evolvis.org/jalimo/index.php/Maemo

Jalimo is definitely present in Diablo Extras. It is not in any of the Fremantle repos, but that is mainly because nobody cares.That page mentions Chinook, and I don't see Jalimo here (http://repository.maemo.org/extras/pool/diablo/free/j/) either.

qole
2009-10-19, 06:52
I've been pretty impressed with OpenJDK/IcedTea (http://packages.debian.org/sid/openjdk-6-jre) on the tablets. It is pretty slow, but it is a very complete implementation of Java SE.

I haven't attempted it on the N900, but if it were fast enough, it certainly would be the way to go.

Note that the Debian armel version linked above might be an excellent place to start with a Maemo port.

Capt'n Corrupt
2009-10-19, 07:23
On the topic of garbage collection for a moment:
http://www.hpl.hp.com/personal/Hans_Boehm/gc/

Now you have the speed of C/C++ with the convenience of Java's garbage collection, only requiring simple malloc/realloc replacements.

* of course, there are many other compelling reasons people use Java. I just thought I'd mention out this little-known gem.

}:^)~

fms
2009-10-19, 07:45
That page mentions Chinook, and I don't see Jalimo here (http://repository.maemo.org/extras/pool/diablo/free/j/) either.
You are right, and I have been incorrect. The PackRat shows Jalimo only in their own repo:

http://ageofikon.info/packrat/index.php?Action=list&System=OS2008&Arg=jalimo&Section=&Repo=0

gorkem
2009-10-19, 09:12
Hi,
I am the project lead for the Eclipse eRCP (http://www.eclipse.org/ercp) project that was mentioned earlier in this thread. Also I work for Nokia as part of the team that develops the Java Runtime (http://betalabs.nokia.com/apps/nokia-java-runtime-20-for-s60) for the Nokia Symbian devices.

I usually do not like to respond to these because they tend to get nowhere and become more about personal choices. However I think I have not engaged to maemo community before and I think some of the information I can provide may help.

First about eRCP, eRCP is an OSGi based environment that aims to carry some of the desktop Eclipse RCP pieces to mobile. The crown jewel of these pieces is eSWT UI toolkit. Nokia's S60 based phones ship eSWT (not the full eRCP stack) as part of the device and eSWT can be used from MIDP runtime. eSWT fits rather nicely to our purposes because it is basically a thin wrapper of the platform's UI toolkit. It does not impose its own look and feel like the Java's own Swing. Recently, Nokia contributed an eSWT port on Qt to eRCP project the first early access packages of eRCP including the contributed eSWT is available (http://www.gorkem-ercan.com/2009/09/eclipse-ercp-13-on-linux-qt.html). Although we do not provide a package at this time, this port is known to work for maemo and it is possible to provide a package for maemo as well. eSWT's Qt port may be significant for maemo Java because it provides a future proof solution for Java UIs.

Since porting the S60 Java to maemo was listed earlier as an option some information on that. Actually when we started the work on Java Runtime 2.0 (http://betalabs.nokia.com/apps/nokia-java-runtime-20-for-s60), we have considered that maemo would be another target and decided to implement it cross-platform. Later when maemo showed no interest, some of the cross-platform requirements were dropped. However a significant part of the runtime can work on maemo. at least the Java UIs(eSWT and MIDP UI), installer, application launchers etc. are cross-platform. As for APIs like bluetooth, location, wireless messaging, mutimedia etc. A few of those already have their maemo implementation ready. So porting this S60 Java is a closer goal than most think.

Also Java SE is also mentioned as an option here. I believe full Java SE is too bloated for mobile(includes corba, jdbc etc). Also Android does not ship full Java SE libraries but rather a subset. I also do not think MIDP is good enough for a powerful platform as maemo(or any smartphone). Ideally Java platform should support MIDP but should provide a subset of JavaSE APIs and latest language features to be competitive against Android.

I still have more to say but this is rather long post already. I hope this is somewhat helpful information.

sharper
2009-10-19, 09:54
Thanks for the informative post!

Hi,
A few of those already have their maemo implementation ready. So porting this S60 Java is a closer goal than most think.
What do you think are the chances of this happening? Alternatively what are the chances of the necessary code being made available so a community effort can proceed?

My main concern is getting as much application compatibility as possible into Maemo. I think realistically it's assumed that new smartphones are competent in a number of different areas (phone, maps, photography, web, scheduling etc) with the differentiating factor being applications.

If people with Maemo can have Linux applications, Maemo applications, the new cross platform QT framework applications, Java applications and Android applications then it becomes a very attractive device that essentially commoditises application compatibility and makes it a "standard feature" that you can run applications from anywhere.

What I really want to be able to do is run the Java applications I like (gmail, google maps, opera mini) and my first thought was looking at the open source J2ME project and porting that. If the bulk of the work is already done by Nokia it would be a shame for the community to have to replicate that.

ovjo12
2009-10-19, 11:09
Thanks for the informative post!


What do you think are the chances of this happening? Alternatively what are the chances of the necessary code being made available so a community effort can proceed?

My main concern is getting as much application compatibility as possible into Maemo. I think realistically it's assumed that new smartphones are competent in a number of different areas (phone, maps, photography, web, scheduling etc) with the differentiating factor being applications.

If people with Maemo can have Linux applications, Maemo applications, the new cross platform QT framework applications, Java applications and Android applications then it becomes a very attractive device that essentially commoditises application compatibility and makes it a "standard feature" that you can run applications from anywhere.

What I really want to be able to do is run the Java applications I like (gmail, google maps, opera mini) and my first thought was looking at the open source J2ME project and porting that. If the bulk of the work is already done by Nokia it would be a shame for the community to have to replicate that.

I totally agree with you!
I could also add for a enterprise customer that already had made strategic decisions about what platform they should use on the server (for example JavaEE) and on the client (for example JavaME), these company usually don't think Maemo devices is choose now, because there is no JavaME support. They think it is to expensive to port already existent JavaME applications and they also have not developers with Qt knowledge.

gorkem
2009-10-19, 11:52
Thanks for the informative post!
What do you think are the chances of this happening? Alternatively what are the chances of the necessary code being made available so a community effort can proceed?


I believe it was maemo's decision not to have it. I think someone from maemo can provide a better answer for the chances of it happening. On the other hand, the code for is the S60 Java Runtime is considered to be contributed to Symbian Foundation.

sharper
2009-10-19, 11:52
I totally agree with you!
I could also add for a enterprise customer that already had made strategic decisions about what platform they should use on the server (for example JavaEE) and on the client (for example JavaME), these company usually don't think Maemo devices is choose now, because there is no JavaME support. They think it is to expensive to port already existent JavaME applications and they also have not developers with Qt knowledge.
Sure Enterprise has always been a big area for Java - I would think there are quite a few bespoke Java apps out there and organisations that can't/won't authorise devices which are not capable of running them.

Java is probably one of the least visible platforms to most people so it leads them to think it's not all that important. Unfortunately Android seems to have brought the perception of Java right back to the 90s if this thread is any indication.

mikec
2009-10-19, 11:55
More Apps the better surely. Right now there are two places that those Apps can seriosly bolster the N900 catalog :Java and Flash without asking the developers to make a switch.

Understand Nokias hesitation as Qt is the strategic way forwards, but i cant see either of the above developers making the switch as they have so many other platforms to worry about other than Maemo.


Mike C

mikec
2009-10-19, 11:56
I've been pretty impressed with OpenJDK/IcedTea (http://packages.debian.org/sid/openjdk-6-jre) on the tablets. It is pretty slow, but it is a very complete implementation of Java SE.

I haven't attempted it on the N900, but if it were fast enough, it certainly would be the way to go.

Note that the Debian armel version linked above might be an excellent place to start with a Maemo port.

Qole are you saying that iced tea debs work on the N810? If so how have you installed and tested?

Mike C

SubCore
2009-10-19, 12:02
I have now posted the two brainstorm proposals with the discussed solutions. i'll leave the wiki page as-is for now.

Please vote here (http://maemo.org/community/brainstorm/view/delivering_java_me_to_fremantle/) for Java ME solutions.

Please vote here (http://maemo.org/community/brainstorm/view/delivering_java_se_to_fremantle/) for Java SE solutions.

i have kept the options of nokia providing the commercial versions, but dropped the options where nokia ports open implementations.
i also tried to give a little information with the solutions, so people have a picture what they're voting about.

if anyone spots incorrect information or has a new option to offer, feel free to tell me to correct it or to post additional solutions!

ovjo12
2009-10-19, 12:14
I have now posted the two brainstorm proposals with the discussed solutions. i'll leave the wiki page as-is for now.

Please vote here (http://maemo.org/community/brainstorm/view/delivering_java_me_to_fremantle/) for Java ME solutions.

Please vote here (http://maemo.org/community/brainstorm/view/delivering_java_se_to_fremantle/) for Java SE solutions.

i have kept the options of nokia providing the commercial versions, but dropped the options where nokia ports open implementations.
i also tried to give a little information with the solutions, so people have a picture what they're voting about.

if anyone spots incorrect information or has a new option to offer, feel free to tell me to correct it or to post additional solutions!

Perhaps add:
Solution #4: Community ports S60 Java Runtime as it is considered to be contributed to Symbian Foundation.

SubCore
2009-10-19, 12:27
Perhaps add:
Solution #4: Community ports S60 Java Runtime as it is considered to be contributed to Symbian Foundation.

do we have access to the source of the S60 Java Runtime? the link (http://betalabs.nokia.com/apps/nokia-java-runtime-20-for-s60) gorkem provided does not have any information on this, and i don't know enough about the symbian foundation and it's licensing scheme to judge from.

when we have verified this as a possible option, i will add it.

sharper
2009-10-19, 12:47
From http://developer.symbian.org/forum/showthread.php?t=2229

If we are very lucky, Nokia may consider contributing some of this to the Symbian Foundation. However, we'll have to wait and see.

That was at the end of June. Maybe it's changed since then but I can't find any sign of the source code there.

ovjo12
2009-10-19, 12:51
do we have access to the source of the S60 Java Runtime? the link (http://betalabs.nokia.com/apps/nokia-java-runtime-20-for-s60) gorkem provided does not have any information on this, and i don't know enough about the symbian foundation and it's licensing scheme to judge from.

when we have verified this as a possible option, i will add it.

Yes I agree, someone from Nokia have to answer when S60 Java Runtime will contributed to Symbian Foundation, perhaps get the information first and then vote, at Nokia Developer Summit, Nokia talked about before end of this year, but I don't know?

qole
2009-10-19, 20:05
Qole are you saying that iced tea debs work on the N810? If so how have you installed and tested?

Well, like always, it was through Easy Debian (and Easy Mer) :)

(see here (http://www.flickr.com/photos/qole2/3345228642/), here (http://www.flickr.com/photos/qole2/3306191948/), here (http://www.flickr.com/photos/qole2/3105668850/) and here (http://www.flickr.com/photos/qole2/2986919663) for some screen shots)

mikec
2009-10-19, 20:10
Well, like always, it was through Easy Debian (and Easy Mer) :)

(see here (http://www.flickr.com/photos/qole2/3345228642/), here (http://www.flickr.com/photos/qole2/3306191948/), here (http://www.flickr.com/photos/qole2/3105668850/) and here (http://www.flickr.com/photos/qole2/2986919663) for some screen shots)

OK Cheers, easy debs is my next new friend

Mike C

hypest
2009-10-20, 08:21
Opera Mini requires Java ME; not Java SE. When we refer to Java we usually refer to Java SE.

Opera Mini is optimized for specific devices (screen size, input methods, etc). I'm not entirely sure how this optimization works, but you cannot simply grab Opera Mini and run that on any device you get Java ME working on and get an optimized experience.

Have to admit I'm impressed with Opera Mini 5.0 beta btw.


Well, in the context of a mobile device/computer such as the N900, asking for JavaSE AND JavaME doesn't seem too far fetched :)

In any case, the Opera Mini's experience is excellent in my Kaiser (touchscreen+qwerty usage) and in my Samsung E590 (no-touch, phonepad smartphone), just to name my current (in-use) devices. Running the fast (both in native performance and network-wise) Mini in N900 would elevate the device "value"... just IMHO :)

SubCore
2009-10-22, 20:53
I have now posted the two brainstorm proposals with the discussed solutions. i'll leave the wiki page as-is for now.

Please vote here (http://maemo.org/community/brainstorm/view/delivering_java_me_to_fremantle/) for Java ME solutions.

Please vote here (http://maemo.org/community/brainstorm/view/delivering_java_se_to_fremantle/) for Java SE solutions.



*push*

*trying to collect more votes* :)

urnass
2009-10-23, 16:51
I'd vote for at least one of them, but I don't know which. I've read countless threads concerning Java on Maemo and numerious wiki pages, but I just can make sense over what I need.

Java ME, Java SE, Jalimo, PhoneME, headless, Eclipse, Jazelle, ThumbEE - all these terms are great and I have a loose understanding how they relate to each other, but all I really want is for my Corporate Lotus Notes Web Email Service to work right when I'm on the road. Any guidance for what I should vote for. :confused:

Something tell me this would be so much easier if Sun would just port a free version of their Java to Maemo - just like it works for Windows system. :D

arachnist
2009-10-23, 16:55
Java ME, Java SE, Jalimo, PhoneME, headless, Eclipse, Jazelle, ThumbEE - all these terms are great and I have a loose understanding how they relate to each other, but all I really want is for my Corporate Lotus Notes Web Email Service to work right when I'm on the road. Any guidance for what I should vote for. :confused:

Java SE.
Java ME - java used in dumb-phones.
Having Jazelle supported would also be nice - it's a feature of some ARM cpus to execute java code directly (at least parts of it).

Fargus
2009-10-23, 17:06
I know there no official support for Java, JavaME/CLDC/MIDP or JavaME/CDC today. This is a mistake from Nokia I believe, every Java developer I talk to say they will move to Android. Perhaps the community could add it? Anyone know anything about it?

Funily enough a lot of developers use languages other than Java. Android is a Java environment and as such is an obvious platform.

Sun are the ones that would need to port, support & maintain such a platform not Nokia. If you feel that the N900 needs Java then maybe you should organise a petition to Sun?

allnameswereout
2009-10-23, 17:18
Funily enough a lot of developers use languages other than Java. Android is a Java environment and as such is an obvious platform.

Sun are the ones that would need to port, support & maintain such a platform not Nokia. If you feel that the N900 needs Java then maybe you should organise a petition to Sun?Depends on type of Java, depends on JVM used, etc etc.

Sun could port on contract, Nokia could ask Sun and then pay royalties, etc etc.

Your post clearly excludes possibility of unofficial Java support (with or without Nokia help) by excluding branding & certification. Which is why Android is not a Java SE environment; it doesn't pass the certification.

Because Java SE was not open source and because now it is GPL but required additional components to be replaced there are many options and they are part of the reason of this thread, as they're looked into here. The result of the discussion you can find on Brainstorm and Wiki.

Bottomline is: to run Java you do not need Sun to necessarily port Sun's Java SE to your platform. You need to get your port certified as being Java which requires a huge compatibility test which must pass completely. IBM, for example, has passed this certification for many years!

SubCore
2009-10-23, 17:18
If you feel that the N900 needs Java then maybe you should organise a petition to Sun?

sun won't do anything unless someone pays 'em (http://java.sun.com/javase/licensees.jsp) or the platform is widespread enough.

Fargus
2009-10-23, 17:25
My point entirely!

allnameswereout
2009-10-23, 17:28
Your point was already known, as its already discussed in this thread/brainstorm/wiki...

buurmas
2009-10-23, 18:55
I would love to get Math Drag'n (http://sourceforge.net/projects/equation) (aka Symbolic Equation Manipulator) working b/c I don't know of any other free program that allows manipulating equations via drag-and-drop (very useful!). This program works better when you have lots of screen space as it typically has two or three panes open at once, but I hoped it would at still be usable.

You are right, and I have been incorrect. The PackRat shows Jalimo only in their own repo:

http://ageofikon.info/packrat/index.php?Action=list&System=OS2008&Arg=jalimo&Section=&Repo=0
Using my N810, I clicked on the install icons for both the bottom two options and the install failed. It said it was unable to find the package file. I looked at the repository it had added to the Application Catalog and it had a blank distribution field. This page (https://wiki.evolvis.org/jalimo/index.php/Packages) has the proper Application Catalog settings for older versions of Maemo (no mention of Maemo 5). When I corrected that I was able to see three Jalimo examples, but not Jalimo itself. Apparently that requires Red-Pill mode. :( Not exactly something that's going to get widespread acceptance.

javispedro
2009-10-24, 14:12
Not exactly something that's going to get widespread acceptance.
As a user you're not suposed to install Jalimo itself. An app using it will pull it automatically.

As I said, Jalimo solves the "developing on Java for Maemo" issue, not the "full Java SE" nor Java ME issue (unless you consider their PhoneME efforts)

fms
2009-10-24, 15:51
I would love to get Math Drag'n (http://sourceforge.net/projects/equation) (aka Symbolic Equation Manipulator) working b/c I don't know of any other free program that allows manipulating equations via drag-and-drop (very useful!).
Try the SlideRule - it will simplify equations for you and let you take derivatives, symbolically. It will also make calculations with ratios.

mikec
2009-10-25, 16:58
Guys, while this is an interesting conversation, allow me to provide a perspective that differs from the dominant one here. I am a manager and a statistician. I would like to run a top-notch PIM suite like Datebk5 from Pimlico Software, just as I ran it when on the Palm. If I can't do that, I'd like to run Agendus or Pocket Informant (in that order), as I can on both Blackberry and Windows Mobile. (I currently use WM and Pocket Informant.) Datebk5 will be available on Android fairly soon. Obviously, the iPhone tends to get most everything.

I could live with an N900 that did not do push email (and it does not, last time I checked), but an N900 that does not have a really top-notch PIM is something I could not live with. The Palm had, when I last checked, a mediocre native PIM and WM currently has an atrocious one. But that's why there was demand for software to provide these capabilities.

If you want to know something about the high-end market, you will find some of that market among people like me who are former Palm users and who want efficient, intelligent design.

The maemo concept and the N900 are magnificent. However, until you guys can implement some of the key functionality available 8 years ago on the Palm, I could never take the risk. Specifically, I would need a top-notch PIM, a really competent turn-by-turn travel mapping program that would reroute if a stop was missed, an app that would give me subway routing (e.g. Metro), and a text editor & spreadsheet that would not corrupt the MS files (OO does indeed corrupt them, at least OO on Linux, but Documents to Go does NOT corrupt them). I would want as well a database program like HanDBase and ideally a List Manger program, though HanDBase could be used to create one. I would need a secure "wallet" program and a top-notch travel program (I mourn for my old Travel Tracker, which has now been ported to the iPhone). ALL of this functionality was available 8 years ago on the Palm. I personally got this functionality on a Palm T3 and used BT to get wireless access from either a GSM phone or from a Verizon phone after hacking it. The functionality is also now available on both BB and WM platforms, and on the iPhone.

I get the impression that such usage has never crossed the minds in the N900 group. Note that while most iPhone users do not use all these apps, they are available for the iPhone because they are ESSENTIAL for some of us.

Thanks guys. I don't mean to be loud here, but there really does seem to be a disconnect.

P.S.: It looks like I'll be moving to the Storm2 from a two-year-old WM device. iPhone is out of the question because of AT&T's really crummy service.

Hi srk052004
The N900 does provide push email, either with Nokia Messaging or Mail for Exchange. Both are pre-installed on the N900

Mike C

fms
2009-10-25, 17:03
The maemo concept and the N900 are magnificent. However, until you guys can implement some of the key functionality available 8 years ago on the Palm, I could never take the risk.
Well, this thread is about Java support and you are asking for a specific PalmOS application to be ported to Maemo. I assume it is not written in Java, so Java support is not going to help you there.

I get the impression that such usage has never crossed the minds in the N900 group. Note that while most iPhone users do not use all these apps, they are available for the iPhone because they are ESSENTIAL for some of us.
As I understand, the applications you are talking about all came from third parties, i.e. not from Palm itself. So, it is probably wrong to assume that Maemo Devices (group inside Nokia that works on Maemo) is supposed to provide you with them for free. On the other hand, if you and a thousand or two other users are willing to pay for such applications, somebody will make them for Maemo sooner or later. Before that happens, you are welcome to check the default PIM and Maps apps that come with N900.

qole
2009-10-25, 21:25
Please stay on topic, guys. "PIM on N900 sucks" has nothing to do with "Java for Maemo 5", except for the oblique reference to Dalvik apps being ported to N900 if it had a good JVM.

fms
2009-10-25, 22:04
qole, that "oblique reference" was my whole point here: a good JVM would make development of various killer applications for the N900 easy enough that developers who are not convinced about Maemo would stil find it so easy to port to it that some at least would.
Mmm...doubtful. First of all, Maemo is already pretty easy to develop for. Secondly, having Java support is not going to help any there, as your original PalmOS apps are most certainly not written in Java. Having Java mostly helps running existing Java apps.

mikec
2009-10-25, 23:08
qole, that "oblique reference" was my whole point here: a good JVM would make development of various killer applications for the N900 easy enough that developers who are not convinced about Maemo would stil find it so easy to port to it that some at least would.

Just to recap, The debate got to a point of not whether Java is good to have or not, BUT what flavour of Java would be best to focus on. Please make your vote in the Brainstorm.

http://maemo.org/community/brainstorm/view/delivering_java_me_to_fremantle/

Mike C

javispedro
2009-10-25, 23:30
BUT what flavour of Java would be best to focus on. Please make your vote in the Brainstorm.
http://maemo.org/community/brainstorm/view/delivering_java_me_to_fremantle/

Well, all the choices there are talking about Java ME. So no choice of flavor there.

allnameswereout
2009-10-26, 00:35
Well, all the choices there are talking about Java ME. So no choice of flavor there.That is why there is http://maemo.org/community/brainstorm/view/delivering_java_se_to_fremantle/

buurmas
2009-10-26, 17:14
Try the SlideRule - it will simplify equations for you and let you take derivatives, symbolically. It will also make calculations with ratios.
Thanks! This is somewhat offtopic (except that it relates to my Java needs), but it technically looks like it deals with expressions, not full equations. I'm looking to be able to enter, for example, "F = m * a" and then move the "a" to the left side to get "F / a = m" and then substitute some other expression for "m", except obviously with more complicated equations. But SlideRule does look like it has some interesting functionality.

allnameswereout
2009-10-28, 05:20
About performance, I'll quote from a SheevaPlug (also ARM) wiki page concerning Java (http://computingplugs.com/index.php/Installing_Java):

The state of Java support is:

- OpenJDK with Hotspot Zero (default): works fine, but there's not JIT so it's somewhat slow; I've found the performance of tomcat + webapps reasonable (after the first compile of JSP pages)

- OpenJDK with CACAO vm (java -cacao): mostly ok, but has big problem with JMX (as in "crashes the application"); on the other hand cacao vm has a JIT, which means that when it works it's much much faster than hotspot zero (tomcat startup time is reduced to about 1/3)

- Sun EJRE: extremely fast and feature complete. However it's *not free*; you have to pay royalties when deploying the system; furthemore the JRE is still in "early access" phase, it will expire after 90 days.

FWIW, I just ordered a SheevaPlug.

I also read about an add-on (http://www.globalscaletechnologies.com/p-27-osgi-jvm-add-on-for-sheevaplug-dev-kit-on-sd-card.aspx):

Reliable and optimized JVM:

Special Edition of WebSphere Everyplace Custom Environment VM (J9) by MicroDoc (with Resource Management extensions)WTF? Seems like Java ?E from IBM...

http://www-01.ibm.com/software/wireless/wece/

The Java ME version of this product is
http://www-01.ibm.com/software/wireless/weme/

ovjo12
2009-10-30, 15:21
A lot of interesting reading about JavaME and the future on the Symbian platform.
http://mobilephonedevelopment.com/archives/919

Don't forget to read answers from Aleksi Uotila, Nokia.
http://ideas.symbian.org/Idea/View?ideaid=292
http://ideas.symbian.org/Idea/View?ideaid=711

I think it is really important to understand Nokia's JavaME strategy, it will help the Maemo community to make good decisions.

ovjo12
2009-11-02, 22:25
Good news!
Nokia will contribute its Java Runtime to Symbian foundation under EPL, read more here: http://blogs.forum.nokia.com/blog/java-runtime-for-s60-blog/2009/11/02/java-roadmaps-presented-at-symbian-exchange

406NotAcceptable
2009-11-03, 12:56
Dalvik apps being ported to N900 if it had a good JVM.

The way Dalvik and Android are combined, you'd almost be better off re-writing the application rather than porting it. Whilst the code is standard Java, the user interface and interaction are all designed for Android systems so would have to be rewritten.

I'd be up for J2SE, but don't really care about J2ME. ME is pretty poor to develop with as it is based on an old version of SE. Not many ME based apps are worth having, and I include my Uni Summer Project with that comment!

jaark
2009-11-04, 09:18
TBH, the only J2ME app I want in the mobile version of the Good Beer Guide ;)

RevdKathy
2009-11-04, 09:19
I'd like to take my shopping list with me 'Smart shopper'. I can live without the rest.

f4b3r
2009-11-04, 10:47
With j2se it would be interesting try a porting of tuxguitar (tuxguitar.herac.com.ar)

YoDude
2009-11-04, 14:02
Guys, while this is an interesting conversation, allow me to provide a perspective that differs from the dominant one here. I am a manager and a statistician. I would like to run a top-notch PIM suite like Datebk5 from Pimlico Software, just as I ran it when on the Palm. If I can't do that, I'd like to run Agendus or Pocket Informant (in that order), as I can on both Blackberry and Windows Mobile. (I currently use WM and Pocket Informant.) Datebk5 will be available on Android fairly soon. Obviously, the iPhone tends to get most everything.

I could live with an N900 that did not do push email (and it does not, last time I checked), but an N900 that does not have a really top-notch PIM is something I could not live with. The Palm had, when I last checked, a mediocre native PIM and WM currently has an atrocious one. But that's why there was demand for software to provide these capabilities.

If you want to know something about the high-end market, you will find some of that market among people like me who are former Palm users and who want efficient, intelligent design.

The maemo concept and the N900 are magnificent. However, until you guys can implement some of the key functionality available 8 years ago on the Palm, I could never take the risk. Specifically, I would need a top-notch PIM, a really competent turn-by-turn travel mapping program that would reroute if a stop was missed, an app that would give me subway routing (e.g. Metro), and a text editor & spreadsheet that would not corrupt the MS files (OO does indeed corrupt them, at least OO on Linux, but Documents to Go does NOT corrupt them). I would want as well a database program like HanDBase and ideally a List Manger program, though HanDBase could be used to create one. I would need a secure "wallet" program and a top-notch travel program (I mourn for my old Travel Tracker, which has now been ported to the iPhone). ALL of this functionality was available 8 years ago on the Palm. I personally got this functionality on a Palm T3 and used BT to get wireless access from either a GSM phone or from a Verizon phone after hacking it. The functionality is also now available on both BB and WM platforms, and on the iPhone.

I get the impression that such usage has never crossed the minds in the N900 group. Note that while most iPhone users do not use all these apps, they are available for the iPhone because they are ESSENTIAL for some of us.

Thanks guys. I don't mean to be loud here, but there really does seem to be a disconnect.

P.S.: It looks like I'll be moving to the Storm2 from a two-year-old WM device. iPhone is out of the question because of AT&T's really crummy service.

I agree. There is a disconnect with regard to real world usage of smartphones, and their vocal fans in general...

With a little work I was able to make Nokia's N800 series provide for most of my mobile needs and have it BT tether to whatever cell service my company provided.

I suspect I will be able to make the N900 suit my needs as well, plus it has additional PIM software out of the box.

I had an iPAQ WM device that had all the things you mentioned after purchasing additional programs in some cases. I was very happy with the fact that I could carry all my essential data with me as well as run TomTom navigation apps... That is until I used it one day in the "real world".

While connecting through ORD on a business trip I had the iPAQ out and was using it with one hand with my carry-on slung over my shoulder and my brief in my other hand. I was bumped and the iPAQ went flying across the terminal floor. I gathered it up along with the battery and battery cover which had came loose, stuffed it in my bag and continued on to the gate. When got off the ground again I put everything together and found that it worked... phew. Time for a cocktail or two and a T-bone steak ala carte as we flew over to the Golden state. :)

When I hit the rental car desk at my final destination I found that all my data had been lost and would have to be re-entered, any program that I purchased would have to be reinstalled, and although I still had TomTom on the memory card, because its program configuration was lost it was useless without a reinstall.

Needless to say, never again with Windows Mobile no matter how good it says that it has gotten. I couldn't communicate the frustration and helplessness I experienced that day to the WinMo fan boys then either... it also seemed like there was a disconnect.

***
About Maemo and Nokia's efforts so far I will say this. If there is something already out there that works for you out of the box then Maemo won't beat it... out of the box.

Out of the box the N900 will have less software available, more bug related software updates, and a much steeper learning curve...

However....and imho, 3 months later, the N900 owner will be happier with his purchase and their satisfaction will continue to grow as they realize that:

* More and more free applications have become available for the N900 and that they had a say in the development of some of those applications or can configure them more to their specific needs then ones available for sale on other phones.

* Each firmware update that they did receive over the air for their N900 actually improved its functionality and didn't cripple its connectivity even further or undo any changes that they may have already made.

* The learning process for the N900 was not painful at all and that they now feel a part of a vibrant, growing community that shares their enthusiasm for the device and its OS and is less concerned with how much time or money they spend on add-on applications or plug-ins.

However, in business time = $$$. If you need immediate satisfaction and can not invest the up front time required to make Maemo your own, then perhaps this phone is not for you... ymmv :)

allnameswereout
2009-11-07, 20:45
Thanks, YoDude, for your response. I am delaying my purchase of any new phone in the hopes that some of what I need will be provided on the N900 (it's ok if I have to pay, within reason). I can do some hacking, but I'm not skilled the way many (most?) of the participants here are.

Since my last post, another issue has emerged, but it's OT, so I will be very brief. Since T-Mobile USA has not indicated it will support the N900, any tech support will need to go either online or with Nokia support. But Nokia support comes from a boiler room staffed by people who do not speak English very well. Evidently, Nokia does not, as yet, consider their flagship phone worthy of flagship tech support. Sigh.How about you discuss this somewhere else instead of in the Java for Maemo 5 thread? None of your posts in this thread have been on-topic...

srk052004
2009-11-10, 02:01
How about you discuss this somewhere else instead of in the Java for Maemo 5 thread? None of your posts in this thread have been on-topic...

False. I'd say about 80% of my posts are on-topic, but your "silo" mentality does not allow you to see this.

Anyway, I've had enough. When three (3) Maemo biggies show nothing but indifference or contempt for my perspective, I know it's time for me to delete my posts and leave (which I will do now). When Nokia actually wants to sell flagship devices, I can be brought back for a consult--with pay.

qole
2009-11-10, 02:42
What's a Maemo biggie? And do they have control over what Nokia sells?

I just want someone to port OpenJDK to Maemo.

EDIT. and Dalvik! I forgot Dalvik! That too, please.

hallokitty
2009-11-18, 15:28
iPaq failure

Yeah, a lot of the older Windows Mobile (mostly branded as Windows CE) pda only type devices used a single pool of volatile RAM as RAM AND storage. Who thought that this was a good idea needs to be stabbed, of course, but it's important to realise that this has no bearing on newer devices, using non-volatile flash for their storage.

Still, Windows Mobile has godawful fit and finish (a bit like their desktop operating systems) and it really pokes through at times, even when using HTC's excellent TouchFlo

Fargus
2009-11-21, 23:13
I'd like to take my shopping list with me 'Smart shopper'. I can live without the rest.

Sounds like another good idea for a widget based app to me. You're getting very good at generating good ideas Kathy. Keep going please :)

Bratag
2009-11-22, 00:04
False. I'd say about 80% of my posts are on-topic, but your "silo" mentality does not allow you to see this.

Anyway, I've had enough. When three (3) Maemo biggies show nothing but indifference or contempt for my perspective, I know it's time for me to delete my posts and leave (which I will do now). When Nokia actually wants to sell flagship devices, I can be brought back for a consult--with pay.

So that would be what 3 out of the 4 posts you have :).

Sorry I know thats offtopic

RevdKathy
2009-11-22, 09:03
Sounds like another good idea for a widget based app to me. You're getting very good at generating good ideas Kathy. Keep going please :)

I believe there's an app called 'shopper' which might be ported? I'm optimistic. And I gather pyrecipe has a shopping list facility. No idea how useful that is for what I want till I can try it out.

But thinking about all the thousands (millions?) of java games and software out there (Some very good and some total crap) it would solve the problem of "Only 55 apps" if we had java!

TA-t3
2009-11-23, 10:41
My shopping list application is the 'todo' application on my Palm PDA.. I have a semi-permanent list of items (milk, cheese, onions etc) there and I simply tick them off (as in removing a tick if there's one) at the moment I realise I'm out of, say, rice. I only rarely have time to visit shops, so when the chance comes up I simply walk in and get my PDA out. There will be a list of 'unticked' groceries there, and I don't have to remember anything.

This works very well for me. I saw the idea mentioned in a PDA magazine years ago and thought it sounded stupid. But later I found that it was brilliant.

SubCore
2009-12-10, 22:03
I have now posted the two brainstorm proposals with the discussed solutions. i'll leave the wiki page as-is for now.

Please vote here (http://maemo.org/community/brainstorm/view/delivering_java_me_to_fremantle/) for Java ME solutions.

Please vote here (http://maemo.org/community/brainstorm/view/delivering_java_se_to_fremantle/) for Java SE solutions.



*push*

since the brainstorm voting system has been changed (did i miss the announcement?), all the votes have been lost or hidden, so i would kindly ask anyone interested in java to vote again plz! :)

JPvdBos
2009-12-26, 23:26
I put in a vote for Java ME. The reason is:

- On any computer equipped with a browser (that includes Java) I can reach my workstation.
- The N900 has a great browser which works wonderful.
- It just lacks the Java support needed.

To do what? Use Secure Global Desktop (SGD) to reach my workstation (safely placed in a datacenter) and get work done.

For more on SGD: Wiki page 1 (http://en.wikipedia.org/wiki/Sun_Secure_Global_Desktop).
For the type of Java support needed: Wiki page 2 (http://en.wikipedia.org/wiki/Java_Runtime_Environment).

:) I really hope Java support will arrive soon. It would finish the "computer in your pocket".

shadowjk
2009-12-27, 12:12
JavaME doesn't add anything to a browser. If you want support for java applets you probably want JavaSE.

bsving
2009-12-27, 15:02
I put in a vote for Java ME. The reason is:

- On any computer equipped with a browser (that includes Java) I can reach my workstation.
- The N900 has a great browser which works wonderful.
- It just lacks the Java support needed.

To do what? Use Secure Global Desktop (SGD) to reach my workstation (safely placed in a datacenter) and get work done.

For more on SGD: Wiki page 1 (http://en.wikipedia.org/wiki/Sun_Secure_Global_Desktop).
For the type of Java support needed: Wiki page 2 (http://en.wikipedia.org/wiki/Java_Runtime_Environment).

:) I really hope Java support will arrive soon. It would finish the "computer in your pocket".

I agree. In addition, most internet banks need java support. No Java - no money, no money - no fun. Java is a must, at least if the N900 is to be a "mobile computer".

JPvdBos
2009-12-28, 09:17
I agree...".

Hi!
If I understand this discussion thread correctly - you are invited to vote in the Brainstorm section to make your opinion heard.
Please refer to post: http://talk.maemo.org/showpost.php?p=421711&postcount=149
Jan-Paul

JPvdBos
2009-12-28, 09:21
JavaME doesn't add anything to a browser. If you want support for java applets you probably want JavaSE.

I understand your remark, thanks. The application I'm trying to use on the N900 is SUN Secure Global Desktop.

It uses the browser to perform authorization (log-in on an HTTPS connection) and than starts an X11 session (on the client) that displays the remote computer (workstation). So the actual application is outside the browser. And requires the JavaME.

At least - that's what I got from the Wiki pages in my previous post and my experience using this on an actual computer (both MAC and PC).

Regards,
Jan-Paul

shapeshifter
2009-12-28, 09:23
eww, java is appalling.
But it's also an industry standard :|

SGD? Why not ssh like normal people. >.> And if you seriously need a remote desktop, there's VNC, which you can also tunnel through ssh to encrypt. In any case, browser apps are a bad thing, and java is a bad thing. When I heard the n900 didn't even do java, I was like "yay, that's the phone for me". But I can still understand, that some people want it. But that's nothing more then just a sad fact.

JPvdBos
2009-12-28, 09:30
SGD? Why not ssh like normal people.

Hi Shapeshifter,
Forgive my ignorance - how could SSH provide access to the SSGD server? Where could I find out more to learn about this?
Thanx!
Jan-Paul

shapeshifter
2009-12-28, 11:04
how could SSH provide access to the SSGD server?
I'm sorry, ssh does not help with that. I was simply criticising the fact that people even use something like SGD, I'm guessing this was the choice of your employer. Stuff like SGD and lots of other java dependant stuff simply is reality in todays businesses as java is the industry standard. And I was just saying, that this is suboptimal.

You definitely need java.

vitaly_repin
2009-12-29, 08:22
It looks like, somebody needs to pay jalimo's guys attention to this thread.

There were positive promises here: http://lists.evolvis.org/pipermail/jalimo-info/2009-November/000418.html As far as I know, N900 is already in Sebastian's hands.

Update. Pinged Jalimo: http://lists.evolvis.org/pipermail/jalimo-info/2009-December/000429.html and http://lists.evolvis.org/pipermail/jalimo-info/2009-December/000430.html

Let's wait...

qole
2009-12-30, 04:29
This other thread (http://talk.maemo.org/showthread.php?t=37405) has instructions for getting Sun's Java SE working fairly well on the N900.

ceefour
2010-03-14, 22:05
You just end up with 2 toolkits, Swing and GTK (Maemo 5) or Qt (Maemo 6). Not recommended for the faint of heart although for backwards compatibility its either an option or not.

Ability to use Java applets is also sometimes required as example above.

I don't believe Java support on the device is going to be a killer feature though, but doesn't mean those who care should stop caring.

Can one not simply port their Java application to Qt Jambi? Provided one has access to source that is.

FWIW, I've made a stub for Java at Maemo wiki (http://wiki.maemo.org/Java) the old article was unnecessarily technical, out of date, and mostly about Nokia 770.
Unfortunately Qt Jambi has been discontinued.

http://qt.nokia.com/about/news/preview-of-final-qt-jambi-release-available

vijayv
2010-08-21, 06:32
Any updates on using Java apps on the browser either on Microb or firefox using mmjre / icedtea..

Many automation and control devices used in industrial environments use java based webpages where you can log in and see the status. It would be great if someone could find a way to allow java plug into microb or firefox or any other mobile for that matter...

I am aware of debian ARM chroot + firefox but thats hardly a working solution.

ug2215
2011-07-07, 18:05
I have the JRE from Sun working on my N900 but can't use an installed app. I installed software from a .jnlp and used it successfully but now I cannot run it again. Does anyone know how I would run the installed java application?

nicholes
2011-07-11, 14:16
no no i don;t understand the thread !!(sorrry)

can any one conferm is java running on n900???????????

(i have used micoemulator for .jar files but it was not perfact)

prankster
2011-07-11, 14:51
java without browser plugins ,yeah available .i dont know why is everything incomplete on maemo5,anyway i love maemo or i would have passed myself to android ..

Fabry
2011-07-11, 15:12
New Java version from Oracle: http://talk.maemo.org/showpost.php?p=1048790&postcount=333

moradeeb
2011-07-12, 09:07
i treid to dowload the file but when trying to open it it say it is corrupted

goverweg
2011-07-12, 09:17
You have to unpack it first. But then how does one install what's comming out of the package?

moradeeb
2011-07-12, 14:54
You have to unpack it first. But then how does one install what's comming out of the package?

any one know?

SubCore
2011-07-12, 15:14
You have to unpack it first. But then how does one install what's comming out of the package?

probably the same as earlier versions, IIRC that tarball doesn't contain an installer but the java binaries themselves.
just copy the contents to /opt/java and place a symlink in /usr/bin.

a more detailed description can be found here (http://talk.maemo.org/showpost.php?p=432083&postcount=24) and here (http://talk.maemo.org/showpost.php?p=432140&postcount=29) (in the other big java thread (http://talk.maemo.org/showthread.php?t=37405) on t.m.o)

Fabry
2011-08-16, 22:02
New Java versions from Oracle: http://talk.maemo.org/showpost.php?p=1071453&postcount=337

trisha02
2011-08-17, 05:46
can we port whatsapp java app for symbian s 60 in n900?

N900L
2011-08-17, 09:00
is it ok if i copy the folder to home/opt/java with filebox instead of the method with the ip adress?

demolition
2011-08-17, 17:06
is it ok if i copy the folder to home/opt/java with filebox instead of the method with the ip adress?

Is this a dual post (http://talk.maemo.org/showthread.php?p=1071708#post1071708) perchance? I hope my response in the other thread (http://talk.maemo.org/showthread.php?t=37405&page=35) is useful.

marmistrz
2013-07-17, 11:37
So, why should we use headful instead of headless?

Btw. are all the "no hardfp on softfp" people talking ********? http://talk.maemo.org/showthread.php?t=69374 recommends hard vfp and it works.

nokiabot
2013-07-18, 04:13
and what is that java which is on websites lile sahaj:)

king
2013-11-14, 03:56
has anybody installed java se for embedded 7 on n900? i know there is a article for java se for embedded 6 but when following the very same steps it does not work....the s6 is no longuer available so I could only get the 7....help, anybody?

Pilo11
2016-11-20, 10:00
I tried to install Java 8 on Maemo 5 (N900) and it worked (headless). But I wanted to run my own Java applications (with GUI) to make my N900 useable in 2016 (Telegram for Java, own java, applications, ...)

Then I read that "Oracle has withdrawn their support for JavaFX Embedded [...]"
(h t t p s : / /jaxenter.com/jdk-arm-without-javafx-end-javafx-embedded-114212.html) :(

I decided to work on Java Swing at least. But I only found headless embedded Java environments...

Nevertheless I build my own JAVA JRE 8 to launch Java Swing application on my N900:

I downloaded Java SE Embedded (SoftFP, LE):
h t t p : / /download.oracle.com/otn-pub/java/ejdk/8u111-b14/ejdk-8u111-linux-arm-sflt.tar.gz
or
h t t p : / /www.oracle.com/technetwork/java/embedded/embedded-se/downloads/index.html

(the HardFloatingPoint version did not work for me :D)

and copied it on the device,
extracted the archive (to /opt/ejdk-8u111/)

tar xvzf ejdk-8u...

and ran the /opt/ejdk-8u111/bin/jrecreate.sh:
(more information: h t t p s : / /docs.oracle.com/javase/8/embedded/develop-apps-platforms/jrecreate.htm)

./opt/ejdk-8u111/bin/jrecreate.sh --dest /opt/jre_builded

This will create the JRE in the jre_builded folder without Java Swing support (headless) and trust me it is going to take very long (at least 4-5 hours).

After 100 teas (or more ^^) I linked the java executable file to my /usr/bin

--------------------------------------------------------------------

EDIT:

I forgot to mention that you need to do this ^^:

chmod +x /opt/jre_builded/bin/java

Without doing this you are not able to use the link to /usr/bin :D

--------------------------------------------------------------------

ln -s /opt/jre_builded/bin/java /usr/bin

Now, it was time to test a simple JAVA application (hello world) and it worked :cool:

https://s14.postimg.org/mtnnwy5td/Screenshot_20161120_102340.png

But I also wanted to run my Java Swing helloWorld test application.
Something strange happened:

https://s17.postimg.org/lwhvtpzkf/Screenshot_20161120_103336.png

The created JRE is headless :(

I googled for a while and found this StackOverflow topic (I love StackOverflow!)

h t t p : / /stackoverflow.com/questions/34643571/how-do-i-make-jrecreate-compile-a-headful-jre/34644174#34644174

This guy shared a very funny idea with the community. He said:
Apparently including the lib/arm/libawt_xawt.so file from another distribution (like the already headful HardFP one) is enough to tell Java to not be in headless mode anymore, and to properly load the awt library.

Unfortunately Oracle does not mention anything about their JAVA 8 Embedded archives if they are headful or not.

Proof:
I downloaded ARMv5/ARMv6/ARMv7 Linux - SoftFP ABI, Little Endian 2 which is headless.
I downloaded ARM v6/v7 Linux - VFP, HardFP ABI, Little Endian 1 which is headful.

But it is not written down on the website...

So what I did and what you can do is grabbing this little lib/arm/libawt_xawt.so file from the headful HardFP archive and copying it to the complete created JRE folder /opt/jre_compiled/lib/arm/libawt_xawt.so

And you were done...

https://s14.postimg.org/6jxhu1v5d/Screenshot_20161120_102518.png
https://s14.postimg.org/g5r2acmb5/Screenshot_20161120_102529.png

--------------------------------------------------------------------

EDIT:

Perhaps someone would be so kind as to help me getting JavaFX working on Maemo 5 :D
I'll try it the next weeks but it will be almost impossible to do this without thinking about it hard ^^
and without wasting weekends for this shhhhhh... shaving cream
Excuse my language ^^ :cool:

If you want to help me or if you have any ideas, please write me: pilo.eleven@mail.ru
:D

--------------------------------------------------------------------

Cya Pilo11