500 Programming Languages
Posted Mon, Jul 6, 2009 in:I mentioned yesterday that I would be starting a series, talking about “some number” of programming languages.
Well, that number, as it turns out, it at least 500.
What?
I’m very interested in programming languages, but I’ve probably only ever written code in about 25 different languages, so I’m sure there’s some great language features and paradigms that I’ve never really tried. With this series, I aim to remedy this problem.
The goal of this project is to write a blog post about, and code in, every real programming language that I can get my hands on and a few of them which some might not call “real”, with an end goal of writing about and code in at least 500 different languages.
Based on languages I’ve found over the years, and the Wikipedia list of programming languages, there should be at least 500 languages I can get my hands on. There are at least 700 esoteric programming languages, but I will only be covering a few of those, like Brainfuck, LOLCODE, and Unlambda, since I want the posts of this project to be at least somewhat useful.
Why?
Aside from my own Pokémon-style reasons for wanting to do this project (gotta catch ‘em all!), I want to share information about programming languages with others.
The idea is for each post to be a sort of introduction and crib-sheet for the language it’s about, ideally enough information for someone to gauge whether or not they’d like to try this particular language out.
For older languages, it will be more of a history, since generally most people wouldn’t be interested in actually writing code in an old, dead language.
Also, I would love to see some conversation emerging around various languages, be it discussions of good and bad things about a particular language, or elaboration on parts that I may have overlooked.
The Plan
For each language, I plan on doing the following:
- Write a summary of the language, including who created it, what it’s main uses might be, what paradigms it supports or encourages, and any other tidbits about the language itself.
- Cover the anatomy of a basic program in the language.
- Write a somewhat non-trivial program in the language. This I will only do for languages which I can get a running compiler or interpreter for. I’m not going to spend any money on this, so I will most likely not write any code in strictly-commercial languages or ones which would require me to buy an IBM mainframe to run.
- Cover where and how to get and set up the language. If a language is particularly hard to find and/or get compiling, I’ll include information on how I got it and got it set up.
- List plenty of links to language resources (for languages which have plenty of resources). I am by no means going to give a complete, exhaustive look at each language, so for those who are interested I will give you links to wherever it is that I think you can get more in-depth information.
- Anything else that seem appropriate at the time.
If anyone can think of anything else they would like me to add to this list, please let me know. I really want this to be a project for others, not just me, so I’ll be glad to get any feedback anyone has.
The List
For those who are interested in which languages I’m planning on writing about, the tenative list is below.
If you know of a programming language that is not on the list, please let me know and I’ll add it. There are currently 518 languages on the list, but I know that I won’t be able to get my hands on some of them, so I’d like to be sure that I have at least 500 that I can get my hands on.
As I have time to do so, I will update the list to include links to the most relevant page about each language, and as I publish each post I will add a link to the post in the list as well.
I will be going through the list in lexicographical order, so first up: A+
And now, without further ado, the list:
(If you see the same name more than once, it’s because there are multiple languages with that name.)
- A+ See my post on A+
- A++
A# (.NET)this is just a port of Ada to the CLI. No need to do Ada twice.A# (Axiom)*seems to actually just be called “The Axiom Language,” so I’ve moved it belowA-0I couldn’t even find an example of what code for the A-0 system looked like, let alone a compiler- ABAP
- ABC
- ABC Algol
- ABLE
- ABSET
- ABSYS
- ACC
- ACCENT
- ActFX
- ActionScript
- ACT-III
- Ada
- Agora
- Afnix
- Aldor
- Alef
- ALF
- ALGOL
- Alice
- Aluminium
- APL
- AppleScript
- Amiga E
- AMOS
- ARB
- Arc
- ARS++
- Assembly
- ATS
- AutoLISP
- AWK
- ASP.NET
- B
- BACI
- BASIC
- bc
- bCompile
- BCPL
- BeanShell
- Befunge
- BETA
- Bigwig
- Bistro
- BitC
- BLISS
- Blue (Monash)
- Blue (Lechak)
- Boo
- Bourne Shell
- Bourne-Again Shell
- Boxx
- BPEL
- Brain
- Brainfuck
- BUGSYS
- BuildProfessional
- BYOND
- C
- C–
- C++
- C#
- C shell
- Caché ObjectScript
- CAL
- Cat
- Cayenne
- C-BOT
- Cecil
- Cel
- Cesil
- CFML
- Cg
- Chapel
- CHAIN
- Charity
- Chef
- CHILL
- CHIP-8
- chomski
- Chuck
- Cilk
- CICS
- CL
- Claire
- Clarion
- Clean
- Clipper
- CLIST
- Clojure
- CLU
- CMS-2
- COBOL
- CobolScript
- Cobra (from Cobra Language LLC)
- Cobra (from Squeaky Duck)
- CODE
- ColdFusion
- ColorForth
- COMAL
- Common Intermediate Language
- Common Lisp
- COMPASS
- Component Pascal
- COMIT
- Concept
- Concurrent Clean
- Concurrent ML
- Constraint Handling Rules
- Converge
- CORAL 66
- Corn
- CorVision
- COWSEL
- CPL
- CSP
- Csound
- Cue
- Curl
- Curry
- Cyclone
- D
- D4
- dBase
- Dao
- DASL
- DataFlex
- Datalog
- dc
- DCL
- Deesel
- Delphi/Kylix
- Dialect
- DinkC
- Dialog Manager
- DIBOL
- DL/I
- Dylan
- Dynace
- D++ (J#/J++)
- E
- Ease
- EASY
- Easytrieve
- eC
- Edinburgh IMP
- Einstein
- Eiffel
- Elan
- elastiC
- Elf
- Emacs Lisp
- EGL
- Epigram
- Erlang
- Escapade
- Escher
- Esterel
- Euclid
- Euphoria
- Euler
- EXEC
- EXEC 2
- Extensible ML
- F
- F#
- Factor
- Falcon
- FALSE
- Fan
- Fawlty
- Felix
- Ferite
- FFP
- Fjölnir
- FL
- Flapjax
- Fly
- FLOW-MATIC
- FOCAL
- FOCUS
- FOIL
- FORMAC
- Formula Language
- Forth
- Fortran
- Fortress
- FoxPro
- FP
- Frink
- Frontier
- F-Script
- Fuxi
- GAP
- Game Maker Language
- GameMonkey Script
- GAMS
- Gibiane
- GLSL
- Gödel
- Godiva
- GOTO++
- GPSS
- GRASS
- Green
- Groovy
- HAL/S
- HAScript
- Haskell
- HaXe
- High Level Assembly
- HLSL
- Hoc
- Hop
- Hope
- HyperTalk
- ICI
- Icon
- IDL
- IMP
- Inform
- Information Processing Language
- Informix-4GL
- Io
- Ioke
- IPTSCRAE
- ISPF
- ISWIM
- J
- J#
- J++
- JADE
- Jal
- Janus
- JASS
- Java
- JavaScript
- JCL
- Join Java
- Joule
- JOVIAL
- Joy
- JSP
- K
- KEE
- Kiev
- Korn shell
- Kite
- KM
- Kogut
- KRC
- KRL
- KRYPTON
- L
- L
- L
- L
- LabVIEW
- Ladder Logic
- Lagoona
- LambdaMOO
- LANSA
- Lasso
- Lava
- Lead
- Leda
- Leadwerks Engine
- Lean
- Legoscript
- Lei
- Limbo
- Limnor
- LINC
- Linda
- Lingo
- LISA
- Lisaac
- Lisp
- Logo
- LOLCODE
- LPC
- LSL
- LSE
- Lua
- Lucid
- Lush
- Lustre
- LYaPAS
- M
- M4
- MAD
- Magik
- Magma
- Magpie
- Maple
- Mary
- Mathematica
- MATLAB
- Mawl
- Maxima
- MaxScript
- Maya Embedded Language
- Mercury
- Mesa
- MicroScript
- MillScript
- MIMIC
- Mindscript
- MiniD
- Miranda
- MIVA Script
- ML
- Moby
- Modula
- Mondrian
- Mortran
- Moto
- Mouse
- MSL
- MUMPS
- Mythryl
- Napier88
- Natural
- Nemerle
- NESL
- Net.Data
- NetLogo
- newLISP
- NewtonScript
- Nexus
- NGL
- Nial
- Nice
- Nickle
- Nosica
- NQC
- Nu
- NXC
- o:XML
- Oberon
- Object Lisp
- Object Pascal
- Objective-C
- Objective Caml
- Objective-J
- ObjectLOGO
- Obliq
- occam
- occam-π
- Octave
- O’Haskell
- OmniMark
- Opal
- Open Programming Language
- OPS5
- ORCA
- Organiser Programming Language
- Oxygene
- Oz
- P”
- PARI/GP
- Pascal
- Pawn
- PCASTL
- PEARL
- Perl
- PHP
- Phrogram
- Pico
- Piet
- Pike
- PIKT
- PILOT
- PILS
- Pizza
- PL/0
- PL/1
- PL/8
- PL/B
- PL/C
- PL/I
- PL/M
- PL/P
- PL/SQL
- Plankalkül
- PLEXIL
- Pliant
- PLOT
- PPL
- POP-11
- Poplog
- PostScript
- Processing
- Prograph
- Prolog
- Promela
- Proteus
- PROIV
- ProvideX
- Python
- Q
- Q
- Qi
- QtScript
- QuakeC
- Qore
- QPL
- R
- R++
- Ratfiv
- Ratfor
- Raven
- rc
- REPL
- REBOL
- Redcode
- REFAL
- Reia
- Revolution
- REXX
- Rlab
- Robot Scripting Language
- RPG
- RPL
- Ruby
- S
- S2
- S3
- S-PLUS
- S-Lang
- SAIL
- SAM76
- SAS
- Sather
- Sawzall
- Scala
- Scheme
- Scilab
- Script.NET
- Sed
- Seed7
- Self
- SETL
- Shakespeare
- Shift Script
- Shiny
- SIMPOL
- SiMPLE
- SIMSCRIPT
- Simula
- SISAL
- Slate
- SLIP
- SMALL
- SmallTalk
- SNOBOL
- Snowball
- SNUSP
- SPARK
- Spice
- SPIN
- SP/k
- Squirrel
- SR
- S/SL
- SML
- SuperCollider
- Subtext
- Suneido
- SYMPL
- SyncCharts
- T
- TACPOL
- TADS
- Tea
- TECO
- TIE
- Tcl
- Tex
- Timber
- Tom
- TOM
- topspeed
- Trac
- trad4
- TTCN
- Turing
- TXL
- Ubercode
- Unicon
- Uniface
- uniPaaS
- Unlambda
- UnrealScript
- Vala
- Verilog
- VHDL
- Voodoo
- vvvv
- Water
- WebQL
- Whitespace
- X++
- X10
- XBL
- xHarbour
- XL
- XOTcl
- XPL
- XPL0
- XQuery
- XSLT
- Y
- Yoix
- Yorick
- Z
- Ziggurat
- Zonnon
- ZOPL
- ZPL
- ZZT-oop
- Ωmega