# 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:** 13\
**Page:** 3

<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, 10:48pm UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/41 "2009-10-20T22:48:21Z")

</div>

> [@Superfluous\_Parentheses](#):
>
> Also, by that definition, plain JavaScript isn’t a programming language, because it doesn’t directly support file I/O, so I just ignored it and included both SQL and JavaScript.

I think Turing-completeness is the best (most intuitive, least arbitrary) dividing line, which means _pure_ SQL is out but SQL the way it seems to be commonly used (stored procedures and/or queries embedded in a Turing-complete language) is in as part of that multi-language mixture.

Another example is the C preprocessor language: It isn’t Turing complete, but it’s always used to create programs in a Turing-complete language (both C and Haskell use it).

---

<div class="post-metadata">

**Author:** ![Pleonast](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/pleonast/32/1183_2.png) [@Pleonast](https://boards.straightdope.com/u/Pleonast)\
**Post date:** [October 20, 2009, 10:53pm UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/42 "2009-10-20T22:53:22Z")

</div>

Let’s see, chronologically, I’ve learned and used:  
Basic – mostly forgotten now  
C – still know, but rarely use now  
Prolog – completely forgotten now  
C++ – actively use now  
Fortran – remember some bits  
bash – remember a lot, but don’t use so much  
Matlab – actively using now  
Python – still learning, but using

So, my current proficient count is about 4.

---

<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, 11:47pm UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/43 "2009-10-20T23:47:25Z")

</div>

> [@Derleth](#):
>
> Another example is the C preprocessor language: It isn’t Turing complete, but it’s always used to create programs in a Turing-complete language (both C and Haskell use it).

Another fun example would be the C++ template system, which _is_ Turing complete. 😃

---

<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 21, 2009, 1:48am UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/44 "2009-10-21T01:48:54Z")

</div>

> [@Derleth](#):
>
> I think Turing-completeness is the best (most intuitive, least arbitrary) dividing line, which means _pure_ SQL is out but SQL the way it seems to be commonly used (stored procedures and/or queries embedded in a Turing-complete language) is in as part of that multi-language mixture.

Ah, but what about Epigram (or Charity, or any other system where programs must be accompanied, implicitly or explicitly, by a proof of totality)? Such languages are never (given certain basic assumptions) Turing-complete, but it seems harsh to deny them the status of being even programming languages at all.

It’s perhaps true that Turing-completeness is the least arbitrary dividing line, but it’s also perhaps true that this just means all attempts to set a concrete dividing line are pretty arbitrary. There are always going to be judgement calls for what falls under the penumbra of a term like “programming language”; the language, as it is actually spoken, isn’t that precise, nor need it be to be useful.

---

<div class="post-metadata">

**Author:** ![Napier](https://avatars.discourse-cdn.com/v4/letter/n/ce73a5/32.png) [@Napier](https://boards.straightdope.com/u/Napier)\
**Post date:** [October 21, 2009, 2:01am UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/45 "2009-10-21T02:01:48Z")

</div>

I count 18, but it’s unclear how to count some of them. For example I’ve used the Radio Shack TRS-90 ROM Basic in my work, and (30 years later) VisualBasic. I counted “BASIC” once, but how different do versions have to be to get counted separately?

---

<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 21, 2009, 5:46am UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/46 "2009-10-21T05:46:21Z")

</div>

> [@Napier](#):
>
> I count 18, but it’s unclear how to count some of them. For example I’ve used the Radio Shack TRS-90 ROM Basic in my work, and (30 years later) VisualBasic. I counted “BASIC” once, but how different do versions have to be to get counted separately?

Well, Visual Basic has absorbed enough Object Pascal and other influences that idiomatic VB programs doing the kinds of things VB programs are used for these days would be unreadable to someone who only knows 1980s-vintage ROM BASICs.

However, I think the BASIC dialect invented at Dartmouth in 1964 would be very readable to ROM BASIC programmers. And, of course, most ROM BASICs were fairly similar to each other (a lot of them were, in fact, licensed from Microsoft and modified) so calling each of them a separate language is somewhat iffy.

---

<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 21, 2009, 7:16am UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/47 "2009-10-21T07:16:41Z")

</div>

Actually QBasic is quite a step up from the normal BASIC. (Another BASIC variant which is quite ahead of its time is the BBC BASIC). It has functions, subroutines, structs, and QuickBasic came with some other fancy stuff (I believe it’s raw memory access). As such, I tend to consider them different languages because of added new constructs, syntax and functionalities (there’s no function calls in GW-BASIC for example or custom types)

Oh, do check FreeBasic which is OOP Basic, but not Visual Basic.

---

<div class="post-metadata">

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

</div>

> [@Stealth\_Potato](#):
>
> HTML is every bit as much a language as C++ is. It’s a set of strings over a specific alphabet that are derivable by a formal grammar. That makes it a formal language. It’s not a _programming_ language for reasons discussed above, but it is still a language.

Fine, I’ll hand you that 🙂 I presumed that we were solely discussing programming languages, and whether HTML merits being one (since the topic came of of whether or not it counts).

> [@Stealth\_Potato](#):
>
> Well, in that case, same as HTML: every element of description eventually gets interpreted and fed into the processor when a document is rendered. But it doesn’t matter where the instructions or other language elements go; a Java program is still a Java program if it’s never compiled, interpreted, or run, even it’s just written in pencil on paper and never gets anywhere near a computer. What matters in deciding whether something is a _programming_ language is whether strings in the language semantically describe _computation_ or something else.

I think we are essentially arguing the same point. 😃

---

<div class="post-metadata">

**Author:** ![johnpost](https://avatars.discourse-cdn.com/v4/letter/j/f17d59/32.png) [@johnpost](https://boards.straightdope.com/u/johnpost)\
**Post date:** [October 21, 2009, 1:46pm UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/49 "2009-10-21T13:46:13Z")

</div>

the poll question is

How many programming langagues are you proficient in

the thread title is

So how many programming languagesdo you know?

i don’t think the two are necessarily in agreement.

people also seem to be answering in their past experience which is different still. you can have known something that now is forgotten.

if you were proficient in a language you should be able to currently write an error free program in it. is that writing with or without using written reference? what amount of relearning time is the dividing line between proficient and not?

---

<div class="post-metadata">

**Author:** ![Voyager](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/voyager/32/133_2.png) [@Voyager](https://boards.straightdope.com/u/Voyager)\
**Post date:** [October 21, 2009, 8:17pm UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/50 "2009-10-21T20:17:12Z")

</div>

C  
Perl  
Pascal - taught this. Hacked the Zurich compiler also.  
PL/1 - taught this too  
Fortran  
BASIC  
BCPL ( the predecessor to C)  
AWK  
JCL  
Some random language which was a syntactic sugaring of lambda calculus which I programmed in for my Programming Linguistics class my freshman year.

Assembly languages:  
360 assembler  
PDP-1 assembler  
PDP-11 assembler (taught this.)  
Cyber assembler (taught this also.)  
LGP-21 assembler - I wrote this assembler myself since we pretty much only had machine language.  
Oddities  
lex/yacc, if you want to count them  
8008 assembler, except we wrote this ourselves and ran it on a simulator we wrote ourselves.  
Assembler for Lockheed Sue microcode  
Marble - a high level microprogramming language, object oriented in 1980, which I designed and implemented for my dissertation.  
Probably a few others lost to the mists of time.

---

<div class="post-metadata">

**Author:** ![Shodan](https://avatars.discourse-cdn.com/v4/letter/s/9f8e36/32.png) [@Shodan](https://boards.straightdope.com/u/Shodan)\
**Post date:** [October 21, 2009, 9:02pm UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/51 "2009-10-21T21:02:35Z")

</div>

Geez.

COBOL  
Natural/ADABAS  
DB2  
Sybase  
RPG-II  
IBM BAL  
Kodel  
Java  
BASIC  
If **Voyager** gets to count MVS JCL, then so do I.

Regards,  
Shodan

---

<div class="post-metadata">

**Author:** ![BigT](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/bigt/32/12044_2.png) [@BigT](https://boards.straightdope.com/u/BigT)\
**Post date:** [October 22, 2009, 4:13am UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/52 "2009-10-22T04:13:19Z")

</div>

I was just happy to get to vote in one of these programmer threads. While I dabble in a bunch of languages, the only one I really know is QBASIC. I have this thing where I can’t seem to forget stuff I learned as a kid, and have trouble retaining stuff I learned as an adult.

---

<div class="post-metadata">

**Author:** ![JimOfAllTrades](https://avatars.discourse-cdn.com/v4/letter/j/ba8739/32.png) [@JimOfAllTrades](https://boards.straightdope.com/u/JimOfAllTrades)\
**Post date:** [October 23, 2009, 4:16pm UTC](https://boards.straightdope.com/t/so-how-many-programming-languages-do-you-know/514406/53 "2009-10-23T16:16:59Z")

</div>

I’ll re-post this from an almost identical thread from a couple of years ago:

> **[How Many Programming Languages Are You Fluent In?](https://boards.straightdope.com/sdmb/showthread.php?t=439669)**
>
> Several people commented on their programming language knowledge in this thread so it seemed like it would be fun to let us all go. HTML, CSS, etc. don’t count. And you only need to have at one time been proficient for it to count. Myself: x86...

The situation hasn’t changed much since then except that I’ve done a lot more work in ASP (classic) in the last couple of years, and Clarion 7 has been released, which I’m still trying to get my arms around.

Languages I’ve used professionally (i.e., I’ve charged people to work in them):

IBM System 34 and System/36 Assembler  
RPG II, RPG III, RPG IV, RPGLE (beginner in LE)  
OCL on the IBM System 34 and System 36  
CL on the IBM AS/400  
GWBasic and QBasic on IBM compatible PCs  
Visual Basic 4, 6, and just a little .net  
Clarion for Dos 2 and 3  
Clarion for Windows 2, 4, and 6  
Turbo C  
ASP

and scripting tools from various programs such as Word, ProComm, etc.

There are a few others such as:

COBOL  
Fortran  
Basic on the Tandy TRS-80  
Basic on the Commodore Amiga  
C

that I’ve played with anywhere from a tiny bit to fairly extensively but never used them professionally.

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