Every now and then I stumble over BREW, an API for third party applicatins on mobile phones. Since it seems to be mostly implementend in CDMA phones in the U.S., I haven’t come into personal contact with it and thus always wondered what the difference is to Java ME. After doing some research it looks to me like they have one thing in common: They both offer a cross device environment to programs. Apart from this, however, there don’t seem to be many similarities. BREW supports several programing languages including Java (but with a different API from Jave ME) and C++. While programs developed with Java ME can be distributed without the consent of the operator, BREW applications need to be certified and can only be distributed by the operator. So the business model for developers is quite different since they need to make a deal with each network operator they want to deploy their application with. In addition, network operators have no obligation to distribute a program, so developers and users are at the full mercy of the operator. To me that does not only look like a walled garden but more like a closed fortress. An environment with a future?