JavaScript Is Not Java

  • This seems to come up in nearly every conversation about programming on the IT side of the fence. Every time someone mentions Java, someone will think it is JavaScript or vice versa. This super important for anyone in IT to understand: Java and JavaScript are unrelated and totally different programming languages and under no circumstances can the names even remotely be used interchangeably.

    As a general rule in IT, names of things are important and we should never casually change names, spellings or make nicknames for things without fully understanding what they mean or confusion will result. IT is not a field where casually misusing terms can work. Just because you are not intimately familiar with a specific term does not mean that using a specific term does not mean something very specific to someone else.

    Java is a very large and very old programming language and platform originally from Sun and now from Oracle. It is the world's most popular programming language (with about 20% of the world programming mindshare) and has been the most or nearly the most important language for two decades. Java is object oriented, a member of the C family and famously both a language itself and a very robust language runtime platform. Java is compiled to bytecode. Typically Java is only used on servers and is by far the main language of big business. (Java has a reputation in non-programming circles for being used as a poor, cross-compatibility layer on desktops which is an unfair reputation but often the only aspect of Java seen by end users causing much confusion.)

    JavaScript, also known as ECMAScript, is a younger programming language developed by Netscape and so named in the hopes of riding Java's fame to glory, which has broadly worked. JavaScript, aka JS, is famous as the language that runs in web browsers and is now officially an actual part of the HTML5 suite. JavaScript is the world's only popular prototype language rather than being object oriented. JS is currently the world's eighth post popular language with just over 2% of mindshare. JavaScript is currently gaining some notoriety for being used server-side thanks to the very new Node.js framework. To most programmers, JavaScript has been purely a means to web browser automation and nothing more. After many, many years JavaScript is starting to find new life as a general purpose language. JS is a scripting language which means that it is interpreted.

    The two languages share no history, syntax, style, use cases, design choices or anything. They are truly completely unrelated languages. If someone is talking about a website or their webbrowser you can be sure they are speaking of JavaScript. If someone is talking about a desktop application, you can be sure that they are talking about Java. If someone is talking about server-side programming, you will need to pay attention and listen closely.

    Don't be fooled by the inclusion of the name "Java" in the word "JavaScript", it does not imply a thing.

  • Here is an example:

    In this discussion, he titles the post "Java Script". But there is no Java Script, there is Java which is not a scripting language and there is JavaScript which is. So it would either be a Java program (lower case p) or a JavaScript script (lower case s.) The use of the upper case S in Script implies that he believes it to be a part of the name, but there is nothing with that name. He tags the thread "Java" which implies he truly means Java, but where did the word Script come from? Nothing in the topic provides a clue as to what he is doing. There is not any context to determine what language he is referring to. And given that he is unsure how to refer to them or that there could be confusion it is completely realistic that he does not mean either.