An incomprehensive list of reasons why RIM strikes fear in the hearts of a developer wanting to write an application for BlackBerry devices:

No visual layout editor

Admittedly, this one turns out not to be the Big Deal that you would think, but for a novice developer it is a challenge to overcome.  If you have a background in developing webpages with a text editor you will probably feel at home (or a neighbor’s at the very least) with their model of design.  Rather than having a nice GUI for dragging around components, you create your layouts directly in the code with no visual cue on how it will look until you compile and run.

Once you become familiar with Managers and Fields, you realize that it’s easier than your initial glance made it out to be.  As you gain experience with creating custom components, you can finally start making applications that don’t look awful – let’s be honest, the out-of-the-box UI that developers are supplied with is ugly.

Everything is custom

It isn’t just the UI that needs customized.  RIM has its own special blend of Java that isn’t quite J2ME, but is close enough that you find yourself looking for components that just don’t exist for it. That being said, it isn’t a surprise that a lot of the libraries out there for J2ME development won’t work so you’re stuck creating your own.  If you want an application that has any potential to be great, you’re making half of it from base classes.

The kitchen versus the farm

Developing for iOS and Android is akin to being given a chef’s kitchen, ingredients laid out and chopped, and being asked to prepare a lunch of sandwiches and soup.  BlackBerry, on the other hand, gives you a hoe, seeds, and fertilizer and asks for a buffet.  Tomorrow.  My point is that you are given the tools to accomplish the same task; the problem is that you have a few extra steps between the start of a project and the end as you create your own utility classes and UI elements that come out of the box for the other two.

Many devices, many carriers

Granted this isn’t a problem that BlackBerry alone faces, but since they do have a wide variety of devices on carriers world-wide, unforeseen problems are going to happen.  They will, and don’t kid yourself otherwise.  Screen resolution, input hardware, and carrier capabilities are just a few of the hurdles you will be jumping on the way to the finish line. Do a search for something that should be as easy as making an HTTP connection and you’ll get over 3 million results. Oh, and most of them won’t work in Europe.

QNX

The PlayBook is the first device from RIM to use the QNX operating system instead of the BlackBerry OS, with the possibility that it will be used on future phones as well. One of the highlights of this switch is that Android apps will eventually be able to run on their tablet.  Short-term this is probably a plus for the adoption of the PlayBook as it will open up a large number of applications that can run on it, however in the end it is only going to lead developers to ask the question “Why should I write an app specifically for BlackBerry?”