3

Someone who knows multiple languages is called polyglot or multilingual (There can be nuances between two words also.). I'm not sure if we can apply these terms to someone who knows multiple programming languages.

Interestingly, polyglot is used in programming jargon too but it means a program/script written in multiple programming languages.

I found an article that discusses the real value of learning more than one programming language and there are the terms multilingual coder and versatile programmer used. These terms are self-explanatory but are they well-established? Also, I wonder if there is any single word used in tech jargon.

Well, you probably know that learning multiple languages is part of the traditional university track—programmers with degrees in computer science will usually have trained in half a dozen languages by graduation. But what's the value of being a multilingual coder in the workplace, where your projects are less theoretical?

"Not only are languages different tools for different jobs, but they are technologies that shape how you think about programming," says Richard Pattis, a senior lecturer of Informatics at UC Irvine who invented the Karel educational programming language in 1981. But this isn't an outright endorsement of learning two-plus languages—it matters which ones you pick. "Learning similar languages might not progress your thinking much," says Pattis.

To expand their minds, Pattis recommends that versatile programmers learn languages from different language paradigms, whether it be object-oriented languages (e.g., C++/Java), functional languages (e.g., ML and Haskell), scripting languages (e.g., Lisp and Python), logic-based languages (e.g., Prolog), or low-level languages (like C, the Java Virtual Machine or a machine language).

