Username or EmailPassword
I applaud RIM for trying so hard with OS 6, but at this point they are still years behind even Nokia when it comes to good smartphone interfaces. Granted, I love my Curve 8520, but I also resign myself to its limitations. I'm used to the BlackBerry interface and I personally enjoy its complexity, if only for the wealth of options, settings and tweaks available. What I don't enjoy is the substandard browser, the fact that most GSM RIM devices are still EDGE only, and the severe lack of quality apps.
I still think RIM should embrace the Android OS and put their own superb email and networking technologies on top of it. The current RIM phones are more than capable of running Android, and to me it just seems to be a no-brainer.
Wow, someone really doesn't like Android.
You know, Android really is a great all-around smartphone OS; the "hipster" social networking tools are all carrier or manufacturer addons. The base OS is a great launching ground for whatever end use a company might envision for it. Given that BlackBerry and WinMo are going the way of the media/social trend with their respective new OSes, I'd say vanilla Android is perhaps the most mature of the bunch these days.
The problem is finding a phone with vanilla Android and no SenseUI/MotoBlur/TouchFlo or other nonsense.
<wrong thread> Edited 2010-07-26 04:30 UTC
I'll keep complaining about lack of C/C++ API, It has been shown to no end that the quality of applications in devices that support C/C++ far exceed the quality of applications in Java phones.
Blackberry hardware is great, the apps don't make justice to it and the app store is a joke..
Sorry, but C/C++ programmers are better than Java programmers, since most of Java programmers do develop in C/C++ too.
C/C++ will rock your world.
What ? I don't know if you realize that win 95 was written by c developers, when it was king of the programming heap. That was fun. Man, those guys never screw up! And did I mention the absolute lack of any deeply nested security issues in c code? /sarcasam
c. c++ are more difficult to master, but prone to abuse by people who kinda think they know what they are doing. And since they are more powerful languages, the results of the ignorance are worse.
C/C++ are not difficult to master.
At some point two reasonable people just have to agree to disagree. I think we have reached that point.
No I would think it may still be with the API.
Java is a good language. In many ways much better then the Cs ... However for innovative application development it falls a bit short as its robust API becomes more of a hinderance to design then an advantage. Sometimes you will need to go back to the core and rebuild a new library especially if you are doing something new.
Java API is still strongly based on Desktop Applications (which is ironic as Java was first designed for imbedded devices) Phones and mobile devices needs different UI many of which Java isn't strong at. C being a lower level language forces you to make the UI again but allows you to handle it with the new interface methods.
I think it has to do more with performance, resource usage, etc.
Even if the quality of Java programmers was superior, there is a big limit on how you can take advantage of the hardware when using Java.. Maybe simple apps like a facebook client are fine, but anything that stresses cpu, graphics, 3D, audio, etc is impossible.
From what I've seen of Android devices lately, that trend may be changing. I've seen some impressive Java apps on Android, approaching the level of some of the best iOS apps.
I think the problem is more of a lack of dedicated and talented programmers for the BlackBerry platform. The language itself isn't necessarily to blame.
Android allows C/C++ too. Blackberry is the only smartphone that doesnt and the quality of the apps is proof of how bad that decision was.
Disclaimer: I have not yet reviewed the BB OS6 as I now develop on Android but I am very familiar with the BB API from 4.0 up to 5.0.
Unlike most of the people who have commented I've done a lot of actual BB development as well as a lot of other mobile development and the issue isn't C/C++ vs Java. The problem with the BB is the API and the absolutely atrocious documentation and development tools available to BB developers.
Unlike the iPhone or Android the API to draw anything more sophisticated than extremely basic and ugly controls you have to override and implement them yourselves by drawing directly to a graphics context object. Not only that but you also need to figure out their half ass documented event API which involves creating as bunch of anonymous inner classes to handle actions, focus events and touch events. The whole API as it stands leads to a lot of untestable massive classes for most programmers because a lot of people I see writing BB apps are nothing more than hackers who wouldn't know object orientation, code separation, testability if it bit them in the ass. Not to mention the examples presented in the RIM docs are of the basic hello world complexity. Hell the docs actually discourage the use of interfaces and recommend you use as many static methods as possible.
Now on the iPhone and Android side of the fence you see complete integrated IDEs. Full debugging, unit testing using modern IDEs like Eclipse and XCode. The RIM IDE is horrendous. It makes turbo pascal 5.0 look modern. Or if you want to use their Eclipse plugin expect to have 2 minute launch times for your simulator. And good luck trying to debug with an actual device without pulling out your hair. Hell even including an external library can take a beginner hours of scanning through forums and asking a non existent IRC community for help. Lord knows RIM won't help you.
Then there's the data storage issue. iPhone and Android support SQLite (I know 5.0 does support SQLite but the last app I wrote was completed last February and to this day 90% of devices are on 4.x so using SQLite wasn't an option). So on BB you need to create your own record model and deal with persistence yourselves. Not to mention the complexity of having to work with object handle limits and then object pools to overcome those limits.
So basically to write the same app in BB as on iPhone or Android you need to spend a lot of extra time meticulously separating your code into a good structure that is almost counterintuitive to the way the API is structured. Android and iPhone impose a solid MVC type structure upon your apps. You'll also need to create your own set of custom controls that are supplied for you for free in iPhone and Android. Then you need to figure out how to deal with the event model which needs to work for touch, trackpad and track ball navigation. And finally you need to write your very own persistence layer and implement your own searching, filtering etc... all of which if you were on iPhone or Android you would get for free in a standard SQL database.
So basically the same app on BB will take 3 to 4 times the resources to build and if you don't have a competent developer with a lot of experience it will suck anyways.
So regardless of the language your using the true problems exist because RIM has done the minimum possible to support anything but the most basic of app development for several years. Maybe 6.0 will address a lot of theses issues but we will still need to wait at least another 3 years until the majority of BB devices run 6.0 so if you want to write a BB app that targets more than just a few new BBs you better stick on 4.x and all the restrictions I just mentioned.