Molecular modelling applications are rarely routine work. Each project requires careful preparation; often new techniques must be developed, implemented, and tested; many simulation runs must be made and the results must be analyzed. All this requires a lot of problem-specific coding at various levels. And yet the popular modelling software packages offer little help in this process. The specification of a simulation run typically involves cryptic input files or scripts using a primitive command language. Modifying the source code itself - if it is provided at all - is an exercise in reverse-engineering and guessing at the meaning of undocumented and unstructured program code. The predominant use of an outdated programming language (Fortran) makes the situation even worse. The result is wasted time and reluctance to use new methods due to the high implementation effort.
MMTK makes use of modern software design techniques and tools to make both use and extension of the system as easy as possible. Its foundation is Python, a modern general-purpose high-level object-oriented programming language. The time-critical parts - a small fraction of the total code - are written in C. The combination of Python and C allows very efficient code development, since all prototyping and testing is done in Python, and only if some part of the code turns out to be too slow it is rewritten in C, with the already tested Python code as a valuable guideline and testing aid. For developing and testing new simulation methods, MMTK provides a much better basis than the standard modelling packages. It is also easy to add additional force field terms.
MMTK also tries to profit as much as possible from work done by others. For storing trajectories, it uses the netCDF library developed by Unidata. netCDF files are portable between different machines, and there is a large range of general tools that work with them. For visualization, it uses the Virtual Reality Modelling Language (VRML), originally designed for displaying three-dimensional scenes in the World-Wide Web. VRML browsers are available from many sources, and keep getting better. The use of libraries and programs developed outside the computational chemistry community obviously saves a lot of work, and results in better programs.