I think the best way to think about is to be aware that programming languages are not the lowest level: they are a layer of abstraction on top of the real program.
There is, at its core, one way a program is written, and that’s in machine code (which can be manually written reasonably with assembly). When a program is “compiled” from a programming language, it is converted into machine code specific to the architecture and operating system relevant for the machine its intended to be ran on.
Writing a program in assembly (or even machine code directly) is not easy. Programming languages were created as a layer of abstraction to make programming easier, more accessible, less complicated (and therefore less error prone), and help people write better-organized programs.
Some of the goals above are pretty subjective based on what a specific person or group writing a programming language considers to be better-organized, easier, or less complicated. So each programming language is written with different goals, different perspectives, and different opinions.
Different programming languages have different ways of storing and interacting with data, different ways of organizing blocks of logic within the program, and different ways to limit the effects of programmer error (or the lack of these limits) to better cater to their specific goals.
Latest Answers