For most ecologists who are not programmers, but require customized software, the most important question is the choice of language. It may help to refer back to Table 1 where the major languages are grouped according to the different dichotomies that have been discussed in this article. Whereas a hybrid language such as Java offers the advantages of object-oriented programming and cross-platform portability, a simulation involving thousands of variables might be better written in C, or C++ if object-oriented programming is considered to be an important criterion for the selection.
One important criterion for the decision of language is whether the program is being designed for a specific or a general purpose. Specific uses could mean that the program will be used for one project or it could refer to one application that might be repeated for many projects. For example, models that simulate energy balances of different landscapes, streamflow, climate, plant growth, or large-scale landscape changes may be extremely complex, but they are only used for that one purpose and are typically written in a procedural language such as FORTRAN, BASIC, or C.
As the use of the program becomes more general, an object-oriented language may be more appropriate. A general use program might be a simulation model that can be used for multiple systems. Object-oriented programming will provide a more stable platform for different programmers as the code is configured for different uses or systems. If the program is to be used on multiple platforms which might have a different OS, then a language such as Java, which is machine independent, may be the best choice for that application. If the model is quite complex, a language such as BASIC or MATLAB might be considered for development and testing, before moving to a language such as C++ or Java. For applications involving large databases, where input and output are the primary concerns, SQL should be considered, and SQL programs can easily be integrated into other types of programs. For applications that require rapid development, a package that uses scripting language may be the best choice.
See also: Bayesian Networks; Data Mining.
Was this article helpful?