05-11-2011 10:35 PM
We know the PlayBook story by now. Tablet OS is based on QNX, which will also be the foundation of BB phones in the future. I assume RIM will try to unify the development environment for both tablet and phone environments. We know PlayBook supports Flash and web development, with native and Android support on the way. Coming in last on the PlayBook is support for BB Java apps.
So ... what are your thoughts on the future of BB Java development? It does not seem to be the highest priority development platform for RIM. I'm not sure that it will be supported as a first-class target for QNX-based phones. Would you transition to Android code, which has the advantage of working on more than one hardware platform?
05-11-2011 11:08 PM
What P*ss me off the most is RIm's lack of respect for royal BB developers. If the QNX powered smartphones will support android apps this will kill bb development at together. there is no need for BB developers because there millions of free Android apps. there is no news on java sdk for PB
05-12-2011 05:21 AM - edited 05-12-2011 03:16 PM
Very good question and one that I have been pondering. Obviously my job is on the line here ....
The short answer, in my opinion, is when RIM releases QNX phones, then the Java platform becomes 'legacy'. In other words, there will still be a lot of work around because there are loads of existing Blackberry users but the new and exciting development will be in QNX.
This is a good thing.
Even I, as a die hard BlackBerry Java developer recognize the issues with this current platform compared with more recently developed platforms. The memory model that the BlackBerry uses was appropriate 5 years ago when flash memory was very expensive, but not now when you can buy 4GB for £5. The Ui controls where perfect for a small color screen, but make pretty Ui's complicated to create on a new large format touch screen. Times move on.
So RIM had to make a decision, evolution or revolution? They have chosen revolution. I am sure that they did this with the knowledge that it would impact developers like ourselves. And even though my job is on the line, I would have made the same decision.
So what does it mean for us?
Well I can't say what it means for you, but I'm happy to share my plans. But remember I work mainly in the corporate world. So this might not apply so much to consumer developers.
I have tried to develop for the PB using Adobe Air. I have looked at WebWorks. I could not program the apps that I currently program using these tools. And unfortunately, I'm a low level programmer, I like to have the best integration and the best control I can. I've even programmed in assembler. Sad I know ....
So as soon as the C++ NDK is available, I'm going to be all over it like a rash. Not to develop for the PlayBook. But to develop for the phones. Of course I will start with the PB because that is the only one available.
And what about Java? Well, the PB App player will run Android apps and Blackberry apps. But it is going to be restricted set of Android Apps, so I'm not going to rush to develop Android. I'm guessing there will a strong market for BlackBerry apps that work on both platforms as users and corporates move from old Java to new QNX phones.
So I'm excited. I'm going to be learning a new language, a new environment and I will get to play in a sandbox that was designed this century rather than fighting with one that is based on Java from last century.
I hope you are too.
And just to clarify, I am independent, I do not work for RIM, nor have I discussed this with anyone from RIM. This is all just my opinion.
Now to respond to a few points that have been made:
"I'm not sure that it will be supported as a first-class target for QNX-based phones."
It would surprise me if the Blackberry Java integration is not at least as good as the Android. And it will be a more recent level of OS. I think corporates are a big market for RIM, corporates will want to migrate existing applications, so this has got to work.
"royal BB developers"
Can I be a Duke!
05-12-2011 05:31 AM
strange, i posted something much along peters line with quick reply, but it got gobbled up by the forum.
i don't think i'll move to c++, only if it is really necessary. i think RIM will offer a good java or bb-sdk integration, but we'll see how it turns out.
I don't like webworks etc too, it may be nice for some casual apps but it does seldom fit our needs.
The step to QNX was the right descision, and while the BB SDK has many nice features there are also some shortcomings, mainly all of them related to J2ME, a specification from the last century, targeted at early java mobiles.
Interesting times ahead, but i don't see my job in danger. It would be worse if RIM would be left behind by the innovations apple and google/android have developed!
05-12-2011 06:35 AM - edited 05-12-2011 06:38 AM
From all the talks with RIM guys and Sessions at BB World... While they did not flat out say it, it was implied that BB Java is by far the least preferred method of development for the QNX Platform. Native OS and Air felt the most polished and completed (They have one thing in common, they use non-RIM developed tools).
WebWorks.... I'm on the fence. After lengthy talk with Tim Niel, he got me convinced that it is a viable platform and is fully capable of replicating nearly everything that Java is able to do, but I was not convinced that it was worth my time learning it. It was also less integrated then native.
At this point, personally, I will wait for NDK and use that. As far as supporting Playbook for our products... hard to tell. It's tempting to wait for Android/BB Java support and see how apps run. I, from few opinions from RIM guys at BB world, felt that NDK was the flagship product, followed by Air and everything else somewhere behind... some further than others. BB Java platform felt like a red headed step child that was only added out of legacy concerns.
Either way a lot of it felt "unfinished". I think given another year... this will become a great dev environment with lots of options. Right now the options are fairly limited.
05-12-2011 09:22 AM
I think the risk with using the NDK is that there is no guarantee this will be available on the next-gen QNX phones. We only know that it applies to the PlayBook's Tablet OS. Did you hear anything different? The other thing is that after being pampered by Java, going back to C/C++ with no garbage collection feels like going back to an uncivilized world. Yuck.
I hope Java in some form will be supported in the QNX phones, maybe a full J2SE implementation. The API might change, and if that API turns out to be Android, that would make life ... interesting. I wish RIM would give us more hints about the future of BBOS.
05-12-2011 11:52 AM
I think these changes are fascinating. They say history repeats itself, and in this case it certainly does!
Anyone remember back in the early 2000's when RIM switched from a C++ SDK to the JDK? I do. It was a painful transition and quite honestly they lost me a developer for some 4 or 5 years. The (at the time) new Java SDK sucked compared to the C++ sdk. It offered only a fraction of the capabilities that the C++ SDK did. Additionally, the development environment changed from MS Visual Studio to the JDE, which was slow and frustratingly similiar-but-not-similiar-enough to Visual studio.
At the time it made perfect sense for RIM as they worked to bring in the 'hordes of java developers'. Java J2ME was the hot platform for mobile and everyone agreed it was the future of mobile development. Everyone who developed using the C++ sdk felt threatened by the new and sudden surge of new development talent.
Some held on to the old ways of development and refused to move to the new platform (and devices) but they were quickly left behind as this particular change was a 'line in the sand' that couldn't be crossed at all. With the QNX change it seems like there will be the BB Java player so development using the JDK could go forward.
Eventually however, the JDK was grown until the featureset was complete and everyone forgot about the original C++ sdk. Some good developers were left behind, but many more good developers became part of the niche and community.
Now history has come full circle and here we are at a transition and moving back to a C++ sdk and all everyone is worried that the sky might be falling. The irony is hilarious.
This transition isn't the same however. Now we have the WebWorks, AIR, Android and C++ envorinments ALL positioned to threaten Java development. At the same time though, I don't think there will be a hard barrier like last time. I think that Java Development will continue to be a viable platform for some time to come.
Also consider that the AIR platform is incredibly weak right now. Like the early JDK, it will take some time before it is grown enough to become a truly viable platform. WebWorks as an advantage, at the moment, but I think the Air capabilities will grow much more quickly than WebWorks has.
Obviously, not all development platforms are given the same priority as well. We already see how the JDK gets updated first and WebWorks second. The real question is, which platform will become the dominant platform, and I believe that the NDK will be that platform.
So what does it all mean?
I believe that RIM will continue to keep the multi-pronged approach to development. They will continue to support as many development environments as possible in order to get as many apps and developers as possible, so I don't believe that any platform will be thrown out any time soon.
We know that the QNX for smartphones is AT LEAST a year away, so if you want to target phones, it's still JDK or WW. I believe the JDK player will be available for phones once the new OS is out, so the shelf-life for apps made in these environments will be long enough that you don't need to worry about it right now. At least 3 years I think.
I believe that once the QNX for phones are out though, the NDK will become the dominant platform, but remember, C++ is really low level. I think AIR will be the new 'high level' coding development platform being pushed simply because the API and components are so much better designed. HTML/CSS will be the 'high level' non-coding platform and will always have inferior capabilities to the AIR platform.
That puts Java dead last. I don't think it will get phased out right away, but do think it will get phased out eventually. The mere fact that it must run inside a 'player' will make it inferior to AIR. Also the GUI components just aren't as flexible as any other environment.
_IF_ they decide to fix the 'player' problem AND replace all of the existing component GUI components with solid well designed flexible ones, the Java platform may find a home as an equal alternative to AIR. And it just might happen. RIM wants as many developers as possible.
But don't get your nose all bent out of shape because there are changes coming. Yes, they will be painful. And confusing. And scary. But RIM is going to do what's best for RIM, not you. Everyone can get fired at some time. Thanks for your loyal service for all those years. Hope you enjoyed the paycheck. Have a nice fake-gold watch. See ya.
05-12-2011 12:19 PM
I have tried to develop for the PB using Adobe Air. I have looked at WebWorks. I could not program the apps that I currently program using these tools. And unfortunately, I'm a low level programmer, I like to have the best integration and the best control I can. I've even programmed in assembly. Sad I know .... So as soon as the C++ NDK is available, I'm going to be all over it like a rash. Not to develop for the PlayBook. But to develop for the phones. Of course I will start with the PB because that is the only one available.
My thoughts exactly.
05-13-2011 11:12 AM
Another sign of RIM's priorities: Java apps are not eligible for most of the contests in this year's BlackBerry Developer Challenge. The only category where you will be able to submit a Java app is if you write something BBM-specific. Otherwise, only WebWorks and Air apps are eligible.