What makes different programming languages “better” than others? Or more powerful? Why have different languages developed over time? Are they all based on the same thing?

1.15K views

What makes different programming languages “better” than others? Or more powerful? Why have different languages developed over time? Are they all based on the same thing?

In: 187

78 Answers

Anonymous 0 Comments

Depends largely on what you want to do. Programming languages are kinda like tools in a Swiss Army knife. Some languages are more suited to clipping nails, while others might be better at uncorking wine.

But, at their core, all programming languages do is help automate boring or mundane tasks with things called loops. Just fancy ways of executing one piece of code over and over with slightly different inputs each time. Mind numbingly boring for you and me to sit and type out, but super easy for computers.
And then there’s a lot of cultural influence behind the inventors and the emerging ecosystems of these (contemporary) languages that ends up defining a lot about how a programming language should look, feel and behave. Its “mouthfeel,” as it were.

As you can imagine, people are highly opinionated on how looping over stuff should be done. Some like the very strict and very formal programming languages that enforce rules upon how you write code, while others prefer a more pragmatic, liberal approach that offers a great deal of freedom on how things are allowed to be done. Some folks don’t even believe loops should even be things and think automating tasks should be done with things called functions that call themselves over and over instead of using loops.

Arguments are soundly made for all approaches, Insults are flung, wars ensue, and feelings are hurt – which is why we have so many different programming languages today.

Nevertheless, they all largely stem from the great grandaddy of them all, C.

Anonymous 0 Comments

Depends largely on what you want to do. Programming languages are kinda like tools in a Swiss Army knife. Some languages are more suited to clipping nails, while others might be better at uncorking wine.

But, at their core, all programming languages do is help automate boring or mundane tasks with things called loops. Just fancy ways of executing one piece of code over and over with slightly different inputs each time. Mind numbingly boring for you and me to sit and type out, but super easy for computers.
And then there’s a lot of cultural influence behind the inventors and the emerging ecosystems of these (contemporary) languages that ends up defining a lot about how a programming language should look, feel and behave. Its “mouthfeel,” as it were.

As you can imagine, people are highly opinionated on how looping over stuff should be done. Some like the very strict and very formal programming languages that enforce rules upon how you write code, while others prefer a more pragmatic, liberal approach that offers a great deal of freedom on how things are allowed to be done. Some folks don’t even believe loops should even be things and think automating tasks should be done with things called functions that call themselves over and over instead of using loops.

Arguments are soundly made for all approaches, Insults are flung, wars ensue, and feelings are hurt – which is why we have so many different programming languages today.

Nevertheless, they all largely stem from the great grandaddy of them all, C.

Anonymous 0 Comments

Something that I don’t see here is the community. Different languages have different communities developing different libraries. If I want to do biological analysis, there is a great community of people who have developed and will help me use fantastic libraries for that in Python or R. That’s not really true for Javascript even though, technically, it could be used to complete the same work.

Anonymous 0 Comments

Something that I don’t see here is the community. Different languages have different communities developing different libraries. If I want to do biological analysis, there is a great community of people who have developed and will help me use fantastic libraries for that in Python or R. That’s not really true for Javascript even though, technically, it could be used to complete the same work.

Anonymous 0 Comments

Some languages are closer to, “you need tell the computer what to do using only 1’s and 0’s, since computers only understand 1’s and 0’s.” This is more difficult and confusing (and for a sizable program, essentially impossible), but the upside is you can be very precise in what you are doing.

Other languages are closer to, “write the code in English, the computer can translate English into 1’s and 0’s.” The downside here is that you can’t get super precise in what you are doing. The upside is that you can write a program in less time using this method.

Anonymous 0 Comments

There’s some good answers here, but I’m not sure they are at the ELI5 level… so here we go:

Programming languages are like vehicles. Some languages are like race cars and are good for speed. Some languages are like trucks. They are real work horses and get the job done, but they aren’t elegant or sexy. Some languages are like cars with an automatic transmission, so they are easy to drive, while others have a manual transmission (stick shift) and you have to do all the work yourself. Some languages are so “low level” that all you get is basically a set of wheels on a frame, like a dune buggy. If you wanted turn signals or a windshield, well, I guess you have to add that yourself. Some languages are luxury cars with fancy options like self-parking and lane-assist to keep you from hurting yourself.

There are so many kinds of cars and trucks and go-karts and all the rest because they all fulfill different needs, and it’s the same with programming languages.

Anonymous 0 Comments

There’s some good answers here, but I’m not sure they are at the ELI5 level… so here we go:

Programming languages are like vehicles. Some languages are like race cars and are good for speed. Some languages are like trucks. They are real work horses and get the job done, but they aren’t elegant or sexy. Some languages are like cars with an automatic transmission, so they are easy to drive, while others have a manual transmission (stick shift) and you have to do all the work yourself. Some languages are so “low level” that all you get is basically a set of wheels on a frame, like a dune buggy. If you wanted turn signals or a windshield, well, I guess you have to add that yourself. Some languages are luxury cars with fancy options like self-parking and lane-assist to keep you from hurting yourself.

There are so many kinds of cars and trucks and go-karts and all the rest because they all fulfill different needs, and it’s the same with programming languages.

Anonymous 0 Comments

Some languages are closer to, “you need tell the computer what to do using only 1’s and 0’s, since computers only understand 1’s and 0’s.” This is more difficult and confusing (and for a sizable program, essentially impossible), but the upside is you can be very precise in what you are doing.

Other languages are closer to, “write the code in English, the computer can translate English into 1’s and 0’s.” The downside here is that you can’t get super precise in what you are doing. The upside is that you can write a program in less time using this method.

Anonymous 0 Comments

Good languages

1. Are not overly complex
2. Have APIs and built in features that are easy to use and predictable
3. Have wide adoption, documentation, and a community of extensions/plugins/etc
4. Support commonly used programming patterns
5. Are performant
6. Have syntax that is easy to reason about

So when people complain about languages like JavaScript, it’s usually because of #2 – there are a lot of cases where it does not behave predictably. When people say they don’t like C++ it’s usually because its very complex.

Anonymous 0 Comments

Good languages

1. Are not overly complex
2. Have APIs and built in features that are easy to use and predictable
3. Have wide adoption, documentation, and a community of extensions/plugins/etc
4. Support commonly used programming patterns
5. Are performant
6. Have syntax that is easy to reason about

So when people complain about languages like JavaScript, it’s usually because of #2 – there are a lot of cases where it does not behave predictably. When people say they don’t like C++ it’s usually because its very complex.