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

Some have built in features for making certain operations easier. Some have syntax that requires fewer characters/keystrokes to write the same expression in another language. Some are more strict than others, meaning some languages will let you get away with certain errors and continue to operate while some will stop running completely on the same error. Some require you to define certain details about your code in order to work, while others allow you to define things loosely and handle the details for you. Most of the things I listed are advantages to some programmers and disadvantages to others, depending on their projects and preferences

Anonymous 0 Comments

performance – some languages make it easier to build fast applications

terseness – some languages require less text, which usually makes them easier to read and debug

tool support – some languages have free, high-quality compilers and interpreters

Anonymous 0 Comments

They are all based on the same thing, kind of. They have to tell a specific family of processors what to do. But that’s done with 1s and 0s, and nobody’s got time for that shit. It can be done, but it ain’t fun and it ain’t fast.

So instead of using “machine language” people developed assembly language to make it a little easier for humans. The assembly language gets translated back to machine language by using a special-purpose computer program.

So you write a program and it gets turned into a simpler program by using a program. Why not take it a step farther?

Since assembly language still kind of sucks, people started creating higher-level languages that are much easier for humans to use. Over time, even the next higher level. Some of the older languages are kind of janky and aren’t used much any more. Humans do learn to improve things, and software tools are certainly no exception.

Different programming languages have different advantages and disadvantages. Other’s have gone into that.

Anonymous 0 Comments

They are all based on the same thing, kind of. They have to tell a specific family of processors what to do. But that’s done with 1s and 0s, and nobody’s got time for that shit. It can be done, but it ain’t fun and it ain’t fast.

So instead of using “machine language” people developed assembly language to make it a little easier for humans. The assembly language gets translated back to machine language by using a special-purpose computer program.

So you write a program and it gets turned into a simpler program by using a program. Why not take it a step farther?

Since assembly language still kind of sucks, people started creating higher-level languages that are much easier for humans to use. Over time, even the next higher level. Some of the older languages are kind of janky and aren’t used much any more. Humans do learn to improve things, and software tools are certainly no exception.

Different programming languages have different advantages and disadvantages. Other’s have gone into that.

Anonymous 0 Comments

Let’s say you want to make a program that adds 2+3

without programming languages, from the machine’s perspective you’d need to do something like this:

Copy from from a specific memory address to the add buffer
Copy from another specific memory address to the add buffer.
Add both numbers in the add buffer
Read the result andCopy that result to some memory address

All of these commands are two character longs, because computers work in binary form, and we “translate” it into decimal or hexadecimal. So the real instructions without programming languages, in the language of the machine, might be something like this. (Yes I know my specific codes are all wrong, just demonstrating the principle. I haven’t coded in 20 years)

01 $FFFF
02 $FFFE
08
03 $FFFF

Now obviously, no programmer is going to waste his time keeping track of pure numbers for millions of lines of codes just to do a simple thing. So you have a programming language where you can write using actual commands, and it will “translate” into machine language.

some modern things can only be done using programming languages, or at least in a sane fashion. Programming languages and their compilers can handle assigning memory addresses for you so that you don’t have conflicts, either inside your own program, or with others. Now that our computers have several tiny processors, each of them being fed data through multiple “pipes”, programming languages can order things so they reach your processors in parallel at exactly the right time so nothing has to wait for previous instructions to complete.

Edit: There used to be far more people who programmed in machine language, or binary. Back when machines had very little memory or storage, and very little processing power. A basic PC cost 4-5 grand in today’s money, and its power was very limited. So, it was more efficient to pay programmers more working hours to make programs far more efficient. Nowadays even portable computers are exceedingly powerful, and they have tons of RAM/storage, so it’s more efficent/profitable to minimize time coding/programming even if programs aren’t as efficient as they could be.

Anonymous 0 Comments

“High-level” languages are closer to human-speak, they’re easier to read and write, but they don’t innately offer the degree of fine control you’d get from just writing it in binary, because you’re basically using pre-canned sets of instructions. Python is a popular high-level language, and is sometimes described as “programming at the speed of thought.”

