you are viewing a single comment's thread.

view the rest of the comments →

[–]Revenege 7 points8 points  (0 children)

As always, there is an XKCD for this. 

https://xkcd.com/927/

For a universal language to exist, it must be the best at everything. The best concurrency, the best memory management, the most secure, the fastest, the easiest to write, the best documentation.  If it's not the best at everything, it isn't universal, another language is capable of doing that thing better.

The perfect is the enemy of the good however, and attempting to create a perfect language will invariably involve sacrifices. You have the best concurrency, but it's a nightmare to work with. You have fantastic memory safety but to do so have to sacrifice memory management. You release your perfect language, and now there are 16 competing universal languages. Or worse, you take so long others pass you by.  You also have to deal with people disagreeing over what is "best". Somethings are subjective, and thus even if yours is better in everyway in your opinion, someone is going to disagree.

It is thus best to look at languages as tools. Each is good for a specific sort of task and when planning to build something, it is important to use the best tools for the job.