Read-only archive of the All About Symbian forum (2001–2013) · About this archive

Five reasons why Java has already saved Nokia

32 replies · 11,173 views · Started 22 June 2009

It's been in every S60 phone since the first 7650 came out of Espoo... and it's still delivering for Nokia. Has Java really saved Nokia, asks Ewan Spence? From N-Gage support to bedroom coders, Ewan's clearly on a big Java high!

Read on in the full article.

In my view Java has done more damage to the mobile applications industry than all other things combined.

i) its a totally inappropriate language for mobile, its bloated, slow, incompatible between devices, write once fails everywhere etc. Any language that has to include its own src in the executable to work (regardless of the reasons) is just insane on a limited memory device such as mobiles, even today.

ii) There are far better interpreted style languages that are just as secure as Java but designed by people that acutally knew something about mobile, OPL is one good example. Just they didnt have the $$$ Sun rammed down peoples throats. Oh dear has Sun gone bust, how sad.

iii) Forcing companies to re-write tens/hundreds of man years of legacy code in a new language just so you can spend thousands of hrs having to port between every device is just insane. How have Apple magically got tens of thousands of apps in the last 12 to 18 months - because they allow companies to re-use their legacy C/C++ code written for say PC or Mac to more or less work on iPhone with a small amount of wrapping via ObjectiveC.

The only Java crapp on my phone is the Opera Mini and I'd swap it to a native version in a heartbeat.

"A different dialect of c++" ? Really? How is this different from using any other API on any other device? There aer some different programming considerations, but these are things that work to the advantage of Symbian.

I will contest that C++ programming for S60 is not any more difficult than any other for a programmer. I would use it over Java any day. Use the Python stuff for modelling and prototyping and then code in C++. There is no benefit programming for mobile in java unless you are only experienced in java for mobile and have perhaps come from another platform.

If you know how to get your head round and use an API then you can program for Symbian.

Like Steve, I also want to know if an app is Java. I'm not sure about Steve's reasons for asking, but mine are nothing to do with it actually being Java, but rather that they tend to be slow, and, more importantly, the UI is not consistent with the rest of the phone. Even the Wdsets application, which was Java, was not consistent and needed me to re-learn the interface, albeit in small ways.

I don't like having to do that.

Of course, if there is a Java app that doesn't force me to relearn the UI, then I'm all ears...I've not seen one yet, though I'd not looked so hard.

Perhaps, in the game world, you're used to having the UI changed for each game. I suppose I'm not really a game person...I'm primarily talking about other apps.

but it will look rubbish on every phone / platform 😊

As a customer I don't care about developers saving money porting applications I want an software that works and integrates well on MY phone.

Symbian C++ is actually pretty easy, the lack of a decent development environment and supporting documentation is what makes it hard. Yes, even descriptors and active objects save you from headaches that I encounter when I port C code using raw pointers and threads.

The tools/docs problems should get better with the Foundation because everyone can get access to any source that they need to debug. They can raise bug supports that will get treated more or less the same as internal bug reports and finally Qt should eliminate some of the historical weirdness for day to day UI programming.

Unregistered wrote:but it will look rubbish on every phone / platform 😊

As a customer I don't care about developers saving money porting applications I want an software that works and integrates well on MY phone.

Symbian C++ is actually pretty easy, the lack of a decent development environment and supporting documentation is what makes it hard. Yes, even descriptors and active objects save you from headaches that I encounter when I port C code using raw pointers and threads.

The tools/docs problems should get better with the Foundation because everyone can get access to any source that they need to debug. They can raise bug supports that will get treated more or less the same as internal bug reports and finally Qt should eliminate some of the historical weirdness for day to day UI programming.

Yes, I agree. It isn't *that* hard. I've done my fair share of Symbian C++ development. The main problem I think people have is due to the fact that it's called "C++" and so they expect it to be the same as what they learned at University, and then they find they have to learn some more. Experienced s/w engineers are used to learning new stuff - it's almost a constant thing, unfortuntely. Once I'd put the time in to learn it, it all sort of made sense (sort of) - hacking around trying to use regular C++ just gets you frustrated and I think many people approach it that way.

If I could wish for one thing in Nokia phones, the first thing I would wish for is to get rid of this horrible crap called Java.

I have just finished a lengthy debate on another Symbian board about why extra hardware will not be used properly and only go to waste. Drawing up a conclusion, Nokia has done such a bad job at providing developers (and potential developers) environments in which they can work by. In comparison to the Iphone software (which is all native code and taking full potential of its hardware through SDK supported libraries).

