Polyglot programming is considered necessary when a single, general-purpose language cannot offer the desired level of functionality or speed, interact properly with the database or the desired delivery platform, or meet end user expectations. Proponents of polyglot programming contend that using the most effective language for each aspect of a program enables faster development, greater comprehension for business stakeholders, and a more optimal end product. However, integrating a wide variety of languages into a single application may entail added complexity. Resource consumption may increase in terms of training, testing and maintenance. Polyglot programming may also make code difficult to deploy if operations is not familiar with the same languages used in development.