fastcolabs.com / article by David Lumb

  • 13
    I would say "normal programmer". Any decent college programming curriculum should teach you 3-4 languages. – Hot Licks Jan 5 '15 at 18:10
  • 2
    Would there be a need for them to be well-established? Generally any reasonably experienced programmer is going to know at least a few languages. Other than in the context of an article like that which discusses the very fact, would it be remarkable enough to have a well-established term? – Jon Hanna Jan 5 '15 at 18:12
  • 2
    @ermanen still, i would call such a person a "programmer". programming languages aren't like spoken languages. any employed programmer will know/use more than one programming language reasonably well. – ell Jan 5 '15 at 19:09
  • 4
    "I'm asking for a term used in tech jargon." There is no such term. – Hot Licks Jan 6 '15 at 0:12
  • 6
    You call a person who knows multiple programming languages a "programmer". You call someone who knows only one programming language a "beginner" (if you're being kind; otherwise, "hack" or "wannabe" spring to mind). To illustrate why, I program in classic ASP. To do so, I need to know, at minimum, VBScript, html, css, and SQL; and to be really effective in today's world, I also need to know JavaScript. That's five languages, just to program in a single environment. – Marthaª Jul 31 '15 at 15:19
12

As a Software Developer myself, I can say that there is no commonly used term to describe a person that knows more than one programming language. It is so common-place that it would be peculiar to specifically point that out. That is not to say that there is no term with the meaning you seek, but it would be an obscure one, not often used.

Though I would stop short of calling jxh's answer incorrect, I certainly think that using the term software generalist to describe someone who knows a handful of languages would be a bit of a stretch. Perhaps if they knew an unusually large number of languages this term may fit. Software generalist refers more to a person with knowledge of many different problem domains within computer science.

  • Maybe I should have asked who is "expert" in multiple programming languages? We might not consider "knowing enough" as "truly knowing" but I'm not sure where the distinction is. – ermanen Jan 5 '15 at 20:30
  • I would add that a gainfully employed software generalist is expected to be able to resolve problems in the other domains with the same proficiency as a specialist in that domain. You can't move from GUI development to database management to client-server performance tuning to unit test frameworks and be on par with specialists without a near expert command in the domain specific languages of those areas. – jxh Jan 5 '15 at 21:24
  • I'd say this is analogous to "What do you call a carpenter who can use more than one tool?". The answer is "a carpenter". A related question could be "What do you call a programmer who only knows one programming language?", to which the answer might be "a novice". – Max Williams Jan 24 '18 at 13:16
5

These days, the term full stack developer gets thrown around a lot, in an attempt by employers to suggest the programmer should not be siloed into one area of development.

eg. In the development of web applications, developers are commonly expected to know multiple languages, such as Javascript, SQL, XML, Java or C#, in order to achieve basic functional requirements and it is this which makes up the "full stack".

It is not exactly what you are looking for but I feel it is worth highlighting, as it is used frequently.

  • Full stack refers to working on both the front and back ends. A programmer who only knows javascript can be full stack by working in NodeJS. – jimm101 Jan 24 '18 at 18:33
2

Also, I wonder if there is any single word used in tech jargon.

No.

As user96258 notes, it is effectively unheard of for a programmer to know only a single language. These days it's very difficult to do anything of note without at least having a working knowledge of some of the more specialized languages (SQL, Javascript, arguably HTML/XML for example). If someone only knows one, they're not a programmer, they're a student or an analyst or... whatever their real job is.

And unfortunately, fluent doesn't work nearly as well for programming languages as for spoken languages. A large number of professional programmers aren't fluent in the languages they work with, even if they're effective at communicating with the computer on a day to day basis.

Worse yet, many programming languages are similar. Knowing one well lets you work with others much more easily. I can read probably three times as many as I can write effectively in.

Since there's no clear line on "knowing" a programming language, it's not mentioned. Combine that with infrequent need to describe that idea and there's just no term for it.

These terms are self-explanatory but are they well-established?

Multilingual coder is the more appropriate. Versatile is more about skill than language knowledge, and would be ambiguous. Though it should be noted that multilingual is also ambiguous, especially with outsourcing and localization specialties driving the need for programmers who are really multilingual with spoken/written languages.

  • 1
    I disagree that there is "no single word used in tech jargon" for someone who is an able programmer in many different languages. It may be a recent trend, but I have been job-hunting for the last few weeks and have repeatedly encountered the term "polyglot programmer" having this exact meaning. – dodgethesteamroller Jul 15 '15 at 7:38
1

A possible word for such a programmer is a software generalist. This refers to someone who can solve a number of different kinds of programming problems. One way of growing oneself into a software generalist is to learn multiple languages. This is because different problems will often require using a different language. For example, resolving a database problem may require SQL, while integrating it into the embedded device may require Erlang.


While I agree that it is fairly normal for a programmer to be productive in several languages, a programmer is rarely adept at languages that are not specific to his or her specialization. So, SAS programmers may also be adept at SPSS and R, but it would be unusual for them to also be equally adept at Python and PERL.

The job of programmers often extend outside their usual scope of responsibility, and thus they may acquire a certain working knowledge of how to get things done in a variety of languages (even outside their specialization). However, that is different from being adept enough at a language to build a product from scratch with little (or no) need of reference material. Most programmers would not claim to possess that kind of skill. But, it would be reasonable to have that expectation on a software engineer that claims to be a software generalist.

1

Polyglot.

A programmer who knows multiple languages is referred to as a polyglot programmer. A program that is built using multiple languages is a polygot program.

  • To be clear, that term was coined rather recently. The earliest use I can find was by Hans-Christian Fjeldberg, who used it as the title for his master thesis in 2008, which hardly makes it common usage. In this case, it would make more sense to use multilingual rather than polyglot (they share the same definition, with the former being rooted in Latin while the latter is rooted in Greek.) And since multilingual is more commonly used, according to COCA, it is reasonable to assume that it is more commonly understood by one's audience. – b1nary.atr0phy Jun 6 '18 at 3:19
0

this probably isn't a technical term but digital bilingual sounds cool

  • 1
    ...that implies that you are capable of programming in only two languages. – b1nary.atr0phy Jun 6 '18 at 2:08
0

There's a lot of ongoing adaptation around these roles, so you're going to find that the terminology is in flux quite a bit. Here are a couple of reference points for the specific application that I'm going to make below: https://www.hanselman.com/blog/ACoderAProgrammerAHackerADeveloperAndAComputerScientistWalkIntoAVennDiagram.aspx

https://www.huffingtonpost.com/kiki-prottsman/coding-vs-programming-bat_b_7042816.html

As others have pointed out knowing multiple languages fluently is a basic professional requirement. Someone who knows multiple languages is "a programmer" or "a developer", usually they will be referred to by the environment they work with, rather than a language.

Someone who knows a single language is more likely to be a "coder" or possibly an "X programmer" (where X signifies a specific language that they're fluent in).

A "web developer" probably works with 5 or more interacting languages on a daily basis, an "html coder" is relying on some other person or platform to take care of the rest of the environment.

protected by Lawrence Jan 24 '18 at 13:24

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

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