You don't need to know which programming language a software is written into. The language in itself doesn't make a better program. It's more important to know the genetic of it. If a program derives from another one, chances are it will be more stable, just because it is more tested. It may also be more unstable, if the old program had been used in a different operative system.
Usually the old program is less expansible, it's exactly what you see, while a new project is a promise: it can grow at the next update, and usually it does.
In a previous post I explained how modern NMR software can be revolutionary without inventing anything new. All it has to do is to unleash the power of modern computers. But if you really want to do this it's better if you write a brand new program, from scratch.
In a different approach the new software does just the same old things and the increased power is exploited to reduce the time (= cost) of making it. Using an interpreted language like Java or Python the programmers have many advantages:
- the program runs on all platforms
- programming can be faster (but the program itself is slower)
- they can link to modern libraries that provide up-to-date interface components
- they can simply put a new interface over existing old code
In a sense he is not writing a program, but mounting it with existing building blocks. Only the new blocks are visible externally, the old ones are confined into the engine room. What's the advantage from the user's point of view? Just one: it may happen that the reduced cost of production reflects into a reduced final price. It does not happen in the case of acquisition software (the ideal product to sell: the customer has no alternative but buying from the spectrometer manufacturer). We can conclude that, being the competition high in the field of processing software, the makers look for a way to reduce the costs, and Java repesents that way.
"However, Java is not without flaws, and it does not universally accommodate all programming styles, environments, or requirements".
The complete picture is far less schematic. The old engine blocks can improve by simple recompilation with modern compilers, or new, better performing, engine blocks can be found on the market or written. Java can also be compiled, instead of interpreted, but in this case it must be recompiled for each operative system. Eventually the production costs increase again, but the final programs run faster. The only remaining advantage is that the program runs on all platform (assuming that the maker is willing to face the additional debugging costs). We, the users, can't know the production details, neither need to know them. We soon discover by ourself how fast or slow an NMR program is. Incredibly soon! I wanted to install TopSpin for evaluation and the RAM was not enough, but THAT was enough! I still wonder how a single program can eat all that memory... Needless to say, the remaining detail to give a look at is the price tag.