Customizing CE - a different look at Peter Coffee's recent article
I read Peter Coffee's eWeek article titled "Fine-Tuned to a Fault?" with interest today. Coffee takes a jab at Microsoft's opening of the CE source-code and their encouraging of hardware builders to customize the OS. He contrasts this strategy with Sun's JavaME one-size-fits-all-approach and finds it lacking (to be fair he rides the fence through most of the article). Coffee pushes further saying that a survey of developers targeting wireless devices are "focusing to a greater degree than ever on J2ME ". He then backs it up with the non-quote of the year from the survey - "it's more cost effective to develop J2ME-compliant code once, than to customize or re-write code for differing devices and operating systems." The problem I have with Coffee's article is that he fails to look at the embedded market in it's entirety. It appears that Coffee sees the entire embedded market revolving around cell phones.
I spent a number of years around the embedded space and it is truly a different space from the world of mainstream OS's. The high-volume opportunities in the embedded space are the small controls that are all around us - some examples of these types of controls include lighting, security and HVAC. These controls are not only competing against other "smart controls", but against conventional controls as well. In short there are serious cost constraints in this market. If someone wants to gain ground with a standardized OS in this space, they must understand and respond to this market reality.
To understand the situation, take a small controller that has a cost target of, say, $20. Now, let's say my OS of choice has built-in and required VGA support that my controller does not need/use. This requirement imposes additional circuitry and memory on the controller that (1) increases physical size and (2) increases cost. If the component cost is merely $2 in bulk, that's still 10% of my budget and generally unacceptable. This is why custom-made operating systems still dominate the market today- custom OS's can fit the controller configuration and the development cost is amortized over the life of the product.
I think Microsoft's approach is unique and interesting- allowing for customization of the OS and generating a development tool-set that matches the controller configuration. Microsoft is the biggest player taking this angle and it possibly gives them a way to get into the high-volume embedded controller market. My read is that Microsoft is being aggressive and responding to their intended market. That said, I have no idea if this is Microsoft's desire or intent - I'm simply not privy to that information. It will be interesting to see how this approach plays out.