Dr. GUI Gets Embedded

Dr. GUI

October 27, 1997

Not just for handheld PC's any more

Pssst . . . Dr. GUI's got a hot tip for you. No, it's not about the stock market. It's about programming. And opportunity. Here's the deal: If you've seen the first generation of handheld PC's, you might think that Windows CE is just for cute little handheld computers that replace your paper organizer. And you might not consider that a real exciting or profitable platform to program for.

But, with the release of Windows CE 2.0 (http://www.microsoft.com/windowsce/), Windows CE isn't just for handheld PC's anymore. Now, don't misunderstand: the good doctor dearly loves his handheld PC (between Dr. GUI and his partner, the GUI family has two of them). But as much as he loves it, he has to admit that it's a bit of a compromise. It's too big to carry effortlessly (although the good doctor now wears his on his belt, like he wore his scientific calculator in high school), and the keyboard's too small to type on easily. Dr. GUI's hoping lots of folks get Internet Explorer so he can afford the upcoming smaller devices—and maybe even the larger devices that have already been announced. (Remember that the good doctor gets paid with the profits from Internet Explorer—but he's not seen the first check yet, for some reason.)

Even today, there are a wide variety of apps available (http://www.microsoft.com/windowsce/hpc/partners/showcase.htm), ranging from games to specialized applications to Pocket Streets (http://microsoft.com/expedia/streets/pocket.htm), which allows you to download and view street maps of anywhere in the U.S. from Microsoft Expedia Streets 98. (It was handy to have a map of San Diego on my H/PC while there for the PDC last month.)

But what's really exciting is the release of Windows CE 2.0 as a modern, modular operating system for any embedded system you can imagine.

That means that you'll see it popping up everywhere—set-top boxes (WebTV will be using it in a future version), DVD players, game consoles (DirectX will be supported in a future version of Windows CE), and more. And many companies are working with Microsoft to support Windows CE development (http://microsoft.com/windowsce/developer/announce.htm).

So what's the opportunity?

Well, it's simple, really: with a lot of machines coming, there's a lot of opportunity to write killer applications for Windows CE devices of various types.

The add-ons for Visual C++ and Visual Basic are available in beta form for download today. (See http://www.microsoft.com/windowsce/developer/download/betainfo.htm) The beta of the add-on for Visual J++ is coming soon. The Visual C++ add-on supports Windows CE SDK programming in C/C++, MFC for Windows CE, and ATL for Windows CE. The Visual Basic add-on includes many of the standard Visual Basic ActiveX controls plus some special controls especially for Windows CE. And the Visual J++ add-on will support JDK 1.1 features plus special classes written specifically for Windows CE.

If that's not enough, MetroWerks has announced CodeWarrior for Windows CE (http://www.metrowerks.com/embedded/wince.html), to ship early next year. It will support both C/C++ and Java.

So there are gonna be lots of tools available—and probably at least one using your favorite programming language.

The best thing, of course, is that since Windows CE is part of the Windows family, you already know how to program it. Sure, there are some API differences, but they're minor compared with all of the conceptual knowledge of how Windows works that you already possess!

Roll your own!

But if you'd rather create your own Windows CE device, you can get a beta of the embedded system add-on today at a nominal charge for shipping and handling of the CD (http://www.microsoft.com/windowsce/developer/download/betainfo.htm). With this add-on, you can create custom versions of Windows CE for your own devices, and even prepare images so you can burn them into ROM and/or download into one of several hardware development platforms for testing. (Remember that Windows CE is modular—that means you can include only the modules you need for your hardware and applications—which lets you tune RAM and ROM requirements to your situation.)

If you're new to hardware and embedded systems, there's a huge list of technology partners who stand ready to help you create your system (http://www.microsoft.com/windowsce/developer/resources/techpart.htm).

By the way, Dr. GUI noticed that Windows CE isn't the only Microsoft operating system that you can use in embedded and dedicated systems: every Microsoft operating system from DOS to Windows 3.1x to Windows 95 to Windows NT is available! (See http://www.microsoft.com/embedded/) DOS and Windows 3.1 can even run from ROM, as can Windows CE. But Windows CE is the only 32-bit multitasking operating system that you can run from ROM so it's the operating system of choice for embedded systems. And its modular design and support for many types of processors makes it even more attractive.

Why CE 2.0 is cool

So why is the good doctor so hot on CE? Well, it's because it's cool—like NT, it was designed from the ground up to be a great 32-bit, multi-threaded, multitasking operating system. No 16-bit anything. No DOS nothing. No segment registers. Just a great operating system. With features like Unicode support, pre-emptive multitasking, memory protection, and a small footprint, it's the lightweight fun operating system you'd write if you had the time.

And, because it's simple yet powerful, it's just plain old fun to program for. Just like in the old days with DOS and Windows . . . except you don't have to muck with segment registers and TSRs any more. And you can distribute your first efforts as shareware on the Web nowadays rather than having to use floppy disks.

Where do I sign up?

That's easy: just download the add-on betas you'd like from Microsoft (http://www.microsoft.com/windowsce/developer/download/betainfo.htm).

Although the add-ons include an H/PC emulator that runs on your PC, you'll want to get at least one H/PC just so you see how your applications really run. (Low-power processors are a lot slower than the Pentium Pro on your desk is.) And you're in luck there: with new devices on the way, H/PC manufacturers have been selling first-generation H/PCs at fire-sale prices—Dr. GUI's seen them offered for as little as $69.95 (refurbished, and no, there aren't any left), although most have been in the $200–$400 range. All of these machines can be upgraded to Windows CE 2.0 later this year—sometimes at no charge. (Check to see what the deal is before you buy.) Casio's announced an especially cool deal in that their Windows CE 2.0 upgrade will come with an additional 2 MB of RAM—all for less than $100, and free if you bought a machine between September 8 and the end of the year.

Dr. GUI's noted only one gotcha: the tools require Windows NT 4.0 and 32 MB of memory. But haven't you wanted to upgrade anyway? I know it's time to add another 64 MB of memory to the desktop machines in the GUI household.

So will Windows CE be the next big thing? It might well be—and if it is, Windows programmers are well positioned to catch the wave. By getting a start on Windows CE now, you'll be even better positioned for success—and you'll have fun while you're at it.