I was reading the post Why Language is Important (Why I prefer C#) from 'Dot Net Thoughts' and the first paragraph of the article ends with this statement:
...every language was created for a specific purpose.
This got me thinking about exactly "why" certain languages exist...ie what is their specific reason of their existence.
My goal from this question is to list as many programming languages as possible and their main reason of why they exist...why they are used; and this will help people on deciding on what language to use for specific tasks.
Languages such as C#
, VB
, Haskell
, Eiffel
, Perl
, Python
, Java
etc; procedural languages, functional languages, object-oriented languages etc...
Well the most obvious one is COBOL: Common Business Oriented Language And you can see it by reading the sourcecode, too. Python had mainly multi Paradigms and clear simplicity in mind (however one can always argue about that I'd agree).
I think JAVA is the only language that was advertised with its purpose:
I don't think that this is a useful statement. There are general purpose languages, and some languages that initially served a specific purpose have since grown to being rather general (e.g. Perl). Some languages are also perceived as being special purpose, even though they were general from the start (Lisp).
That article also shows a really narrow view of the programming language landscape.
Python: A programming language that is easy to read and use.
APL: A language that is extremely good at solving mathematical problems.
J and K: Both are trying to make APL usable to people with qwerty keyboards.
Java: Made as a better C++, with focus on using a single codebase.
C++: Made as a better C with Object-Orientation.
(Qt: Whilst it is not a programming language, it does extend C++ that it's worth mentioning. Qt is a GUI toolkit, a database abstracter and many, many more things. It's also cross-platform.)
C: A better B (Seriously)
Objective-C: Apple trying to make a better C with Object-Orientation.
Perl: A language build to process text, but is now a widely used "scripting" language. It also builds on the idea of "there should be more than one way to do it."
Haskell: Experiment to make a completely pure functional language, with big emphasis on the functionality.
Lisp: Originally named List Processor. Today it's a language that pioneered many of the techniques that modern languages has. Lisp is a standard and not an actual language. Sometimes called "the programmable programming language".
Common Lisp: A common implementation of Lisp. It has many features that modern languages got, but also many features that modern languages haven't got.
Scheme: Designed to be the most pure language in existence. It's mostly used as research.
JavaScript: A scripting language based on some stuff that might be Java. Apart from the name, it has nothing to do with Java. It's used nearly exclusively as the scripting language of the web. JavaScript is based on the standard ECMAScript.
Lua: A scripting language with the goal of being a good scripting language. Useless for virtually everything else.
XML: Designed to be a way to make uniform data formats, primarily for exchange of data between platforms. Highly extendible, for example XHTML (web page) can embed SVG (Vector graphics) and MathML (Guess what) documents, giving XHTML near infinite possibilities.
CSS: Designed to style HTML and XHTML documents.
Esoteric Programming Languages: Languages designed to be confusing and hard to use.
Now, I can't really name any other languages, I hope it was useful :)
Brainfuck exists to show you can write a compiler for a Turing complete language in under 200 bytes :)
Ada - Designed by the Department of Defense for safety-critical embedded/real-time systems.