# So how many programming languages do you know?

**URL:** <https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406>\
**Category:** In My Humble Opinion\
**Created:** [October 19, 2009, 10:48pm UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406 "2009-10-19T22:48:41Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Crowbar\_of\_Irony\_3](https://avatars.discourse-cdn.com/v4/letter/c/f08c70/32.png) [@Crowbar\_of\_Irony\_3](https://boards.straightdope.com/u/Crowbar_of_Irony_3)\
**Post date:** [October 19, 2009, 10:48pm UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/1 "2009-10-19T22:48:41Z")

</div>

Another programming languages poll for the Dopers!

By programming languages here, I mean functional, rules-based and the usual procedural languages (so I guess SQL count). If it can be used to boss the computer about, it is a programming language! Variants also count as separate (the C family for example). For the definition of ‘know’, you have to be able to code something more than just ‘Hello World’. At least a personnel management system with file I/O 😛

Here’s what I have installed on my mental hard disk

ActionScript  
BASIC  
C  
C++  
C#  
Java  
QBasic  
PHP  
MySQL  
MS-DOS batch file programming

---

<div class="post-metadata">

**Author:** ![Superfluous\_Parentheses](https://avatars.discourse-cdn.com/v4/letter/s/8edcca/32.png) [@Superfluous\_Parentheses](https://boards.straightdope.com/u/Superfluous_Parentheses)\
**Post date:** [October 19, 2009, 10:55pm UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/2 "2009-10-19T22:55:07Z")

</div>

Perl  
Ruby  
Bash/SH  
C  
C++  
Java  
JavaScript  
Erlang  
Common Lisp  
Clojure  
68K assembly  
C64 BASIC  
Emacs Lisp  
Scheme  
ActionScript  
Prolog  
SQL

and a minimal amount of Python

---

<div class="post-metadata">

**Author:** ![MovieMogul](https://avatars.discourse-cdn.com/v4/letter/m/f08c70/32.png) [@MovieMogul](https://boards.straightdope.com/u/MovieMogul)\
**Post date:** [October 19, 2009, 10:59pm UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/3 "2009-10-19T22:59:42Z")

</div>

You don’t have zero as an option…

---

<div class="post-metadata">

**Author:** ![Derleth](https://avatars.discourse-cdn.com/v4/letter/d/b9e5f3/32.png) [@Derleth](https://boards.straightdope.com/u/Derleth)\
**Post date:** [October 19, 2009, 11:13pm UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/4 "2009-10-19T23:13:10Z")

</div>

Nice little bell curve. 😉

15 I can think of right now:  
[list=#]  
[li]C (mainly POSIX + C89, some C99 and K&R)[/li][li]Common Lisp[/li][li]Scheme[/li][li]Emacs Lisp[/li][li]Java[/li][li]Python[/li][li]Ruby[/li][li]Perl[/li][li]GW-BASIC (and Classic BASIC in general, pretty much)[/li][li]Bourne shell (mainly sh, bash, and zsh)[/li][li]Haskell[/li][li]x86 assembly (mostly IA-16 and IA-32, not much AMD64)[/li][li]PDP-11 assembly (under V7 Unix)[/li][li]Pascal (mainly ISO standard, some Object Pascal)[/li][li]RPL (Reverse Polish Lisp, the programming language in HP’s programmable stack calculators)[/li][/list]

I have a somewhat better than passing knowledge of C#, C++ (just the core language without much templates or object esoterica), Fortran 77, J (an APL derivative), Javascript, VAX assembly, PDP-8 assembly, 6502 assembly, a number of mostly-similar RISC assemblies (MIPS, SPARC, a few others), Forth, Objective-C, and Maxima (a programmable computer algebra system).

---

<div class="post-metadata">

**Author:** ![Crowbar\_of\_Irony\_3](https://avatars.discourse-cdn.com/v4/letter/c/f08c70/32.png) [@Crowbar\_of\_Irony\_3](https://boards.straightdope.com/u/Crowbar_of_Irony_3)\
**Post date:** [October 19, 2009, 11:17pm UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/5 "2009-10-19T23:17:07Z")

</div>

> [@ArchiveGuy](#):
>
> You don’t have zero as an option…

My mistake. I forgotten as a programmer I should have started counting from zero. :smack:

---

<div class="post-metadata">

**Author:** ![Stealth\_Potato](https://avatars.discourse-cdn.com/v4/letter/s/d78d45/32.png) [@Stealth\_Potato](https://boards.straightdope.com/u/Stealth_Potato)\
**Post date:** [October 19, 2009, 11:26pm UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/6 "2009-10-19T23:26:14Z")

</div>

Hrm. Let me rummage around in the old brain box…

[ol]  
[li]C[/li][li]C++[/li][li]C#[/li][li]Java[/li][li]Python[/li][li]JavaScript[/li][li]Squirrel[/li][li]Lua[/li][li]PHP[/li][li]6502/65816 assembly[/li][li]65816 machine code (I’m counting this one as separate from above since I sometimes find myself writing non-trivial routines directly in a hex editor without the assistance of an assembler. :p)[/li][li]Bash[/li][li]Banana – kind of a cheat, since this is actually a not-yet-existent language (dynamic, functional, prototyped object-oriented, dynamic parsing) that I’m building for fun. :D[/li][/ol]

There are also a few that I was at one point reasonably competent with, namely Scheme, Miranda, Haskell, CLP® and Smalltalk, but I haven’t used any of them in ages (mostly since school), and I very much doubt I’d be able to do much with them now unless I cracked open a reference book or three first.

---

<div class="post-metadata">

**Author:** ![ultrafilter](https://avatars.discourse-cdn.com/v4/letter/u/3d9bf3/32.png) [@ultrafilter](https://boards.straightdope.com/u/ultrafilter)\
**Post date:** [October 19, 2009, 11:27pm UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/7 "2009-10-19T23:27:29Z")

</div>

I’m interpreting the question to ask how many languages I can write code in given reference manuals and time, not just off the top of my head.

[ol]  
[li]C[/li][li]C++[/li][li]Java[/li][li]Javascript[/li][li]VBscript[/li][li]NSIS script[/li][li]SQL[/li][li]XQuery[/li][li]Matlab[/li][li]R[/li][li]S-Plus[/li][li]Python[/li][li]Perl[/li][li]Motorola 68K assembly[/li][li]X86 assembly[/li][li]Scheme[/li][li]Prolog[/li][/ol]

I feel like I’m forgetting something…

---

<div class="post-metadata">

**Author:** ![VunderBob](https://avatars.discourse-cdn.com/v4/letter/v/839c29/32.png) [@VunderBob](https://boards.straightdope.com/u/VunderBob)\
**Post date:** [October 19, 2009, 11:38pm UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/8 "2009-10-19T23:38:08Z")

</div>

BASIC  
FORTRAN  
PL/1  
PASCAL  
8085 assembler  
M68000 Assembler  
Galil Motion Control  
ladder logic  
Matlab  
Simulink  
Dynamic C  
Think & Do (PLC symbolic programming language)  
Modicon State Language (ditto)  
Ada  
Java  
C  
C++ (my hands-down favorite and most proficient)  
VAX assembler  
PDP assembler  
VAX Datatrieve

I’m sure I’m forgetting some, too.

---

<div class="post-metadata">

**Author:** ![Strainger](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/strainger/32/244_2.png) [@Strainger](https://boards.straightdope.com/u/Strainger)\
**Post date:** [October 19, 2009, 11:38pm UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/9 "2009-10-19T23:38:08Z")

</div>

Does ANSYS Parametric Design Language (APDL) count? It’s a fairly basic application-specific language. If so then 1. If not, 0.

---

<div class="post-metadata">

**Author:** ![Indistinguishable](https://avatars.discourse-cdn.com/v4/letter/i/90ced4/32.png) [@Indistinguishable](https://boards.straightdope.com/u/Indistinguishable)\
**Post date:** [October 19, 2009, 11:45pm UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/10 "2009-10-19T23:45:49Z")

</div>

Hm… I’m not sure what use these kinds of lists are for anything, and particularly not sure what kind of use their sizes are, but, let’s see. In the past, I’ve made significant use of

1. QBASIC
2. TI-BASIC (See? Is it even worth counting this? I don’t remember a thing about its syntax now, but give me half an hour to reacquaint myself with it, and I could do whatever you want. Because it’s essentially the same as a million other languages…)
3. UnrealScript (Believe it or not, my indirect stepping-stone to everything else, even the ones nothing like it)
4. C++
5. Haskell
6. C (Is it worth counting this separately from C++? If you’ve learnt the latter, and were then told what to leave out and the few minor changes between how what’s left works, then you know the former. [Yeah, yeah, I’m sure some language lawyers will consider the changes to be more than minor, but (for the point I’m making right now), I don’t]]
7. Common Lisp
8. Scheme (Again, worth considering this different from Common Lisp? I don’t remember much about the details of the latter except “It’s like Scheme, but with two namespaces” (which confused the hell out of me when I was first exposed to it and sent me running to Haskell instead).]
9. Auto Lisp (I remember nothing, except that it was a variant of Lisp used in AutoCAD. I can’t even remember if it was a Lisp-1 or a Lisp-2. But I did make significant use of it back in the day when I was still forced to spend time with AutoCAD…)
10. Java
11. Standard ML
12. Prolog
13. x86 assembly
14. Banana (don’t ask me how…)

Ok, I’m kidding about that last one. And there are myriad others which I decided to cull for reasons which may not be any better than the reasons for leaving the ones I did. Plus, of course, there are many languages I’ve never really used and would not describe myself as “knowing”, but still generally understand code in when I see it (e.g., Javascript). I hate to be cliche… well, no, I’m perfectly happy to be cliche, but the important thing is not “How many programming languages do you know?”, but “What different programming paradigms/concepts/ways of thinking have you acquainted yourself with?”.

---

<div class="post-metadata">

**Author:** ![breezman](https://avatars.discourse-cdn.com/v4/letter/b/4491bb/32.png) [@breezman](https://boards.straightdope.com/u/breezman)\
**Post date:** [October 20, 2009, 12:11am UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/11 "2009-10-20T00:11:52Z")

</div>

Now I pretty much only use C and perl, with a little bit of bash scripting thrown in. I don’t really remember enough perl to do much, but occasionally I need to do some serious text processing and I’ll relearn enough to accomplish a task.

In the past I’ve also known Ada and FORTRAN well enough to get things done, and I dabbled with BASIC, pascal, and FORTH, when I was a kid/teen. I answered 2-5.

---

<div class="post-metadata">

**Author:** ![Ruminator](https://avatars.discourse-cdn.com/v4/letter/r/b9bd4f/32.png) [@Ruminator](https://boards.straightdope.com/u/Ruminator)\
**Post date:** [October 20, 2009, 12:32am UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/12 "2009-10-20T00:32:57Z")

</div>

> [@Indistinguishable](#):
>
> 1. TI-BASIC

TI-BASIC … that’s a toy. But the TI Extended-BASIC cartridge, that’s true power. It had built in support for sprites!

My mother bought me TI Extended BASIC for Christmas after much begging. I think that cartridge was $150 which probably cost more than the family car at the time.

---

<div class="post-metadata">

**Author:** ![Stealth\_Potato](https://avatars.discourse-cdn.com/v4/letter/s/d78d45/32.png) [@Stealth\_Potato](https://boards.straightdope.com/u/Stealth_Potato)\
**Post date:** [October 20, 2009, 12:35am UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/13 "2009-10-20T00:35:27Z")

</div>

> [@Indistinguishable](#):
>
> 1. C (Is it worth counting this separately from C++? If you’ve learnt the latter, and were then told what to leave out and the few minor changes between how what’s left works, then you know the former. [Yeah, yeah, I’m sure some language lawyers will consider the changes to be more than minor, but (for the point I’m making right now), I don’t]]

Well, maybe I’m a language lawyer then. 😉 Properly written C++ and properly written C have very little in common besides the syntax and the primitive semantics. IME, being a good C++ programmer does not necessarily translate to being a good C programmer; there’s a different mindset involved, even after you strip away all the C++ features. Additionally, many of the features you use all the time in C should never\* be used in C++, including but not limited to char\* strings, C-style casting, malloc/free, and for that matter most of the standard library.

(\* For certain values of “never”)

FWIW, I consider myself to be a very good C++ programmer, but only a decent C programmer. I just don’t write C all that often, so I’m not as comfortable with the standards and idioms. I suspect that any gray-bearded C guru could take one look at my code and say, “Yup, a C++ guy wrote this.”

Though I guess you have a point in that someone who knows C++ is in a much better position to understand C than someone who knows C is to understand C++.

> [@Indistinguishable](#):
>
> 1. Banana (don’t ask me how…)

Have you been stealing my specs?! 😛

---

<div class="post-metadata">

**Author:** ![Indistinguishable](https://avatars.discourse-cdn.com/v4/letter/i/90ced4/32.png) [@Indistinguishable](https://boards.straightdope.com/u/Indistinguishable)\
**Post date:** [October 20, 2009, 3:24am UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/14 "2009-10-20T03:24:23Z")

</div>

> [@Stealth\_Potato](#):
>
> Additionally, many of the features you use all the time in C should never\* be used in C++, including but not limited to char\* strings, C-style casting, malloc/free, and for that matter most of the standard library.

Hm. Well, perhaps that explains it, then: when I first learnt C++, I happily (in emulation of all the examples I had seen) made use of C-style strings (_shudder_) and casting. I’m not sure what in the C standard library you’re referring to (I certainly stayed the hell away from printf, which had, for years, dissuaded me from learning any programming beyond BASIC…), but perhaps I used some of that as well. So, anyway, in my case, I learnt it all as a hodge-podge to begin with.

---

<div class="post-metadata">

**Author:** ![robardin](https://avatars.discourse-cdn.com/v4/letter/r/43a26b/32.png) [@robardin](https://boards.straightdope.com/u/robardin)\
**Post date:** [October 20, 2009, 3:50am UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/15 "2009-10-20T03:50:21Z")

</div>

Hmmm, I cast as “11 or more” but upon reflection, I probably need to take some of those back as I’m no longer “proficient” in Fortran, Ada, Lisp or 80386 Assembler (or possibly for that matter, Java) due to disuse, though I’ve coded somewhat significant stuff in all of them. Especially since (with the exception of Java) I would have less than zero interest in coding something anew in those frameworks again.

I’m sure I could still code with minimal book looking up in BASIC, Pascal, C, C++, Perl, SQL, ksh or MS-DOS batch/command scripting.

---

<div class="post-metadata">

**Author:** ![verisimilidude](https://avatars.discourse-cdn.com/v4/letter/v/e495f1/32.png) [@verisimilidude](https://boards.straightdope.com/u/verisimilidude)\
**Post date:** [October 20, 2009, 3:59am UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/16 "2009-10-20T03:59:35Z")

</div>

Is HTML a language? Is CSS? Originally I thought not, and thought the L in HTML was arrogance. Then I started thinking. It is just a type of declarative language, describing what you want the computer to do (lay out a web page in this case) by describing the result of the computation. Is this that much different than other languages like SQL and BASIC that are interpreted?

---

<div class="post-metadata">

**Author:** ![Indistinguishable](https://avatars.discourse-cdn.com/v4/letter/i/90ced4/32.png) [@Indistinguishable](https://boards.straightdope.com/u/Indistinguishable)\
**Post date:** [October 20, 2009, 4:08am UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/17 "2009-10-20T04:08:24Z")

</div>

Even without going down that line of thought, is it so arrogant to use the term “language” to describe things other than specifically _programming_ languages?

---

<div class="post-metadata">

**Author:** ![Stealth\_Potato](https://avatars.discourse-cdn.com/v4/letter/s/d78d45/32.png) [@Stealth\_Potato](https://boards.straightdope.com/u/Stealth_Potato)\
**Post date:** [October 20, 2009, 4:36am UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/18 "2009-10-20T04:36:28Z")

</div>

Yeah, at its most general, “language” just means a set of strings over some alphabet, usually derived by some set of rules. HTML definitely counts. However, it’s generally not considered a _programming_ language because it isn’t used to describe computation, per se; instead its semantic purpose is to describe a document. I suppose you could argue that by describing a computerized document it is _ipso facto_ describing computation, but that’s not the abstract purpose of HTML so I don’t think it counts. 😉

---

<div class="post-metadata">

**Author:** ![ultrafilter](https://avatars.discourse-cdn.com/v4/letter/u/3d9bf3/32.png) [@ultrafilter](https://boards.straightdope.com/u/ultrafilter)\
**Post date:** [October 20, 2009, 4:50am UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/19 "2009-10-20T04:50:20Z")

</div>

> [@Stealth\_Potato](#):
>
> Yeah, at its most general, “language” just means a set of strings over some alphabet, usually derived by some set of rules. HTML definitely counts. However, it’s generally not considered a _programming_ language because it isn’t used to describe computation, per se; instead its semantic purpose is to describe a document. I suppose you could argue that by describing a computerized document it is _ipso facto_ describing computation, but that’s not the abstract purpose of HTML so I don’t think it counts. 😉

What about XML then? It’s also ostensibly for describing documents, but people can (and do) write interpreters for XML-based scripting languages.

---

<div class="post-metadata">

**Author:** ![Derleth](https://avatars.discourse-cdn.com/v4/letter/d/b9e5f3/32.png) [@Derleth](https://boards.straightdope.com/u/Derleth)\
**Post date:** [October 20, 2009, 7:13am UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/20 "2009-10-20T07:13:21Z")

</div>

> [@ultrafilter](#):
>
> What about XML then? It’s also ostensibly for describing documents, but people can (and do) write interpreters for XML-based scripting languages.

XML on its own is not a programming language. XML is a syntax you can use for any purpose. It has no defined semantics. You can, in fact, implement HTML in terms of XML. This has been done: It’s called XHTML.

HTML, on the other hand, is tied to describing a certain kind of document. It is not abstract in the ways XML is and can really only be used for that one purpose.

[Next page](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406.md?page=2)
