A lot of manufacturers choose WinCE for political reasons-- rather than technical ones. If you are ever working on a project that requires a GUI, file-system, and Ethernet connectivity, please don't use WinCE (unless you are forced to). There are many paths that lead to the same destination, but some of those paths are the dumbest way to go. For the executives reading the Microsoft sales brochures, WinCE sounds like a dream-- [paraphrasing]: "Practically everything is already done for you-- just install it, and wham! Now you can hire Windows programmers that know absolutely nothing about embedded systems programming, and have your product ready in half the time!" The reality is that no, you still have to hire embedded systems programmers that know what the hell they are doing, and because you have now added many layers of over-bloated code, the memory size and boot-times are going to be much bigger, and the firmware project is going to take 3-5 times as long (in my experience-- I've only worked on 5 projects involving WinCE before I gave up on it forever).
PLEASE-- FRIENDS DON'T LET FRIENDS DESIGN EMBEDDED SYSTEMS WITH WINDOWS !!!
And Agilent (I know you are reading this thread)-- you should be ashamed.
QUIT BASHING WINCE!!! We all hate Microsoft, but give some credit where credit is due!
Decisions for choosing an OS for a product is not made on a whim, particularly if it impacts a good portion of the products developed and supported by a company for a period of 10 to 20 years. Agilent most likely made the decision for their future instruments back around 2004 or 2005. Back then, before Android, iPad, iPhone, and smartphones, the choices were much different than they are today. Blackberrys had 2 line LCD screens, the Palm Pilot had a green backlit monochrome screen, the iPod had a white monochrome screen with the click wheel, and Microsoft had WinCE, which had full color graphic touchscreen support, Ethernet, WiFi, Bluetooth, USB, etc. The first smartphones and tablets (PDAs) ran WinCE. The first competitor to WinCE based smartphones was the Palm Treo, which became quite popular, but it was Palm proprietary, had no support for Ethernet or WIFI, and very limited 3rd party app support.
Where was embedded Linux back then? Back then, embedded Linux distros were basically ports from desktop distros, with limited peripheral support, very limited graphics support, poor GUI, no low power management, very limited non-PC hardware support, etc. If you wanted a BSP, and perhaps some form of support, your only options were to go with MontaVista, LynuxWorks, or TimeSys, which were exorbitantly expensive. The development tools were around $80k USD per seat, with licensing easily exceeding $120k for the OS and a few options like video display, USB, and Ethernet. Also the licensing model was tied to end product model number and single binary. If you developed a whole product family, then you would multiply the licensing cost by the number of products, plus you had a 20% annual maintenance fee. So for Agilent to choose Linux back than, they would have to shell out several $M easily on just the OS plus the 20% maintenance for the next 10 or more years.
That would have been half the problem, but GUI for Linux was simply not a priority. Most Linux hackers back then did their entire development using a text only screen. Yes, they booted their workstation to Linux console and would never run a GUI desktop. GUIs were for sissies, or lamers as some of my coworkers would call them. Real programmers used vi and make files, not IDEs. The Linux GUIs back then were all based on X-Windows, which worked very well for remote logins, but was very inefficient for an embedded type GUI, plus the fonts and dialog boxes were usually misaligned, and no touchscreen support.
Embedded Linux was used very successfully in stuff like network equipment, routers, gateways, servers, NAS, etc. These devices needed the network support and file system of a full fledged OS, but didn’t care for a GUI. Most of these devices would have a few push buttons and 2 or 4 line LCD screens on the front panel for displaying status.
By contrast, WinCE Platform Builder was ~$1k USD, and that included the BSP and all the tools needed for development. The licensing model was based on stickers that needed to be purchased for each shipped unit and ranged between $10 to $30 each in low volumes with volume discounts. Microsoft offered support for over 30 different processors, plus all of the major vendors back then had a WinCE BSP to support the specific peripherals for their SoC MCUs. For 3rd party support, there was Adeneo and BSquare, which developed BSPs for many of the MCU vendors as well as offered design services. Remote debugging WinCE on the device was over Ethernet and worked just like debugging any application in Visual Studio. Pressing F5 would build your WinCE app, download it to your device, and start execution. You could step through code and set breakpoints, and view variables and stack just as easily as debugging any desktop application. By contrast, on Linux you would run make files in the console, then use a $20k JTag pod to download your application, and then run console GDB, and have fun decoding hex addresses and values. Take your pick.
As for WinCE taking a long time to boot – Toradex have been able to offer an ARM SOM running WinCE 7 that boots in less than 500ms. It does a full cold boot to GUI in about the time it takes to press the power switch. I have yet to see an embedded Linux board boots that fast.
That was then. Today, Microsoft is not the same company it once was, and the new management geniuses are hard at work to make sure it will never be. Today most of the major ARM MCU vendors provide free of charge embedded Linux BSPs with full support for all of their onchip peripherals. There is Android and QT for GUI development. You still have to buy the development tools, but the competition has driven the prices down to more justifiable levels.
Where are the Microsoft programmers today that developed WinCE? They quit in frustration and went to work for Google to develop Android.
While I agree that the days for Microsoft are numbered (with the help of their management), I would not blame Agilent, or anyone else, for choosing to use WinCE a few years back because, quite frankly, it was the best option available at that time for an embedded OS with a nice GUI.