Java vs Javascript e AngularJS vs NodeJS
Nomi molto simili per prodotti molto diversi: per i lavoratori che intendono diventare competitivi nell’ambito della programmazione, può esser utile approfondire le importanti differenze alla base di questi linguaggi. È facile infatti incorrere in una scelta errata e trovarsi poi in grande difficoltà nella realizzazione di progetti software complessi.
JAVA
È un linguaggio di programmazione orientato agli oggetti [1] che ci permette di realizzare applicazioni molto complesse fruibili sia lato client che lato server.
Come si usa?
La grossa innovazione portata da questo linguaggio è stata la possibilità si essere multi-piattaforma: questo significa che, a differenza di tanti altri linguaggi, l’applicazione sviluppata potrà essere eseguita su ogni tipologia di computer (es. Windows o Linux, Personal Computer o Smartphone…). Questo risultato si ottiene creando un’applicazione per un “processore virtuale” uguale per tutti i sistemi che verrà richiamato all’interno dell’Enviroment Java già installato su tutti i dispositivi: il famoso JRE (Java Runtime Enviroment o Java Virtual Machine).
Per chi è?
È un linguaggio molto potente e molto richiesto dal mercato: per comprenderne facilmente le potenzialità, pensiamo che il pacchetto OpenOffice è stato realizzato proprio tramite Java! Serve per chi ha interesse a creare applicazioni complesse, magari operando in importanti team di sviluppo all’interno di grandi aziende.
Tecniche di programmazione – JAVA
JAVASCRIPT
È un linguaggio di scripting pensato principalmente su client: non viene compilato e trasformato in un’applicazione, ma viene “interpretato” ogni volta che un utente lo richiama.
Come si usa?
Viene usato principalmente per creare prodotti web articolati e complessi, rendendo di fatto il formato HTML molto più ricco e versatile. All’atto pratico cosa succede? Il programmatore inserisce degli “script” all’interno delle pagine web: questi verranno eseguiti sul client (pc o smartphone) ed il browser, leggendone le azioni richieste, le eseguirà direttamente sul sistema di destinazione. Questa scelta permette di avere un linguaggio che non sovraccarica le cpu dei server, ma utilizza la potenza di calcolo locale dei dispositivi per eseguire le applicazioni all’interno del browser web.
Per chi è?
Questo linguaggio è adatto per realizzare prodotti web-oriented, integrato a conoscenze di HTML e CSS: potrà essere molto utile non solo ai programmatori junior, ma anche ai web-designer e a chi intenderà in futuro sviluppare app per smartphone [2].
Tecniche di programmazione – JAVASCRIPT e ANGULAR JS
Tecniche di programmazione – JAVASCRIPT e NODE JS
Sviluppo di APP per smartphone
ANGULAR JS
Si tratta di un framework, quindi un ambiente di sviluppo che aiuta a realizzare prodotti molto complessi basati su questo linguaggio.
Come si usa?
Nasce dalle mani di un team di sviluppo di Google come prodotto open source con la finalità di semplificare la scrittura delle pagine web dinamiche mantenendo la sua struttura inglobata all’interno del formato HTML. È l’ideale per creare pagine web molto attive o fortemente interattive, quindi pagine che interagiscono molto con l’utente (es. applicativi web per la ricerca e la visualizzazione in tempo reale di informazioni), oppure per prodotti real time come le chat e le piattaforme di instant-messaging.
Per chi è?
È un prodotto adatto a chi si occupa di sviluppo web, di pagine web molto attive o fortemente interattive. Viene in aiuto a chi intende lavorare intensamente con Javascript.
Tecniche di programmazione – JAVASCRIPT e ANGULAR JS
NODE JS
È un javascript runtime environment che riporta l’interpretazione di javascript sul server utilizzando il motore javascript V8 di Chrome.
Come si usa?
Viene generalmente usato “lato server” in quanto il codice viene eseguito sul server: al client arriveranno solo contenuti HTML già elaborati in precedenza, per cui sarà sgravato dall’onere di gestire Javascript. Questo ambiente utilizza un modello chiamato “event-driven” [3] che lo rende leggero ed efficiente, ideale per applicazioni real-time semplici o enterprise per dispositivi distribuiti; proprio per le sue caratteristiche, viene usato su server web che necessitano di gestire grandi carichi di lavoro con molte connessioni contemporanee.
Per chi è?
Questo ambiente è adatto a chi si occupa di back-end dei siti web ma, dato il grande potenziale, può essere di interesse per tutti i web-developer in cerca di prestazioni per le loro piattaforme.
Tecniche di programmazione – JAVASCRIPT e NODE JS
Ora non ci resta che decidere quale corso fare per primo!
Note
[1] https://it.wikipedia.org/wiki/Programmazione_orientata_agli_oggetti
[2] https://it.wikipedia.org/wiki/Apache_Cordova
[3] https://it.wikipedia.org/wiki/Programmazione_a_eventi
SG