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).
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
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.
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.
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.
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).
I think we are essentially arguing the same point.
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?
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.
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.
I’ll re-post this from an almost identical thread from a couple of years ago:
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.