I'm sure I've missed other ways academic code is bad.
The biggest difference is that academic code is _short_. If your whole code base is 10k lines, it's easy to cover all the requirements in a clean design. If you are dealing with millions of lines, there's all kinds of oddball unforeseen interactions and requirements that pop up way late in the game.
That mork format was really something else. Whoever thought that having the browser history stored in an impenetrable format with no tools to read it should turn in their nerd badge.
And for high-end use, the Itanium is a genuinely useful CPU. Because the performance of a cluster is a function of the communication delays, very high-end clusters WANT to have very high-end CPUs.
Note the above is certainly true for high-end HPC clusters, but running large Oracle databases on those kinds of machines seems kind of expensive for the performance you get. For Oracle (and other databases), the high-thread count Sparc T-3 / T-4 kinds of processors will give you much better performance at lower cost. Of the few ia-64 installations, I bet most are floating-point heavy HPC clusters, I wonder how many are running Oracle or VMS and "business" workloads.
But what do I know, I've only been observing what actually works vs what the customers want for 35 years
Of course, if customers actually wanted Oracle on Itanium, there wouldn't have been a lawsuit...
The major difference between bonds and bond traders is that the bonds will eventually mature.