Components of a great scientific computing language
Expressivity: should be possible to express mathematical & programming concepts concisely & elegantly. This is important to reduce the mental overhead required for writing down and reading models and algorithms in the form of code.
Speed: should be possible to convert code into software/program that gets the most out of modern computer hardware
Extensibility: should have a powerful, unambiguous, easy to use package management system built right into the core of the language
Visualisation: a large and very important part of scientific programming is generating side-effects: writing reports, generating plots, creating interactive documents
Developing a fully fledged, GUI-based software for end-users is not scientific computing. However, interactive visualisation…?