There was an interesting developer-oriented thread kicked off this week that a few of the regulars on the Carnival picked up. The topic was balancing optimization of mobile Java apps (so they run fast and within narrow memory constraints) versus the use of object oriented design (to improve maintainability, testability, and project agility). It started with this post at The anatomy of a project, which sparked observations here, here, and here.
The original post pretty much got recanted here, which wasn't really necessary as far as I was concerned, but underscored an important point: even in mobile devices with crawlingly slow processors, tiny memory resources, and mobile users that get restless if they must wait more than a few milliseconds for the next screen to display, optimization is not the be-all, end-all criterion for software design. Know the ways you can sacrifice good OO design to take care of a performance or memory hot spot. But don't start thinking of Java as if it were assembly language or you'll miss out on the advantages it still holds over C for many kinds of mobile development. For most applications, the critical performance issue in most areas of the application is how quickly you can produce bug-free software that delights the customer, not how many processor cycles you can save by cramming all your code into a single class with a few long, undecipherable methods. For that kind of performance, object oriented design principles are where it's at!
Posted by cervezas at 10:45:59. Filed under: Carnival of the Mobilists
Comments
Add Comment