These organizations have developed substantial innovative software sys- tems using specialized transaction processors and low-level languages. Sabre and NYSE use Tandem (now HP NonStop) systems. Bank of America and Sabre use the custom mainframe IBM Transaction Processing Facility. The language used in these systems is C++ or older low-level languages, includ- ing PL/I and assembler. This behavior is really more like software product developers than typical business systems. In fact, several of these operations have spun off software product organizations. When applications need the highest performance, the language to use is always C (or C++.) For example, Microsoft generally finds Web applica- tions to be about twice as fast running benchmarks when written in (unmanaged) Visual C++ instead of VB and ASP. Other vendors just don’t do database benchmarks except with Tuxedo and C++, because their appli- cation servers are even slower. This is surprising, since much of a Web appli- cation is a constant overhead, including the Web server, database, and network communication. It is not only the language performance, but more importantly the architecture it is deployed with, that determines the performance. C++ is used with ISAPI rather than ASP, direct database access rather than ADO, memory caching rather than simple database access, and so on. If you are going to build a high-performance system in C, it will proba- bly cost a few extra months to set up, take twice the development time, and you will have to pay higher rates for developers. For a small application, tak- ing two developers three months, this could be a difference in development cost of $100,000 ($150K – $50K). Most applications will require much more than this effort level, and most organizations will have several such applications, so they could easily spend a half million. In order to make up these costs through better performance on servers, if the application is twice as fast, half a million would have to be saved. So the rule of thumb is that for systems with over a million dollars in deployed servers, we will consider building a complex custom-designed application; otherwise, we will use higher-level languages and build the system through integration. Outside of benchmarks, most businesses don’t need to complicate their development to achieve the highest possible performance. They can always approach the problem by buying some extra equipment. This is only a problem if the equipment becomes expensive. The cost saving from rapid development using developers with standard skill sets generally dwarfs the higher cost of extra servers.