By Gene Cornell, Cornell-Mayo Associates
For more than a decade, the retail industry has been divided into two factions. One side believes that .NET simplifies or solves all problems, while the other makes the same claim for Java. The real goal, however, is to tie customers to one camp or the other. Both sides claim to be open, while doing their best to ensure that products don't easily interoperate.
The reality is clear when we look at the effort to create standard device drivers. In 1994, Microsoft came up with the excellent idea of developing a common standard for device drivers. Unfortunately, OPOS would run only on Windows, and its latest incarnation requires .NET. Recognizing that the enemy had created a strong beachhead, the opposing camp retaliated with its own set of Java device drivers.
It's clear that neither party had as its goal a cost-effective and flexible solution for retailers. Both solutions require considerable memory and CPU, driving hardware replacement. This is certainly not a good choice for retailers, who like to hold on to their expensive equipment as long as possible.
Everywhere except in retail, drivers and interfaces are written in a lower-level language most efficient for interrupt-driven and time-critical processing. Have you noticed how most USB devices at home can run on a wide variety of hardware, while your POS register requires gobs of memory and CPU to pop that cash drawer? Is that because the cash drawer is such a complicated device, or because of the useless overhead of JavaPOS and OPOS?
It's time to end the platform wars. And fortunately for retailers, we now have the standards necessary to favor flexibility and bring an end to the "us vs. them" debates. In the new world of the enterprise, technologies such as web services, eXtensible Markup Language, Simple Object Access Protocol, Web Services Description Language, and Universal Description Discovery and Integration have rendered the platform invisible. Java can talk to .NET, .NET can talk to Java, and both can talk to anyone else. The endpoints of the conversation do not need to know, or care, if the guy on the other side speaks Java or .NET, or runs under Windows or Linux. Hey, maybe we can all be friends!
Software now can and should be agnostic, using common transport and discovery protocols not tied to a particular language, operating system or framework. Isn't that the goal of a truly open environment? Developers can choose the tools and do whatever it is they think is best! Imagine, the same road works for gasoline, diesel and electric cars -- even bicycles. What a concept.