I’m just starting my coding journey and was curious: how are coding languages developed? Like, who is it who decided that print() would be the function that makes text to appear on a screen, and how do all the computers know to do the same thing? Is there underlying code for code?
Welcome to the forums @pysurfer93732!
def my_function(): or
This however has a problem: high level languages are in of themselves nonsensical to CPUs. This means that we need the step of converting our nice human-readable code into something lower-level that can actually be processed by the computer (machine code). This is done by a piece of software called an interpreter/compiler (they’re not quite the same, but achieve the same fundamental goal and the difference isn’t critical here) which produces machine code (in binary) for its specific high level language.
This “how do all computers know to do the same thing” effect is achieved by this software, as it’ll convert your Python code into whatever the needed machine code for the given type of CPU.
Disclaimer that there’s a lot of caveats to this, but that’s the general gist
Do you mean this in a “why is it named that way” context? If so, I can only guess it came from some old language naming it after actual printing and that’s become a convention across a few languaes
Thank you! That explanation of “high level languages” going through an “interpreter/compiler” that produces the binary that computers use is exactly what I was wondering.
My question about “who decided…” is more about who comes up with coding languages in the first place? Are there governing bodies around Python/Java etc.? I get the impression that some of these languages continue to undergo development, so was curious if there’s a roomful of people making those development decisions.
No problem! The answer there is just “exactly how depends” to be honest but generally yeah, there’s some kind of standards organisation behind major languages. Python for example has a series of “Python Enhancement Proposals” that are intended to be a way of proposing major new language features (see PEP-0001). It also has an elected steering council designed to act as final arbiters of the language.
Java has something similar with it’s own Governing Board (mostly made up of Oracle staff, with Oracle being the company that developed it).
Yeah they definitely do, although it’s not necessarily a case of “it’s only those in charge that have any capability to suggest modifications to the language”. Python for example has an extensive guide detailing how developers can contribute: https://devguide.python.org/
Sun Microsystems, actually, but then Oracle bought them and all their patents/licensing rights.
For a language like Java or Python, which are modern, they are actually written in earlier yet still really sophisticated languages like C or C++.
When you get lower and lower level, you get C being written in Assembly which is closer to just the eventual series of 1 and 0 which translate to positive or negative voltage running through wires and transistors that make up a CPU.