There is an element of xkcd 927 at play, but mostly the different languages do different things. There is a concept of levels of abstraction in programming languages: at one end you have assembler which is directly interpreted by the computer but is almost unintelligible to a person, at the other end you have Visual Basic or Perl which are as close to normal human language as possible, but need to be turned into something that the computer hardware actually uses.
Other examples might be Python and Matlab, which look pretty similar. Python is all things to all people and so can be used for a wide variety of tasks but is perhaps not optimised for any of them. Matlab is specifically built around handling large matrices (sort of multi-dimensional tables of data) which makes it great for research and certain sorts of maths. Anything you can do in Matlab you can probably do in Python, but your code might be messier and take longer to run.
Then there is the whole field of web languages like Java[script], these are built to let you do the sorts of things people do on websites. Originally that meant displaying text but of course now there is so much more than that.
Latest Answers