Comparing back to the Java 2D games on the S60 platform, it really absolutely disgusts me to think that in this day and age, we still have to live by 30 year old Commodore 64 type games (and even some C64 games are BETTER than the grotesque Java based games). This is true when we now have exceptional hardware (N95/82, Innov8, i8910 etc) - that is capable of OpenGL Quake 3 (mainstream on the high end PCs only 5 years ago).

Most people would agree - the only Java Apps that is worth having is probably Opera Mini (which is done extremely well) and (some) games out of Digital Chocolate.

See here - on how the industry thinks of NGage:
http://www.gamesindustry.biz/articles/n-gage-voted-fading-star

Java has not saved Nokia.. and mark my words..

JAVA WILL KILL NOKIA.. give it some time and you will see.

@malerocks ; a question : how come Skyfire doesn't work on the inner screen of an E90 ? It freezes from the start ! It works on the outer screen , but then is a hassle because of all the scrolling needed .
So I still prefer Opera Mini .

😊 Regards jApi NL

davidmaxwaterma wrote:Yes, I agree. It isn't *that* hard. I've done my fair share of Symbian C++ development. The main problem I think people have is due to the fact that it's called "C++" and so they expect it to be the same as what they learned at University, and then they find they have to learn some more. Experienced s/w engineers are used to learning new stuff - it's almost a constant thing, unfortuntely. Once I'd put the time in to learn it, it all sort of made sense (sort of) - hacking around trying to use regular C++ just gets you frustrated and I think many people approach it that way.

Anyone who comes out of university expecting to sit and code Kernighan and Ritchie has clearly learned sweet FA.

And this nonsense some people are spouting about Nokia not providing information for people to code natively are talking plain shyte. All the information required is a few clicks away on the web. There aer numerous books and there are SDKs available along with emulators for every phone way ahead of the phone going to market. Truly a monumental amount of work by Symbian, not to be underestimated.

jApi NL wrote:@malerocks ; a question : how come Skyfire doesn't work on the inner screen of an E90 ? It freezes from the start ! It works on the outer screen , but then is a hassle because of all the scrolling needed .
So I still prefer Opera Mini .

😊 Regards jApi NL


Unfortunately, the e90 has such a unique resolution that it is not supported by many symbian apps. So Skyfire does not work on that. Would have been wonderful if it could though. Surfing the web on that screen would have been fantabalous. 😊

I'm not sure if that is true. It will definitely not save them if they want to compete with the likes of Apple though.

zyler wrote:I'm not sure if that is true. It will definitely not save them if they want to compete with the likes of Apple though.

It's wierd how people believe that Apple with their single overpriced product are somehow leading. Nokia have a large number of different phones to cover most of the market place and have, by far, the lions share. It is Apple who would like to compete, but are still a country mile behind. By not releasing a nano-phone Apple are still missing out a large piece of the marketplace. You don't need a multitude of native apps to compete, you need products (notice the use of plural) that most people can afford, and that offer the buyer a choice, both in style of device and in network provider. For a device that spends (for most people) over 95% of the day not being used, you know what makes sense.

hate java! i wont buy any app with java.
i nokia will die a slow death cuz not even non-java app work smooth and fast. please nokia wake up!!! i dont want to go to the dark force of android and the like...

Most of the comments here seem to be religiously based from bitter programming zealots. I've programmed all sorts of stuff over 25 years and really, J2ME isn't that bad, and on Nokias is not very fragmented these days, and has a set of quite powerful APIs. What seals the deal tho is the fact that if u want to reach the most customers/users for your app, it's the only way to go. If u include S40 handsets and sell through the Ovi store you're looking at hundreds of millions of potential new buyers each year - numbers which developers on other platforms will only be able to ever dream of and never come close to.

i agree with these sentiments. the iphone has masses of boring inane applications, e.g mood lighting or virtual water, or a piano which you can play via the touchscreen. it also has alot of great games, however i feel s60 has more decent core applications. series 60 is no frills, with applications which just work and do a job. nokia lacks a native skype client which is hopefully being addressed.

this continues from the last posting, when comparing say the N97 against the iphone, aside from the proof of concept features, and bells and whistles "how many applications serve a purpose" on both platforms and how many are simply bloatware. fun applications are nice, however not when there are about 7-8 doing the same thing imo.

"Any language that has to include its own src in the executable to work (regardless of the reasons) is just insane on a limited memory device such as mobiles, even today"

Are you sure about that? I think you may be thinking of JavaScript. afaik, Java uses IL, in the same way .net does, which is NOT source, but rather a platform independent binary. Yes, slightly bigger than a normal binary, but with an efficient runtime engine, almost as performant, and the choice of dev environment, and portability make it a no brainer for cross platform apps, which is where the money is, and where developers will generally go.

