Blackberry, the middle child
I’ve been immersed in Blackberry development for several weeks now. It’s an interesting platform, lost somewhere between the older platforms (like Palm and WinCE) and the newer ones (like iPhone and Android). While it has an extensive UI toolkit, most of the applications written for it are simple and uninspired. And while it’s a hugely popular platform, it has a grossly primitive filesystem,1 limited data storage choices,2 and a surprisingly sparse set of open source and commercial libraries.
Despite the platform’s limitations, it is a workable environment. It supports a large subset of the J2ME runtime and libraries, and it has a functioning set of development tools3. The most interesting thing about Blackberry development, however, is the lack of great documentation. Very few developers write about the platform. There are only a handful of specific Blackberry textbooks, and RIM’s own developer site is horrid. They have reorganized the developer site a number of times in the past few years (there are many dead links), its best documentation is hidden deep beyond its own search tools, and it lacks the sort of details needed to make good architectural decisions.4
The limited development environment and RIM’s position between the old and the new make it a risky platform. It’s obvious that RIM hopes to catch up with Apple, with their upcoming OS (4.7) and their new application store. I hope that they’re able to release the new OS before the end of next year, otherwise both Android and the iPhone OS will have left Blackberry in the dust, along with Palm, Symbian, and Windows Mobile.
- OS 4.1 through 4.5 are missing a seek() function, for example. ↩
- We’ve found two workable commercial data stores. Neither are particularly good, and one would not provide pricing. ↩
- Its development tools are nominally better than Palm’s, though they seem to suffer stability problems on Vista. ↩
- They have a few high-level overviews, but they lack concrete measures like performance, application guidelines, good overviews of various OS/environment revisions, and clear descriptions of the API subsystems. ↩

RSS![No comments [Comment]](/images/comment.png)
![[>>]](/wp-content/themes/warped/images/next.png)