“Low-level” languages are closer to machine-speak (binary), are essentially nonsensical at a glance without lots of experience, but allow for a great amount of control because you’re literally dictating every single itty-bitty instruction. Assembly is a common low-level language.

Depending on your needs and experience, each language offers something a little different. But at their base, all programming has a similar structure, and all languages, after they’re written, are compiled into machine-readable code for execution.

Anonymous 0 Comments

“High-level” languages are closer to human-speak, they’re easier to read and write, but they don’t innately offer the degree of fine control you’d get from just writing it in binary, because you’re basically using pre-canned sets of instructions. Python is a popular high-level language, and is sometimes described as “programming at the speed of thought.”

“Low-level” languages are closer to machine-speak (binary), are essentially nonsensical at a glance without lots of experience, but allow for a great amount of control because you’re literally dictating every single itty-bitty instruction. Assembly is a common low-level language.

Depending on your needs and experience, each language offers something a little different. But at their base, all programming has a similar structure, and all languages, after they’re written, are compiled into machine-readable code for execution.

Anonymous 0 Comments

Let’s say you want to make a program that adds 2+3

without programming languages, from the machine’s perspective you’d need to do something like this:

Copy from from a specific memory address to the add buffer
Copy from another specific memory address to the add buffer.
Add both numbers in the add buffer
Read the result andCopy that result to some memory address

All of these commands are two character longs, because computers work in binary form, and we “translate” it into decimal or hexadecimal. So the real instructions without programming languages, in the language of the machine, might be something like this. (Yes I know my specific codes are all wrong, just demonstrating the principle. I haven’t coded in 20 years)

01 $FFFF
02 $FFFE
08
03 $FFFF

Now obviously, no programmer is going to waste his time keeping track of pure numbers for millions of lines of codes just to do a simple thing. So you have a programming language where you can write using actual commands, and it will “translate” into machine language.

some modern things can only be done using programming languages, or at least in a sane fashion. Programming languages and their compilers can handle assigning memory addresses for you so that you don’t have conflicts, either inside your own program, or with others. Now that our computers have several tiny processors, each of them being fed data through multiple “pipes”, programming languages can order things so they reach your processors in parallel at exactly the right time so nothing has to wait for previous instructions to complete.

Edit: There used to be far more people who programmed in machine language, or binary. Back when machines had very little memory or storage, and very little processing power. A basic PC cost 4-5 grand in today’s money, and its power was very limited. So, it was more efficient to pay programmers more working hours to make programs far more efficient. Nowadays even portable computers are exceedingly powerful, and they have tons of RAM/storage, so it’s more efficent/profitable to minimize time coding/programming even if programs aren’t as efficient as they could be.

Anonymous 0 Comments

Same thing that make might a semi-truck better than a sedan, or a large sledghammer better than a jewelers hammer. Different tools for different jobs, but all are valid. Some are just newer though, and since nobody knows the future, a new language that tackles the same domain as an older language might be better simply because it can be built with the tools people didn’t know they needed a decade ago.

Some languages are designed for the web (Javscript), some for backend systems (Rust, C). Some were designed in the 1970s when every single 1 and 0 was precious and thus dug in roots since everything was built with them (C++), while others were designed with more modern features like supporting multi-core CPUs, and computers that can actually handle more than 64k of memory (Rust, GO).

Anonymous 0 Comments

Same thing that make might a semi-truck better than a sedan, or a large sledghammer better than a jewelers hammer. Different tools for different jobs, but all are valid. Some are just newer though, and since nobody knows the future, a new language that tackles the same domain as an older language might be better simply because it can be built with the tools people didn’t know they needed a decade ago.

Some languages are designed for the web (Javscript), some for backend systems (Rust, C). Some were designed in the 1970s when every single 1 and 0 was precious and thus dug in roots since everything was built with them (C++), while others were designed with more modern features like supporting multi-core CPUs, and computers that can actually handle more than 64k of memory (Rust, GO).