Sono Java e JavaScript convergenti? [chiuso]

-3

Mi sembra che Java fosse il linguaggio informatico che poteva essere usato ovunque e JavaScript era il linguaggio di scripting per il web e le cose sono rimaste così per molto tempo. Ci sono innumerevoli articoli su come Java non sia JavaScript e viceversa, ma sono spesso piuttosto vecchi.

JavaScript ha iniziato a spostarsi verso la digitazione (TypeScript, ecc.), le funzioni di livello inferiore (dispositivi, buffer di array, WebGL, Bluetooth, ecc.), la compilazione, altre aree (Node.js, v8 / Rhino al di fuori del web ). La sintassi di Java e JavaScript sembra anche imparare l'una dall'altra.

Sono più esperto in JavaScript, quindi avrei bisogno di più di una prospettiva Java ma sono Java e JavaScript convergenti e, in tal caso, in che modo Java potrebbe avvantaggiarsi rispetto a JavaScript?

    
posta Damien Golding 14.08.2017 - 03:52
fonte

2 risposte

6

Non direi che Java e JavaScript stanno convergendo.

JavaScript ha estensioni di tipo, ma non direi che è a causa di Java. Penso che abbia più a che fare con JavaScript usato nelle applicazioni in cui è preferibile avere i tipi controllati. Inoltre, la digitazione statica non è una funzionalità del linguaggio JavaScript ed è improbabile che sia. È necessario utilizzare una lingua diversa (ad esempio TypeScript) che aggiunge la digitazione. JavaScript può essere eseguito al di fuori dei browser sulla maggior parte dei dispositivi, ma può essere utilizzato in molte lingue. La maggior parte delle lingue ha l'API per le "funzioni di basso livello" che hai descritto.

Java ha caratteristiche funzionali, ma non direi che è dovuto a JavaScript ma perché la programmazione funzionale sta diventando sempre più popolare. Non ho visto alcun segno che Java supporterà la digitazione dinamica in futuro.

Sì, le lingue condividono idee e cambiano nel tempo, ma Java e JavaScript sono ancora molto diversi per sintassi, digitazione e paradigma.

    
risposta data 14.08.2017 - 04:09
fonte
5

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.

    
risposta data 14.08.2017 - 08:58
fonte

Leggi altre domande sui tag