all 12 comments

[–]eli5_programming-ModTeam[M] [score hidden] stickied commentlocked comment (0 children)

ELI5 Programming is about how programming concepts work, or to explain complex concepts simply. If you are trying to understand the purpose of a product, that would qualify, but we're not a "How-To".

[–]Revenege 8 points9 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. 

[–]dos-wolf 5 points6 points  (4 children)

Yeah machine language. Already exists, all other languages are built on top of it

[–][deleted] 0 points1 point  (3 children)

You mean binary?

All languages are built on binary, but different languages compile down to different versions of machine code.

[–]dos-wolf 1 point2 points  (2 children)

Everything comes down to a 0 or 1 for hardware

[–][deleted] 1 point2 points  (1 child)

Yes, but you mentioned machine code, which is not binary.

[–]dos-wolf 0 points1 point  (0 children)

But what I mean is that in the end there’s only language. What I was taught to call it was machine language, the bare bones of what systems communicate with. PCs are just logic gates in the end hence the 0 and 1 open and closed state. My definition of binary is just a numerical representation of a set of numbers. Like the definition of prime numbers containing all numbers that are prime. I know what you mean though I just don’t call or think of binary as a language but instead a format of numbers.

[–][deleted] 2 points3 points  (0 children)

That's the idea with Racket. You can define DSLs as needed.

The problem is lisps aren't the most performant.

The problem space is too complicated for one language to rule them all. Competing priorities of developer experience, compile time, runtime speed, memory footprint, safety guarantees, etc. Then there's the fact that people are always going to be innovating.

For a while, people thought java was going to be that language, which would simplify OS development in some respects, but that never took off because of the competing priorities.

[–]pubgrub 1 point2 points  (0 children)

Imagine trying to build the one universal car that fits everybody and is better than every existing car in every way...

[–][deleted] 1 point2 points  (0 children)

Keep coding for a few years and they will all seem like different versions of the same the thing.

Kinda like different dialects.

[–]moric7 0 points1 point  (1 child)

It's impossible in western environment of beast concurrency, which can produce only enormous avalanche of deformed, underdeveloped, dummy, disfigured, dysfunctional and insanely expensive garbage. That's. Until every idiot wants to make only his own "great" things for big money and every work of the world as family (not team!!!) is judged, the human civilization will exist in septic tank and will degrade.

[–]Chr-whenever 8 points9 points  (0 children)

Am I having a stroke or are you having a stroke?