Its getting much easier to tailor an applications platform to the specific tasks of the target user. Ironically, such long-sought customization may no longer be a good idea.
What got me thinking about this possible paradox was a pair of news stories that praised almost opposite approaches to enabling device-oriented application developers. In one case, this past summer, Microsoft was announcing new customization opportunities for its Windows CE platform. Licensees for that embedded operating system were granted access to substantial portions of its source code: theyre not merely allowed, but encouraged to derive and ship customized versions of the system kernel, GUIs, file system, device drivers and Web server.
That message was reinforced by my conversation this past week with Microsofts Craig Symonds, general manager for the forthcoming Visual Studio 2005, who enthusiastically described the expanded support for non-traditional client devices in that much-awaited tool kit. I have previously praised the outstanding integration of Pocket PC application development and deployment into the current Visual Studio .Net product: Symonds assured me that the 2005 version would be even better, specifically in its ease of using the custom profile of a modified Windows CE configuration to generate a matching portfolio of Visual Studio 2005 tools and options.
This might sound like a total win: On odd-numbered days, I even think so myself. On even-numbered days, though, I notice things like last weeks Evans Data survey of developers targeting wireless devices, who are focusing to a greater degree than ever on J2ME (Java 2 Platform, Micro Edition). Notable in the Evans Data summary of survey results was the comment, "its more cost effective to develop J2ME-compliant code once, than to customize or re-write code for differing devices and operating systems." In addition to the Evans Data results, theres plenty of anecdotal support for the notion that J2ME is gaining momentum.
The irony gets really deep when you think about the way that Microsoft has defended the need for a rich, fully integrated Windows client that developers could target with the assurance that key capabilities would always be present. That proposition of knowing exactly what environment an application will find, and having a branding program that tells users that their purchased software will just run with no dramatics, is now exactly what Sun is promoting for the "Java Powered" logo. Whatever one might save in memory requirements or other hardware demands by tailoring a platform, one may lose in added effort of verification and support: Microsoft has long argued this in the desktop client space, and Sun now seems to be a convert in non-desktop markets.
Both Sun and Microsoft, though, should consider exactly what theyre getting into with a push toward the space where all software is supposed to "just work." Handheld devices, automotive entertainment and assistance consoles, and factory- and retail-floor devices all have one thing in common: They dont come with well-established user expectations that reboots will be routine. Embedded software developers have noted of late, though, that the reliability of their code falls far short of whats needed to cross the line from convenience to control of safety-critical features and behaviors.
Enterprise device and application vendors are increasingly prepared to cast their lot, it seems, with the Java platform, and are finding Java increasingly competitive with Microsoft in the all-important area of high-grade developer environments as Eclipse continues to mature.
Even so, Microsofts competitors consistently find that its a mistake to underestimate that companys prowess in propelling platform acceptance with superlative development tools.
Tell me what you want from your tools on new devices at firstname.lastname@example.org.
Check out eWEEK.coms Application Development Center for the latest news, reviews and analysis in programming environments and developer tools.