I verden af computerprogrammering er der hundredvis af programmeringssprog at vælge imellem. To meget populære sprog, der let kan forveksles af nytilkomne, er Java og JavaScript. På trods af det lignende navn er de to sprog kun meget løst beslægtede.
Java blev udviklet hos Sun Microsystems i 1995 og blev hurtigt populært som programmeringssprog. Et par måneder senere skabte Netscape det første scriptsprog til at skabe interaktive websider med syntaks baseret på Javas og kaldte det LiveScript. Blot tre måneder efter udgivelsen af LiveScript omdøbte Netscape det til JavaScript, et marketingtrick designet til at vække interesse for sproget gennem forvirringen med Java.
Java er et selvstændigt programmeringssprog, hvor kode kompileres af udvikleren, før den nogensinde bliver set af brugeren. Et af nøglepunkterne ved Java er, at det er i overensstemmelse med et WORA-design (Write Once, Run Anywhere) skema, hvilket betyder, at enhver kompileret Java-kode kan køre på ethvert system, der har en JVM (Java Virtual Maskine). En JVM er en specialiseret virtuel maskine, designet til udførelse af kompileret Java-bytekode. Java-applikationer er typisk server-side, når de bruges på nettet, selvom der er mange selvstændige brugervendte Java-applikationer.
JavaScript er et scriptsprog, der kræver implementering inden for rammerne af en anden ramme. Typisk er JavaScript inkluderet i en webside og dermed et HTML-framework, men nogle uafhængige frameworks som Node.js skaber andre muligheder for JavaScript at blive brugt. JavaScript-kode behøver ikke at blive kompileret og fortolkes i stedet, mens den udføres. JavaScript-kode indlæses og udføres typisk på klientsiden i browseren.
Som scriptsprog er JavaScript meget fleksibelt med mange forskellige måder at udføre den samme opgave på. Denne fleksibilitet gør JavaScript let at lære at bruge, men efterlader mange åbninger for ineffektivitet. Hvis man ikke sørger for at undgå ineffektivitet, kan større projekter blive utroligt komplekse og svære at vedligeholde.
Java er meget mere rigid med regler om, hvordan variabler kun kan gemme en bestemt type data. Java er derfor mere struktureret, men det tilføjer ekstra kompleksitet til at skabe simpel kode, da der er brug for masser af boilerplate for at deklarere alt korrekt. Stivheden gør det dog lettere at koordinere med andre udviklere, når man samarbejder om et projekt, da der er et begrænset antal måder at udføre opgaver i strukturen på.