It seems to me that Java was the computing language that could be used anywhere and JavaScript was the scripting language for the web and things stayed that way for a long while.
In realtà, non è vero.
JavaScript (in realtà, si chiamava ancora LiveScript allora) è stato rilasciato da Netscape in Navigator per lo scripting client e in Live Server per lo scripting lato server allo stesso tempo (solo un paio di settimane a parte), mentre Java era originariamente progettato come linguaggio di scripting per televisori interattivi.
Quindi, è esattamente il contrario: JavaScript era sempre inteso come linguaggio generico, mentre Java era inteso come linguaggio lato client.
Perché Sun ha pagato denaro a Netscape per includere Java in Navigator? Perché Sun ha pagato denaro a Netscape per rinominare la lingua in JavaScript? È perché hanno capito che JavaScript stava minacciando Java.
There are countless articles about how Java is not JavaScript and vice-versa but they are often quite old.
Sì, ma non è cambiato nulla.
JavaScript has started to move towards typing(TypeScript, etc.),
No, non è così. Lì fu un tentativo di inserire i tipi nella lingua nello sfortunato ECMAScript 4, ma questo fu (giustamente) abbandonato, ed è improbabile che ECMAScript acquisisca tipi nel prossimo futuro. TypeScript è una lingua diversa , precisamente perché ECMAScript non otterrà i tipi nel prossimo futuro.
lower level functions(devices, array buffers, WebGL, Bluetooth, etc.),
Come ho detto, JavaScript è sempre stato inteso come un linguaggio generico.
compiling,
Non sono sicuro di cosa intendi con questo. Sì, ECMAScript è un buon linguaggio per scrivere compilatori in, ma questo è dovuto al suo patrimonio Scheme e Sé, non a causa di una "convergenza con Java".
other areas(Node.js, v8/Rhino outside of the web).
Ancora una volta, JavaScript è sempre stato inteso in quel modo, e questo non è niente di nuovo. Microsoft ha fornito un interprete JavaScript per la creazione di applicazioni desktop come parte del sistema operativo poiché Windows XP, credo, e JScript.NET (un superset di JavaScript) per lo scripting lato server da oltre un decennio.
Il motore degli effetti sonori Jesusonic (di Justin Frankel, l'autore di Winamp, ora parte della REAPER Digital Audio Workstation) ha utilizzato JavaScript per scrivere audio FX almeno dal 2004.
The syntax of both Java and JavaScript seem to also be learning from each other.
Bene, Brandon Eich ha originariamente progettato LiveScript con sintassi e semantica di Scheme estese con un sistema di oggetti basato su NewtonScript, Act-1 e Scheme. Gli è stato quindi ordinato di cambiare la sintassi in modo che appaia "come un vero linguaggio" (con il quale i suoi superiori intendevano C ++ e Java), quindi non è una coincidenza che JavaScript abbia somiglianze con Java. Ma non è a causa della convergenza.
I am more knowledgeable in JavaScript so would need more of a Java perspective but are Java and JavaScript converging and if so in what way could Java be at an advantage over JavaScript?
La principale differenza tra i due è che ECMAScript ha una libreria standard molto piccola. Ciò semplifica adattarlo a nicchie diverse, ma prima devi "adattarlo". (Ad esempio, Ryan Dahl sta scrivendo la sua libreria I / O per Node.js.)
Java, OTOH, ha una libreria standard molto grande. Questo permette di applicarlo a nicchie diverse senza adattarsi, ma devi sempre portare il 90% che non stai utilizzando, e non sempre abbastanza esattamente in forma.