Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

When is something language agnostic? Why is it called that way?

share|improve this question
Shed Shaw is bringing it back so try to get him to answer. – davidk01 Dec 21 '10 at 4:00
I think it should really be called language polytheism since the belief is that there is more than one path to getting something done. – chrisaycock Dec 21 '10 at 4:28
Try English forum too, you will get some answers. Joining the answers in that forum and in this forum will give you good idea. – Manoj R Dec 21 '10 at 5:39
Pseudo Code is Language Agnostic. – Mateen Ulhaq Apr 2 '11 at 9:13
@muntoo, pseudo code itself is a language. – SK-logic Apr 2 '11 at 9:58
up vote 32 down vote accepted

Language agnostic refers to aspects of programming that are independent of any specific programming language. At least, that's how I've heard it used for the last thirty years.

The world "agnostic" is derived from the ancient Greek for "don't know". So something which is "language agnostic" doesn't need to know about computer languages; it means the same thing as language independent. Things that would be language agnostic include algorithms, or Agile, or a runtime library with bindings to many languages.

Some Mac OS X features are not language agnostic, because they're really designed to be used from Objective C, can only be used with difficulty from C or C++, and don't even have bindings for many languages.

There can also be a subtext to using "language agnostic" rather than other terms.

In colloquial English, someone who says they're "agnostic" means they are neither religious nor an atheist: they "don't know" about God. This is usually verbal code for "I don't like to talk about religion, so don't try to convert me."

So sometimes when people talk about being "language agnostic", they're trying to stay out of arguments about what computer language is better.

share|improve this answer
BTW, agnostic comes from "a" (not) + "gnosis" (knowledge). Other words like it are "atheist" and "atypical". – Bob Murphy Dec 21 '10 at 5:31
Yep I've always taken it as a reference to the fact the language wars are basically religious wars: language-agnostic techniques/advice/concepts avoid the holy war. – Carson63000 Dec 21 '10 at 5:42
Off-Topic: gnostic/agnostic refers knowledge. Atheist / theist refers to believing or affirming the existance. So technically you can have an agnostic religious believer or an agnostic atheist. But the explanation was very clear. You can also talk about a database agnostic system – Borjab Jan 20 at 11:28
@Borjab I am agnostic believer in Vim. But I use Emacs for practcal reasons. – Brandin Jan 20 at 13:58

Paradigms or features that aren't applied to only one language.

share|improve this answer

When a solution is called "language-agnostic" you are literally saying that your solution "doesn't know about" languages, meaning its universal or independent from language specifics (paradigms, language idioms, etc).

For example, design patterns are language-agnostic, because the way they are described the specific implementation doesn't matter as long it sticks to the whole or a subset of the pattern ( some design patterns can be implemented without OOP).

UML is language-agnostic, BPMN is language-agnostic, ERM is language-agnostic. An algorithm in pseudo-code is language agnostic...

Anything that is meant to be programmed but not described in a specific language can be called language-agnostic.

share|improve this answer
Agnostic means "don't know about", not "doesn't believe in". Subtle but important difference! – JacquesB Jun 10 '15 at 20:19
BPMN certainly is not language-agnostic, because it models processes. There are programming languages where you define merely the precondition and the desired result and the process unfolds implicitly, e.g. Prolog. Even Haskell and BPMN don't go together particularly well, because of Haskell's lazy evaluation strategy that causes things to not happen according to some imperatively defined order of things. – back2dos Jan 20 at 10:16

I haven't heard the term before, however, I would assume it means learning aspects of programming that are independent of any specific programming language.

share|improve this answer
why is it called that way? – Louis Rhys Dec 21 '10 at 4:57
That's pretty much the way I've heard it used for the last thirty years. – Bob Murphy Dec 21 '10 at 4:57
I'm removing this response to post it as an answer. – Bob Murphy Dec 21 '10 at 5:06
@bob: agreed. but where is the answer? – Louis Rhys Dec 21 '10 at 5:26
@Louis Rhys: Sorry, took me a few minutes to write it correctly. It's up. – Bob Murphy Dec 21 '10 at 5:29

There are a lot of ads asking for "language agnostic programmers". They're looking for people who are okay with programming in whatever language is needed to get the work done. They want people who are totally fine with learning another language if that's what the project calls for.

They're looking for people who aren't clinging to just one language and are unwilling to program in anything else. It's a way of avoiding people who say things like, "Ugh, you should change your whole system over to XYZ language! If you don't you're dumb!" A lot of people make those comments in response to those ads without realizing the massive expensive of rewriting a large system in another language. Could you eek out a 1% performance increase by swapping languages? Yeah, sure, but most of the time it doesn't make sense for a company to focus on that. It's not worth the money.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.