| Java | JavaScript |
|---|
| Category | programming language | programming language |
|---|
| Developer | Oracle and the OpenJDK community | Ecma TC39 |
|---|
| Created by | James Gosling | Brendan Eich |
|---|
| First release | 1995 | 1995 |
|---|
| License | GPL-2.0 with Classpath Exception | Open standard |
|---|
| Open source | Yes | Yes |
|---|
| Pricing | Free | Free |
|---|
| Website | https://openjdk.org | https://tc39.es |
|---|
| Paradigms | Object-oriented, Functional, Concurrent | Object-oriented, Functional, Procedural |
|---|
| Typing | Static | Dynamic |
|---|
| Type strength | Strong | Weak |
|---|
| Type inference | Yes | No |
|---|
| Memory management | Garbage collected | Garbage collected |
|---|
| Runs as | Bytecode on a virtual machine | Interpreted |
|---|
| Main implementation | OpenJDK HotSpot | V8, SpiderMonkey, JavaScriptCore (JIT compiled) |
|---|
| Concurrency | Threads, virtual threads | Event loop, async/await, workers |
|---|
| Null safety | No | No |
|---|
| Package manager | Maven, Gradle | npm |
|---|
| Used for | Back end, Mobile, Data and AI, Desktop | Web front end, Back end, Desktop, Mobile |
|---|
| Specification | Java Language Specification | ECMA-262 |
|---|