10-22-2011 12:21 PM - edited 10-22-2011 12:24 PM
"If licensing were the issue, they could just come out and say that, and the pressure and odium would be on Oracle"
Never the way with RIM I'm afraid. Like many companies they rarely provide the real reasons for decisions. And I'm sure having to write API software factored into their decision and was seen as not strategically advantageous. Also, it's hardly a commercial positive to admit you can't afford to pay a license fee.
And bear in mind that the legacy QNX OS actually does have a J2SE JVM. The only explanation that makes an ounce of sense is that there is some commercial imperative that actually prevents RIM using their own Java VM. (Android uses Dalvik - check the reasons Google created Dalvik).
Coupled with the fact that BBOS apps don't look that bad, particularly when coupled with the new browser. If anything that's a good reason to question their pathetic public excuse. They're just pushing bullsh*t PR to the media.
The driving factor is licensing. RIM do a lot of business with Oracle and have development partner relationships. They're not about to upset a partner.
And there's always the chance Oracle may change their minds.
That's the gossip where I live anyway.
10-22-2011 07:52 PM
I've seen this speculation before that Java licensing cost is the reason for dropping BB Java support. But do we have any real evidence of this? Keep in mind that the cheapest phones around -- like my free Samsung T619 -- are in fact Java-licensed phones running J2ME. RIM's phones have long played in the low end market (the Curves and Pearls). Why would Java licensing costs be an issue for a higher margin, higher cost BBX superphone? I'm very skeptical of this theory unless I see any real evidence.
10-22-2011 09:03 PM - edited 10-22-2011 09:06 PM
I don't know what OS the Samsung T619 runs, but if it's Android - it's not J2ME - and if its Symbian or a similar earlier OS then the J2ME license is probably that negotiated with Sun. In other words the similar to that used by RIM for BlackBerry OS and the same minimal cost of licensing.
If you analyse the information available to us I don't believe any other solution than licensing makes sense. I certainly don't believe the story about "diminshed experience". Not as the sole driver of the decision anyway.
If "diminshed experience" was the reason, why are RIM not only punishing J2ME UI developers, but also those folks that already transitioned to WebWorks and who build Java based plugins on the BBOS platform? WebWorks is being pushed by RIM and yet those app developers that have already transitioned are now going to have to develop their plugins in Actionscript to run on BBX. Why not protect those folk by adding non-UI related Java API's at least to BBX to protect their investment in plugins.
And to those that claim it's the cost of building API's. How come building API's for Android was so easy and building API's for BlackBerry is not? Particularly when RIM has the C code used to build the API's in the first place.
Sorry but the only explanation that makes any sense is that transitioning the J2ME BBOS platform to QNX/BBX was disadvantageous for legal or financial reasons.
Consider that J2ME has a different license model to J2SE (or at least the Java mobile stack), and that the switch to BBX would inevitably require RIM to renegotiate its J2ME license. At present there are several legal cases in court brought by Oracle against Java license violaters, and the JCP has had high profile exits over the past couple of years because of Oracles stance since it bought Sun.
Furthermore, the license paid by RIM for J2ME prior to BBX was probably no more than $5 per device. The Symbian license was around $5 per device and that would have included Java. Oracle is suing Google for $20 per device. So RIM is probably being asked for at least $20 per device to license Java. At least a 400% increase. If RIM was to pay a significant fee per device their margines would be squeezed even more than at present.
It's true that there are technical reasons why J2ME is not a great solution (though there could have been a JCP replacement) but couple that with the financial and legal penalities and the decision becomes understandable.
For me the fact that RIM is perfectly happy to allow Java on the device for Android apps seals the argument. It suggests that RIM's motivation is down to an issue of competition and not one of technology. Because if Android manufacturers end up having to license Java from Oracle, RIM retains it's competitive position.
I'm not suggesting there is only one reason for the switch. There could be many factors. Certainly the cost of transition would have been one of those factors. I could be wrong but I believe the licensing issue is the significant driver and the straw that broke the camels back. The Java licensing battle overshadows the entire industry at boardroom level and could have remarkable effects on how companies provide solutions.
10-22-2011 09:51 PM
10-23-2011 01:10 AM
My Samsung is a cheapo dumbphone, of the flip type. It does indeed run J2ME, MIDP 2.0, not Android. That is precisely my point: if the world's cheapest phones can run with licensed Java, why should RIM's J2ME license be more expensive? Java licensing is dirt cheap or such cheap phones would not be possible. Speculation about "renegotiation" is not helpful either: you only need J2ME to run BB apps, and RIM already has that. You also read too much into the Google lawsuit: in lawsuits, the amount is normally absurdly inflated to intimidate the target and leave room for haggling. Moreover, Oracle knows very well that the BlackBerry is the only smartphone left running "real" Java. Driving RIM away is not rational. So no: I don't see licensing as a plausible reason, and nobody seems to have any real evidence beyond speculation.
Comparing Android with BBOS is comparing apples and oranges. Much of Android is implemented in C, Dalvik is designed to allow multiple VMs to run cheaply, and only application level code run in Dalvik. Android apps are relatively isolated as discrete processes. Each Android app starts up relatively cheaply on a Dalvik VM, and the APIs can be mapped to the native system code. With BBOS, as I said in my blog, most of it is actually written in Java, and system and application code run in the same honking VM. Unlike Android -- and this was touted in past DevCons as an advantage -- BB system code and application code mingle deeply. Android apps don't expect to participate in rendering your system menu, run regex on the message text that the user is viewing, hook into the phone app etc. This is what Super Apps means: all that mingling and trading of code across OS boundaries, deep integration, IPC and shared memory means apps basically need the huge BBOS system running alongside them. We all know how slow BBOS boots up: the thing is enormous.
I think the simplest explanation is that RIM tried to build Java compatibility and failed. They took one approach to build a BB Java player for Playbook, promised it to us, but never could get sufficient app compatibility and/or sufficient performance to be useful. Why do you think they never demoed it? There was probably a point where they realized they could not get a viable compatibility layer in place in time for BBX.
10-23-2011 02:25 AM
Sorry to continue debate on this. This is my last post on the subject. I'm sorry I'm so long winded, but this stuff is involved.
To be honest I'm not really guessing that licensing was a primary factor in the decision. I know it was. Obviously you don't have to believe me.
Your Samsung Java license on your phone with an older OS would have been negotiated with Sun, who issued perpetual licenses way back when at less than $5 a device. Just like RIM bought for BBOS in fact.
That license would have to be renegotiated when the JVM was created for a different operating system (e.g. BBX) with a new mobile stack. If you change OS you're going to have to write a new JVM to suit. And specifically in the case of RIM write a new mobile stack for QNX - whic therefore requires a new license.
Dalvik was designed specifically to get around Java licensing. And obviously in the process the designers of Java who worked for Google improved the performance. They created a non-standard JVM breaking all manner of standards and according to a US judge "blatantly" violating Java patents. Google claimed that Dalvik despite having a mobile stack does not violate patents. This I understand essentially is the root of the argument.
Complicating the Google/Oracle story is the fact the Eric Schmidt and James Gosling - both ex Sun - and Gosling in particular the creator of Java - now work for Google. Schmidt is famous for having left the board of Apple just before Android was launched - after which Steve Jobs threatened to destroy Android. I'm only writing this to demonstrate there's a massive power play going on in the industry with billions of dollars in intellectual property at stake.
I think its fairly clear that Google will lose to Oracle, or potentially settle out of court. And when they do they will pay around $1 billion in damages (based on the impact on Java standards). Oracle actually asked for an injunction to stop the sale of all Android devices. And I believe Oracles current claim is for $6 billion - but I may be off base. There's a lot of Android devices out there and they want $20 for each - plus $900 million damages.
For comparison consider RIM's payment of $600 million to NTP - a much less valid patent case - and for far fewer devices at the time.
Even Microsoft now receive a license from Samsung for every Android phone sold! (Over and above anything Oracle may receive) Android is on shaky ground despite its phenomenal success. Another reason I won't be writing Android specific Java code.
The base BBOS is not written in Java. It is written in C. Once upon a time, pre-Java you had all the base email etc functionality of a BlackBerry in a device running BBOS that had no Java on board. I was given one by my client at the time when I first started working with BlackBerry. The BBOS Java API's are JNI. I'll grant that a fair amount of function is delivered in Java. But the key elements of the OS are C. The latest OS take ages to boot up. Earlier OS didn't take near as long. RIM's J2ME implementation is Sun JVM - because legally that is required for mobile devices (just click Options - .... - About versions)
Super apps actually means leveraging the extensive BBOS API set in our own apps. It's a marketing concept adopted because Apple doesn't expose near as many API's and therefore can't have Super Apps (still doesn't in fact).
If the thousands of developers (around 5,000) - some of the best in the business - at RIM couldn't have adapted BBX so it could run our apps then there's no hope for the company. It really isn't that difficult. The reason they never demoed anything is because they've always known they had legal and licensing issues. There was no point in starting.
It's not that you don't make some valid points. But none of those reasons explain this:
QNX HAS A J2SE JVM. RIM didn't need to do anything to enable Java on the Playbook. They REMOVED JAVA from the Playbook QNX.
I'm not entirely sure why, but I'd guess they would have to rewrite the OS to work with the Playbook chipset and that would enforce new licensing. And perhaps they always knew they'd need a mobile stack and therefore incur additional license fees. Although I suppose they could have used Dalvik except that then their implementation code would have to be open sourced.
There are definitely some paradoxes in what RIM has done. The whole sage has the smell of RIMs legal department over it.
10-23-2011 04:39 AM - edited 10-23-2011 04:40 AM
@br14, that sounds reasonable, but if you are right, it means that RIM has lied to us from the very beginning. Call me naive, but I can't believe that RIM came up with that master plan to deceive us since the last DevCon. Moreover I don't believe that anyone in RIM is able to plan anything that long ahead, given the chaotic RIM movement in the last year - "let's release the PlayBook", "oh, no, stock is dropping, we need new phones!" etc.
My personal guess (and it helps me to keep some minimum confidence in RIM) is that it was combination from both legal and technical issues, and that the RIM Devs at least tried to create the BBOS player.
Anyway, whatever the reasons, Java for BB is dead. What do you guys plan to do? Would you stay with RIM or change the platform? And if you stay, which of the development environments would you choose?
10-23-2011 05:01 AM
It is interesting to consider whether they wanted to pay for the license, and I think you have good points, br14. No need to apologize, your responses are very interesting to read. I will try and explain another way of looking at this.
First consider what type of products C/C++, Flash, WebWorks, the Android player and Air can produce for BBX. Then consider what type of products can be made for BBX using Java. Given the quality of the newer dev tools and the large number of developers interested in them, it's quite easy to see that the Java apps would undersell the other apps by far.
If Java's license cost let's say $20/ device, and it cost another $10/device for RIM to maintain Java support on their end, RIM would have to ask themselves, are they going to make that $30 back? Given that BBX is going to get flooded with new C and Android apps, I really don't think they would get that $30 back in app sales. They would need to sell $100 in BB OS apps just to make the $30 back, generally speaking. This is an unlikely scenario - how many people purchase $100 of any type of app? Even if the Java license is $5/device, the money is still hard to make back.
When we are told the BBOS apps would offer a diminished experience, it's true if you are predicting that the C/C++, Android and the other newer tools will provide much larger sales. Customer's will vote for what experience they like with their credit cards.
10-23-2011 05:41 AM
@QuiteSimple - BBX sounds like a winner. Technically, I think the PlayBook is pretty much the best tablet on the market and it should do well. I imagine it will be quite easy to duplicate programs between the smartphones and PlayBook, so I'm all in. I just downloaded the PlayBook native SDK. I think RIM hit a grandslam home run with BBX.
I am going to continue to stick to developing primarily with RIM while slowly diversifying to other platforms. People say this to me all the time: "you develop for BlackBerry? Why don't you move over to Android or iPhone? " The answer is simple. Consider just the iPhone. There are 500,000 apps available for the iPhone. There are 50,000 or so on App World, if I am not mistaken. 13.2 million BlackBerry smartphones were sold last quarter, and approximately 19 million iPhones were sold. I really don't want to enter into a market where there's 500,000 apps. I see great opportunity in developing for the smaller stores.
At least half of my Java applications should be easy to port into C++. Luckily I design most of my applications so the business end is fully separate from the UI, specifically for situations like I am in now where I need to do an upgrade. I am going to work on getting a few of my bigger titles moved over to BBX.
10-23-2011 07:52 AM
BBX will be like Windows Phone, if it will have 5% of market share if will be lucky.
People buys iphone and android this days, this is what people want today and QNX has no weapons to make the big change.