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.23K 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

A lot of comments in here about programming fundamentally works.

To really break it down to ILI5, yes there are some things that make certain languages “better”, it’s all about preference to the programmer in the end. There are also certain things about programming languages that attract more users to that language.

For example, JavaScript is embedded in every modern web browser. It grew in popularity with developers who wrote code for the browser, and because those developers already knew the language, JavaScript also became popular as a server language because they already knew JavaScript and it made transferring between tasks a lot easier when you only need to know one programming language.

Programming languages also attract certain users over use cases, because of what “Libraries” are available for that language. You can imagine a “Library” as similar to a physical library, there are lots of books that provide certain information. A programmer fills out such “libraries” with scripts, imagine a library that contains all the information related to the biology of cats. If you need to know the biology of cats, do you rewrite your own books, or do you simply use an existing library? A lot of libraries (especially for basic functionality) are provided by the Language themselves, so you don’t have to do the work.

There are lots of sites for online sharing such libraries, C# has [NuGet](https://www.nuget.org/), Java has [Maven](https://maven.apache.org/), JavaScript has [NPM](https://www.npmjs.com/), Ruby has [Gems](https://rubygems.org/), and there are others for other languages.

There are a lot of Language specific features that may make one more enjoyable to work with as well. I’ve taken a liking to C# because it supports things like Null-coalescing operations. A “Null” value is Nil, it means nothing has been set. With Null-coalescing you can check for these “undefined” values, and set to a fallback very easily.

What you can do as this in C#:

string x = null;
x ??= “Hello World”;

Is this in Java:

String x = null;
if (x == null) {
x = “Hello World”;
}

One is much less to have to type out than the other.

Anonymous 0 Comments

A lot of comments in here about programming fundamentally works.

To really break it down to ILI5, yes there are some things that make certain languages “better”, it’s all about preference to the programmer in the end. There are also certain things about programming languages that attract more users to that language.

For example, JavaScript is embedded in every modern web browser. It grew in popularity with developers who wrote code for the browser, and because those developers already knew the language, JavaScript also became popular as a server language because they already knew JavaScript and it made transferring between tasks a lot easier when you only need to know one programming language.

Programming languages also attract certain users over use cases, because of what “Libraries” are available for that language. You can imagine a “Library” as similar to a physical library, there are lots of books that provide certain information. A programmer fills out such “libraries” with scripts, imagine a library that contains all the information related to the biology of cats. If you need to know the biology of cats, do you rewrite your own books, or do you simply use an existing library? A lot of libraries (especially for basic functionality) are provided by the Language themselves, so you don’t have to do the work.

There are lots of sites for online sharing such libraries, C# has [NuGet](https://www.nuget.org/), Java has [Maven](https://maven.apache.org/), JavaScript has [NPM](https://www.npmjs.com/), Ruby has [Gems](https://rubygems.org/), and there are others for other languages.

There are a lot of Language specific features that may make one more enjoyable to work with as well. I’ve taken a liking to C# because it supports things like Null-coalescing operations. A “Null” value is Nil, it means nothing has been set. With Null-coalescing you can check for these “undefined” values, and set to a fallback very easily.

What you can do as this in C#:

string x = null;
x ??= “Hello World”;

Is this in Java:

String x = null;
if (x == null) {
x = “Hello World”;
}

One is much less to have to type out than the other.

Anonymous 0 Comments

Programming languages might not be “better” overall, but they could be better at certain things. Granted, most of them will have almost identical sets of features, but would perform better under some given circumstances or would be better applied with an specific paradigm.

What could set them apart, however, and this is specially true for some of those PL that have gone mainstream, is the ecosystem (tools, libraries, community support, etc).

Anonymous 0 Comments

Programming languages might not be “better” overall, but they could be better at certain things. Granted, most of them will have almost identical sets of features, but would perform better under some given circumstances or would be better applied with an specific paradigm.

What could set them apart, however, and this is specially true for some of those PL that have gone mainstream, is the ecosystem (tools, libraries, community support, etc).

Anonymous 0 Comments

To give another analogy, let’s talk about poetry and legal documents.

You can say A LOT with a simple poem. A legal document on the other hand is very verbose; you need to describe every detail to make sure there is nothing left for interpretation.

Python is one language you could relate to poetry. The language is defined in a way where you can do many things in a single line of code. This makes it quick to read and write.

C++ is another language that is in the same category of languages as python. C++ would resemble more closely a legal document. If you wanted to translate some code written in python to c++, you could get it to do the same thing, but it might be several lines longer.

So why would you ever use c++? Imagine if all of your legally binding contracts were written as poetry; there would be a lot left up to interpretation. C++ as a language is built to give the programmer specific control over what the computer is doing. You can write code to explicitly define what a piece of information is and how it should be used.

These are just two different programming languages within a broader category of “object oriented” programming languages.

While these programing languages describe how to do something, there’s another category of programming languages called Functional programming languages. Programs written in these languages describe what something should look like.

Anonymous 0 Comments

To give another analogy, let’s talk about poetry and legal documents.

You can say A LOT with a simple poem. A legal document on the other hand is very verbose; you need to describe every detail to make sure there is nothing left for interpretation.

Python is one language you could relate to poetry. The language is defined in a way where you can do many things in a single line of code. This makes it quick to read and write.

C++ is another language that is in the same category of languages as python. C++ would resemble more closely a legal document. If you wanted to translate some code written in python to c++, you could get it to do the same thing, but it might be several lines longer.

So why would you ever use c++? Imagine if all of your legally binding contracts were written as poetry; there would be a lot left up to interpretation. C++ as a language is built to give the programmer specific control over what the computer is doing. You can write code to explicitly define what a piece of information is and how it should be used.

These are just two different programming languages within a broader category of “object oriented” programming languages.

While these programing languages describe how to do something, there’s another category of programming languages called Functional programming languages. Programs written in these languages describe what something should look like.

Anonymous 0 Comments

> What makes different programming languages “better” than others?

The thought process behind them, i.e., what “problem” are they trying to solve.

> Or more powerful?

Their core library. Small pieces of code written in said language bundled with it that do some basic stuff.

> Why have different languages developed over time?

Pretty much the same reason why some are “better” than others.

> Are they all based on the same thing?

Yes. The theoretical reason is turing machines. The practical reason is assembly code.

Anonymous 0 Comments

> What makes different programming languages “better” than others?

The thought process behind them, i.e., what “problem” are they trying to solve.

> Or more powerful?

Their core library. Small pieces of code written in said language bundled with it that do some basic stuff.

> Why have different languages developed over time?

Pretty much the same reason why some are “better” than others.

> Are they all based on the same thing?

Yes. The theoretical reason is turing machines. The practical reason is assembly code.

Anonymous 0 Comments

I think it should be mentioned that programming languages evolved with the hardware. From mechanical reading cards, to faster vacuum tubes, to faster transistors, to faster disc readers, to faster RAM. Each time hardware evolved new programming languages took advantage of it by using more complex commands and routines. Compilers, that interpret the commands, have became so fast now, that they can compile in real time, or on the fly. So you don’t have to wait for a compiler to complete to run the program or application.

Anonymous 0 Comments

I think it should be mentioned that programming languages evolved with the hardware. From mechanical reading cards, to faster vacuum tubes, to faster transistors, to faster disc readers, to faster RAM. Each time hardware evolved new programming languages took advantage of it by using more complex commands and routines. Compilers, that interpret the commands, have became so fast now, that they can compile in real time, or on the fly. So you don’t have to wait for a compiler to complete to run the program or application.