We all know that Intel is working on 64-bit processors, Alpha processors already work with 64-bit applications, and the next generation of applications will work with Windows 64. But what will happen to all the 16-bit and 32-bit applications? We’ll have thousands of software vendors trying to sell us a new wave of Windows-based applications, encouraging us to move into the 64-bit age. Pretty soon, we'll have Win64 versions of Microsoft Office, WordPerfect, QuickTime, and so on. The question is simple: Will end users and enterprises have to upgrade every Windows 32 application to Win64?
We're concerned about Y2K, but are we ready to move into the world of Win64? When users prepare for the year 3000, they'll have to look back to see how their predecessors dealt with Y2K. Now that we're at the dawn of the 64-bit age, we'll also have to look back to see what happened when users moved from 16-bit to 32-bit applications.
I've programmed all my life for the Windows platform, and I still have 16-bit Windows applications that are very useful. I don’t have to lose time rewriting my applications for Win32, because they don't need to use programming features such as multiple threads. Instead, I can spend time working on other projects. When Win32 appeared, everyone started rewriting applications, and many people didn’t know why they were updating all their code—maybe it was the fashion at the time. Unfortunately, I've seen some 32-bit applications with worse performance than 16-bit applications.
Windows NT 4.0 lets you execute 16-bit applications within their own memory address space (unfortunately, I haven't seen this option in the Windows 2000—Win2K—beta). If most of your 16-bit applications do a good job, you'll just have to upgrade those that really need the 32-bit address space and associated 32-bit features (e.g., multithreading, separate address space). Then, if you don’t need 32-bit code, why would you need 64-bit code?
I think Win64 and the 64-bit processors will be a great step forward in the industry. But the OS and the processor architecture are just one part of the pie—the other major component is the applications. A 64-bit OS will boast big performance gains, but that doesn't mean we should unnecessarily rewrite applications. Before you invest in the future, consider whether you really need to upgrade your code—you might be able to save time, money, and human resources that you can use for other and more productive tasks.