on another topic, are these captcha's getting more and more abstract, or do I need glasses?? :P Had to refresh 3 times before I could get the words..

Well J2ME certainly has some weaknesses, as the previous posters have highlighted. But when I decided to write a mobile personal finance application in 2004, I figured that I was going to spend many hundreds of hours coding and refining the program. I wanted to create an application that was as 'future-proof' as possible. Knowing that I change phones every 12 to 18 months, I didn't want to find that my latest must-have device wasn't compatible with the software I'd written. Back in 2004 (pre Android, pre iPhone), the only language that ran on almost every phone was Java.

Five years later, it is still the case that Java is the most widely-used language on mobile devices - whether normal 'dumb' phones by most manufacturers, S40, S60, UIQ3, WinMob, Blackberry. Yes, there are some quirks in the Java implementations. But generally well-written J2ME code will run on all these devices with minimal customisation.

Not so for Android and iPhone which, in my opinion, is a shame.

Best regards,
Malcolm
www.freepoc.org

But java isn't portable, write once run anywhere is pure marketing BS hype. Program your app for Nokia device #1, then re-program for device #2 with its new touch interface and different screen dimensions.

It is just as easy to use C++.

Unregistered wrote:But java isn't portable, write once run anywhere is pure marketing BS hype. Program your app for Nokia device #1, then re-program for device #2 with its new touch interface and different screen dimensions.

It is just as easy to use C++.

Correct. "Minimal customisation" LOL! Someone must have a minimal app.

Unregistered wrote:But java isn't portable, write once run anywhere is pure marketing BS hype. Program your app for Nokia device #1, then re-program for device #2 with its new touch interface and different screen dimensions.

Well, I guess that's what I mean by 'well-written'. J2ME has supported pointer events from the start. So a competent programmer would write code which catered for both touch and non-touch devices and for varying screen sizes. I mean we know there are devices with different form factors out there. Anyone writing code just for QVGA non-touch devices would realise that he/she is limiting the portability of their software. I still maintain that well-written Java code is reasonably portable. Not 100% perfect, but on the whole less work to move between devices than (for example) C++.

Best regards,
Malcolm

malbry wrote:Well, I guess that's what I mean by 'well-written'. J2ME has supported pointer events from the start. So a competent programmer would write code which catered for both touch and non-touch devices and for varying screen sizes. I mean we know there are devices with different form factors out there. Anyone writing code just for QVGA non-touch devices would realise that he/she is limiting the portability of their software. I still maintain that well-written Java code is reasonably portable. Not 100% perfect, but on the whole less work to move between devices than (for example) C++.

Best regards,
Malcolm

Even with all the best intentions and cleanest programming, only the simple, basic apps work out reasonably portable.

Part of the problem for the java haters is, Nokia is actively pushing developers towards J2ME and WRT. The other part is, J2ME just makes sense if you're going to do any Symbian development. S60 is scheduled to be phased out (per the Symbian foundation roadmap) next year, and any development investment would be shot once that happens.

I see native Symbian apps becoming rarer and rarer, and relagated to the "system" level, with J2ME becoming more and more common. A quick look at what's being offered via Ovi seems to confirm that.

Jonnycat26 wrote:Part of the problem for the java haters is, Nokia is actively pushing developers towards J2ME and WRT. The other part is, J2ME just makes sense if you're going to do any Symbian development. S60 is scheduled to be phased out (per the Symbian foundation roadmap) next year, and any development investment would be shot once that happens.

That's just a lie. The forums are getting silly. The roadmap clearly says Symbian^2 will stay compatible with S60 apps.

And further, the apps that have really gone down well (because they have silly UI effects in them) have been Symbian native apps. Like Gravity. No java app ever caused a splash like Gravity. Same with Profimail, which doesn't even use S60.

Java = bargain basement.

Unregistered wrote:That's just a lie. The forums are getting silly. The roadmap clearly says Symbian^2 will stay compatible with S60 apps.

That's true. It's also true that the roadmap also clearly says that QT will replace the S60 UI in Symbian^3.

Java is being pushed by Nokia, and for good reason.

Jonnycat26 wrote:That's true. It's also true that the roadmap also clearly says that QT will replace the S60 UI in Symbian^3.

Java is being pushed by Nokia, and for good reason.

As a developer I see no push for java. I see widgets, but no java. If the popular Nokia supplied apps like sprot tracker, maps, photo browser beta, Ovi were java then I would agree. But they are not.

Jonnycat26 wrote:That's true. It's also true that the roadmap also clearly says that QT will replace the S60 UI in Symbian^3.

That will be "QT for S60" as Nokia call it. QT programming is done in C++. Java is there for convenience, PYS60 would make a better higher level partner for Nokias.