{{Short description|Software paradigm independent of language}} {{For|the language independent approach to translation|Interlingual machine translation}} '''Language-agnostic''' programming or scripting (also called '''language-neutral''', '''language-independent''', or '''cross-language''') is a software paradigm in which no particular language is promoted.
In introductory instruction, the term refers to teaching principles rather than language features.<ref> {{cite web |url=https://github.com/EbookFoundation/free-programming-books/blob/main/books/free-programming-books-subjects.md#programming|title=Free Programming Books By Subject / Programming |last= |first= |date= |website= |publisher=EbookFoundation|access-date= |quote=}}</ref> For example, a textbook such as Structure and Interpretation of Computer Programs is really a language-agnostic book about programming, and is not about programming in Scheme, ''per se''.
As a development methodology, the concept suggests that a particular language should be chosen because of its appropriateness for a particular task (taking into consideration all factors, including ecosystem, developer skill-sets, performance, etc.), and not purely because of the skill-set available within a development team. For example, a language agnostic Java development team might choose to use Ruby or Perl for some development work, where Ruby or Perl would be more appropriate than Java.
"Cross-language" in programming and scripting describes a program in which two or more languages are used to good effect within a program's code, with each contributing its distinctive benefits.<ref>{{cite web|url=http://queue.acm.org/detail.cfm?id=2543971|title=The Challenge of Cross-language Interoperability - ACM Queue|website=queue.acm.org}}</ref>
==Related terms== * Language-independent specification * Cross-language information retrieval, refers to natural languages, not programming languages * Language independent datatypes
==See also== * Bilingual (disambiguation) * Language-independent (disambiguation) * Glue language * Language binding * Middleware * Polyglot (computing)
==References== {{Reflist}}
Category:Software development Category:Programming paradigms