They don’t all do the same thing. Some of them are custom-built for certain purposes (e.g. database management versus number-crunching).
Others are built especially to cater to certain environments, either a type of hardware or a particular software environment.
The difference between the remaining “general purpose” languages usually comes down to a difference of opinion about the best way to write programs. For example, some might favor an approach where you declare types beforehand in great detail; others might just let the compiler figure out the types at compile time.
Latest Answers