Dan Wineman, a developer with Rogue Amoeba, has posted an interesting article on the company blog. I'm a big fan of developers who can explain things clearly to non-developers without sounding condescending, and Dan does a great job covering how the limited version of multitasking available in iOS 4 poses a problem for Airfoil Speakers Touch.
For those who aren't familiar with Airfoil, it is Rogue Amoeba's program for Windows and Mac which allows you to send audio to AirPort Express units, Apple TVs, and iOS devices. Previously it was of limited use for iPhone and iPod touch owners because you had to keep the app running in the foreground for the audio to play.
While Dan said that adding background audio was easy, there were deeper issues involving how iOS 4 manages background processes, especially due to how Airfoil works on the network. It's a good read.
Even as a non-programmer, I'm fascinated by the attention to detail that good programmers go into to make sure their applications work, especially when dealing with limited "resources" like you'd find in mobile devices. Remember when it seemed that CPU speed, RAM, disk space, and bandwidth were not going to be limiting factors anymore because desktop computers kept growing and growing and dial-up Internet access was being replaced by DSL and cable? Then along come mobile devices which brought back all of those limits. Although, it's worth noting that the average cell phone has more processing power than the Apollo computers, so I guess limitations are relative.