Is Windows CE Microsoft's Java Killer?

Terence Goggin ( Dr. CE )

When railroads started in this country, there were many different kinds of gauge (or track size) in use. Every company used a different gauge track. Therefore, travelers who wanted to go any real distance would have to get on a train for a short while, switch to a different train, then ride that train for a short while, switch trains again, and so on until they reached their final destination.

As you can imagine, this made traveling by train a real chore.

Eventually, someone realized that if the railroads wanted to make serious money, they would have to standardize on one track size so that passengers and freight could go across the country without having to change trains even once. Of course, when they finally made this change, it was a huge boon to the railroad industry and an indispensable step.

In many ways, software is at the same place as the railroads were before they standardized on a common track size. For a long time, it's been standard practice to write one program for a Windows 95 machine, and another program for a Macintosh machine, etc., etc. Lately, though, rising costs and other pressures have caused the software industry to rethink this practice and look for ways to write just one program and have it run anywhere.

In many ways, it was Java that inspired this change of thought. You'll recall that Java's main promise was "write once, run anywhere" technology that would allow developers to do just that ­ write one program and have it run successfully on any machine. However, for a variety of reasons ­ some technical, some political ­ it doesn't look like Java will deliver on this promise.

The good news though is that Microsoft appears to be readying a working "write once, run anywhere" solution that involves positioning Windows CE as the "Java Killer."

Common Executable Format

At the recent Windows CE Developers' Conference, Microsoft announced a new technology called the Common Executable Format, or CEF. Currently, when developers write programs for Windows CE, they have to make a separate version of their program for each of the CPUs that might be powering a Windows CE device. CEF is a way for developers to create just one version of their program that runs on any CE device, regardless of which CPU is inside. Essentially, at this level CEF is a "write once, run on any CE device" technology.

This is where it gets interesting... Although most people don't know it, you can already run some Windows CE applications on any Windows NT machine! This is possible thanks to an emulator ­ a special developer's tool that allows a Windows NT machine to pretend to be a Windows CE machine so developers can more easily test and debug their software. (You'll note that Java works in essentially the same way; it helps your machine pretend to be a Java machine so that you can run Java applications.)

The only drawback to the CE emulator is that until now, due to the way Windows CE stores text characters, only people with high-end NT machines could use the emulator to run CE applications. Therefore, compatibility was somewhat limited.

The good news, though, is that the NT-only limitation will disappear with the release of Windows 2000.

Because Windows 2000 stores text characters in exactly the same format as Windows CE uses, soon everyone will be able to run the CE emulator ­ and therefore, Windows CE applications ­ right on their desktop machines.

So, where will Microsoft go with this amazing convergence of disparate technologies?

Microsoft needs a Java Killer

If these related technologies are implemented just right, Windows CE will be a very serious threat to Java. I believe that very shortly Microsoft will be embedding a Windows CE emulator inside their web browser, allowing anyone to run a CE application over the Internet. For example, developers will be able to create one program and have it act as an internet-based application (much like a Java applet) or as a stand-alone application for handheld and palm-size devices. This is a very powerful advantage for developers because they can leverage their existing knowledge of Windows and Windows CE to create Internet-based applications. In addition, it means a shorter development time, as they only have to create one version of their program. Finally, it means that developers do not have to master Java in order to create decent, easy to use Internet-based applications.

It isn't exactly a "run anywhere" solution, but it's getting awfully close.

Until next time... *

[This is the first in a regular series of columns by Terence "Dr. CE" Goggin that will look at Windows CE developments and how they will affect PC Companion users, Windows CE developers, and the world of handheld computing. We'd like to welcome Terence aboard Handheld PC Magazine and look forward to his contributions ­ Rich Hall.]

Terence "Dr. CE" Goggin, author of The Windows CE Developer's Handbook and a recognized Windows CE expert, has written numerous books and articles on Windows programming and the Internet. He is a Los Angeles-based consultant specializing in Windows CE solutions. You can e-mail Terence at terenceg@doctorce.com, or visit his Web site at www.doctorce.com

Copyright © CompanyLongName