What is this Dictionary of Programming Languages?

This page describes the background and motivations for my dictionary of programming languages. It is organized something like an FAQ list; just click on one of the questions listed below to jump right to it.


What does the Dictionary Hold?
This dictionary stores information about computer programming languages: old ones, new ones, popular ones, and specialized ones. The entries are stored in alphabetical order, just like a regular dictionary. Some of the entries are little more than points to related entries, but most of them include a short description of the language along with some remarks about its origins and links to resources about it on the Internet. Note that there are many computer data formats that are not programming languages (e.g. HTML) and these don't appear in the dictionary.

How does it work?
The dictionary is maintained as a set of text files on the CGI web server of my ISP. For any kind of query, the general Compact Encyclopia Processor (CEP) CGI script checks the parameters, and then generates a web page. It generates the page from a collection of templates, and by pulling information from the dictionary data files. The entire program is written in Perl, which is a very good language for writing web CGI programs.

Of course, the CEP script is available for free, just in case you want to set up your own web dictionary for some topic.

How many languages are listed in the dictionary?
I haven't really been keeping track. The dictionary will tell you, however. If you select the link labeled "List of Names" from that start page, you'll get a full listing. At the bottom of the list will be a count of entries retrieved -- this is the number of entries in the dictionary. Of course, many of the entries are little more than cross-references, so that's not really a fair count.

Hopefully soon I'll add some facility for really counting the non-empty entries to the CEP script.

What qualifies a language to appear here?
This list consists of programming languages; a language must meet all the following criteria to appear here:

In order to help group the languages, each one is assigned to a particular primary group or type. Many languages contain features drawn from several language families or programming paradigms, but I've high-handedly stuffed each one into a pigeonhole from the list below.
CodeType DescriptionExamples
AApplication/Macro languages, extension and customization languagesVBA, Elisp
CCommand and Scripting languagescsh, Perl
DDatabase, Report-generation, and Text-processing languagesTeX, RPG, Mumps
FFunctional and Lambda-calculus-based languagesLisp, ML
LLogical, Rule-based, and Inference-based languagesProlog, OPS5
MMathematical, statistical, modelling, and simulation languagesMagma, SLAM
OObject-oriented programming languagesJava, Smalltalk
PParallel, multi-programming, or distributed processing languagesCSP, Linda
SBlock-structured 'traditional' languagesC, Pascal
TThreaded interpreter or stack-based languagesForth

It might be necessary to add more types, but I'm hoping that this set will cover everything.

Why isn't XXXX in the dictionary?
If your favorite (or least favorite) language (Visual Ty-DiBol19 or whatever) isn't on the list, the most likely reason is that I haven't added it yet. If it is very new, rare, or specialized, I might just never have heard of it. Please tell me about languages that you believe should be on the list but aren't. If you can, please supply a URL where I can learn more about the language as part of adding it to this dictionary.

Database query languages are not on the list because, for the most part, they don't satisfy the criteria outlined above. (For example, standard SQL doesn't support computational constructs sufficient to emulate a push-down automaton, much less a Turing Machine.) Database query languages that have been extended to support computation are candidates for the dictionary, and I'd love to hear about them.

Can I add my favorites to the dictionary?
Right now, no. To help preserve consistency (and avoid writing documentation) I'm not giving out the database update procedures at this time. If you have a whole bunch of input you'd like to perform for me, though, send me an email and we'll discuss the matter :-).

Where does the information come from?
The information on the languages listed in this dictionary comes from a lot of places: my head, books, web pages, magazines, and other programming languages lists. The other language lists I like best are listed as links on the dictionary start page. In particular, the master list at U. of Geneva is an awesome compilation.

Why are some entries so much longer than others?
Ideally, all the entries would be long and detailed. Some entries are short because I couldn't find enough information about the language (e.g. Coral 66), while others are short because the language is a dialect of some other language with a detailed entry (e.g. Jovial ). A few of the entries for popular languages are short because I haven't had time to go back and add detail to them yet.

What if I find a mistake or a problem?
Please inform me right away if you find an error, omission, typo, out-dated statement, or anything wrong with this dictionary. You can mail to me at home or at work.

What's the point of all this?
No point, just my little contribution to the web.

Seriously, I looked at several other programming languages lists on the web and thought there was room for another contributor. For example, this list will never be nearly as comprehensive as the CUI list, but my entries have links and code samples which the CUI list entries do not have.

Are you qualified to write up this dictionary?
Probably not. I have an M.S. in computer science, and have been working in the field since about 1985. Certainly there are people in the programming language community that are far better qualified than I am, and I welcome their input.

There's too many languages? Which one is the best?
That's a trick question! There is no "best" programming language for everything, although the programming community seems to reach concensus that certain languages are extremely good for certain kinds of applications. For example, is Lisp the best language ever? It's hard to say, but it was and is the most popular overall for writing AI applications.

Caveats aside, the list below are some of my personal favorites, on the basis of expressive power, influence on computing technology, and general coolness. They are not in any particular order.

If I get enough people sending me alternative 'top-10' lists, maybe I'll make a special page of just those.


Personal Musings


[Ziring MicroWeb Home]   [Dictionary Start]   [Sign Guestbook]

Dictionary maintained by Neal Ziring, last modified 12/21/97.