Entrare in JavaScript è sicuramente una buona idea, poiché JavaScript sta diventando sempre più popolare.
Lo sviluppo di JavaScript front-end è estremamente diverso da quello di programmazione / sviluppo Node.js (lato server). Ogni browser ha il proprio supporto delle funzionalità JavaScript, il che significa che le funzionalità non sono sempre prontamente disponibili su tutti i browser. Soprattutto con la nuova versione di ECMAScript, sta diventando estremamente difficile da sfruttare, come la maggior parte dei browser, o la maggior parte degli utenti (a parte il chrome) sono su browser più vecchi. Chrome ha avuto aggiornamenti automatici per un lungo periodo, quindi gli utenti non devono intraprendere alcuna azione. In genere ottengono la maggior parte dei loro utenti aggiornati in poche settimane. Hai ancora Internet Explorer 6,7 e 8 problemi, e anche 9 (Non ci sono molte nuove funzionalità nelle specifiche HTML5 e ECMAScript). Firefox è abbastanza buono, e sembrano essere su una buona pista di implementare nuove funzionalità tutto il tempo.
Sul lato client ci sono 3-5 diversi motori JavaScript; V8 (Chrome & Node.js), IonMonkey (Firefox ha avuto più motori), Carakan (Opera), JavaScriptCore (Safari), Chakra (Internet Explorer). Ogni motore ha diverse architetture (JIT, byte-code, codice macchina, ecc ...) e ora ognuna ha un supporto diverso per ECMAScript 6 (Harmony).
Con Node.js, puoi iniziare a sfruttare le nuove funzionalità JavaScript poiché devi supportare solo un motore JavaScript (V8). Ciò semplifica il lavoro, dal momento che non stai saltando i cerchi cercando di eseguire funzioni di rilevamento, hackerare il sistema, ecc ...
Lezione 1: Sviluppare all'interno di Node.js è un lusso rispetto al lato client, ma con la potenza di framework e librerie come JQuery, Ember.js, Angular, Handlebars (Templating), Modernizr, ecc ... il tuo lavoro il carico diminuisce drasticamente.
Performance, ottimizzazione e DOM ... Questo è lo sviluppo del lato client. Se inizi con Node.js, inizierai a utilizzare (si spera) la build e la distribuzione di strumenti come GruntJS, Yeoman, Cake, ecc. Questi saranno incredibilmente utili quando si lavora con JavaScript sul lato client. Inizia a guardare in diversi sistemi di moduli; Node.js utilizza CommonJS. AMD è un'altra scelta per lo sviluppo.
JavaScript come linguaggio è semplice per iniziare. Una volta approfondito, scoprirai quanto è flessibile un modello prototipo.
Il modello asincrono potrebbe essere un po 'spaventoso all'inizio, ma non c'è bisogno di avere paura. È abbastanza semplice quando lo capisci. Passerai attraverso lo stadio tradizionale dell'inferno del callback, ma sarai in grado di apprendere alcuni schemi di progettazione per evitarli.