What causes bad performance in consumer apps?
        Posted  
        
            by 
                Crashworks
            
        on Programmers
        
        See other posts from Programmers
        
            or by Crashworks
        
        
        
        Published on 2011-06-21T23:37:14Z
        Indexed on 
            2011/06/22
            0:31 UTC
        
        
        Read the original article
        Hit count: 539
        
Performance
My Comcast DVR takes at least three seconds to respond to every remote control keypress, making the simple task of watching television into a frustrating button-mashing experience. My iPhone takes at least fifteen seconds to display text messages and crashes ¼ of the times I try to bring up the iPad app; simply receiving and reading an email often takes well over a minute. Even the navcom in my car has mushy and unresponsive controls, often swallowing successive inputs if I make them less than a few seconds apart.
These are all fixed-hardware end-consumer appliances for which usability should be paramount, and yet they all fail at basic responsiveness and latency. Their software is just too slow.
What's behind this? Is it a technical problem, or a social one? Who or what is responsible?
Is it because these were all written in managed, garbage-collected languages rather than native code? Is it the individual programmers who wrote the software for these devices? In all of these cases the app developers knew exactly what hardware platform they were targeting and what its capabilities were; did they not take it into account? Is it the guy who goes around repeating "optimization is the root of all evil," did he lead them astray? Was it a mentality of "oh it's just an additional 100ms" each time until all those milliseconds add up to minutes? Is it my fault, for having bought these products in the first place?
This is a subjective question, with no single answer, but I'm often frustrated to see so many answers here saying "oh, don't worry about code speed, performance doesn't matter" when clearly at some point it does matter for the end-user who gets stuck with a slow, unresponsive, awful experience.
So, at what point did things go wrong for these products? What can we as programmers do to avoid inflicting this pain on our own customers?
© Programmers or respective owner