Yes.
* they encourage competition, which leads to better implementations
* they help the language reach new niches (e.g. on the web; in embedded systems; ...)
* they encourage language standardization, which reduces risk to users.
No
* they dilute community effort -- only so many people can write good compilers and runtimes
* they can lead to fragmentation and incompatible code as languages diverge, increasing risk to the success of the language overall.
* they confuse users, further hurting adoption. Particularly beginners have trouble knowing which implementation is a good choice.
Yes.
* they encourage competition, which leads to better implementations
* they help the language reach new niches (e.g. on the web; in embedded systems; ...)
* they encourage language standardization, which reduces risk to users.
No
* they dilute community effort -- only so many people can write good compilers and runtimes
* they can lead to fragmentation and incompatible code as languages diverge, increasing risk to the success of the language overall.
* they confuse users, further hurting adoption. Particularly beginners have trouble knowing which implementation is a good choice.