Our approach follows the lines of the original idea "MetPy Concept and Operational Tools" introduced by Claude Gibert in 2003. It basically states that scripting languages such as Python have changed the way developers work and enable them to offer very high-level and adaptable software. Tools can be offered at different technical levels, providing a service which can be adapted to users with different backgrounds.
Design and programming language
MetPy was written mostly in Python. The idea behind MetPy is to glue together a wide collection of tools independently of the language they are written in. Any language offering the same advantages as Python can be used for the same purpose. Python fulfills our needs for most of the reasons written in their advocacy page. We would add that Python is interpreted and therefore loosely typed and it offers introspection mechanisms. Although these can cause challenges in quality assurance, they also grandly facilitate syntactic sugaring. This is crucial to achieve an intuitive programming interface of good quality.
Due to object orientation, the different components of the systems are as little coupled as possible. Therefore, users only need to be aware of what they need and do not need to learn anything else. This considerably flattens the learning curve of the system and helps learning by example.
The difficulty of the approach lies in its implementation and in its acceptance in organisations because it implies significant cultural changes. Scientists and developers need to be convinced that a change would really be beneficial to their work. Many of them are sincerely convinced that no change could really improve their current methods of work. Others rule out having to learn a new language or new tools through lack of time or interest. Operations developers are also quite reluctant as they might see in this change some loss of control over their systems. Moreover, it is well known that in operations, you "don't fix it if it ain't broken". The resistance exhibited by all these people is very understandable and the real challenge lies in making the change happen.
It took years for MetPy to be used for different purposes, either operational or for research at ECMWF, the BoM and for the GEMS-MACC project.
A better time
The time is now right to make a difference in the way different organisations work. When MetPy was initiated, scripting languages were not taken seriously in operational environments, and the approach was quite new in many respects. It is now reassuring to observe that a favourable culture shift has taken place in many organisations, where free software is already used for operational work.