Originally Posted by
dkonigs It took me a long time to get to the end of this thread, since its just flying by. But the issue you're all complaining about is really a side-effect of the architecture of the BlackBerry phone platform (hardware and software), which has been pushed far beyond its initial design.
These phones basically have 3 kinds of "memory":
1) RAM (technically DRAM, only keeps contents when it has power)
2) "Application Memory" (what we're always complaining about)
3) Mass storage (built-in eMMC on some models, SDCards, etc.)
#2 and #3 are physically separate areas on the hardware, and you can see this if you search out block diagrams of older phones. Its not some arbitrary "partition" as some keep speculating. I also think the "Application Memory" is actually specialized high-speed flash, and costs a lot more than the rest of the flash used for mass storage.
While I don't know much about the internals of the BlackBerry OS, I strongly suspect that its actually running the app code directly out of the "Application Memory". (Instead of copying it into a RAM segment first, then executing out of RAM, like your PC does.) This design probably made sense in the early days of BlackBerry OS, since it allows more apps to be running simultaneously on a device with limited RAM. (Note that the real reason the original iPhone didn't multi-task was probably due to the fact that it didn't have a lot of RAM.) Today, an approach where apps run out of RAM (and are kept on the eMMC/SDCard) would probably make you happy. However, the eMMC/SDCard is probably too slow or simply too architecturally detached from the JVM to run apps directly from. There's also performance considerations, especially with big-and-slow flash, for which you'd implement caching with extra RAM.
Now, a modern OS would do all of this magic, and wouldn't have special "application memory". It would simply have a filesystem on flash, where each app can have its executable code and its data as separate files. None of these complaints would exist, assuming they solved performance problems with caching. This is how Android (Linux-based) and iOS (OSX-based) work.
But remember, the current BlackBerry OS was designed with very different hardware considerations in mind. To get where we want, they'd have to rewrite a lot of the core parts of the operating system. You know, the bits they probably didn't even touch when going from OS 4.0 to 7.0. (And probably were afraid to touch, for fear of breaking something.)