Le migliori biblioteche e tecnologie JavaScript da imparare nel 2018

Alex Proimos - Grand Study Hall della Biblioteca pubblica di New York (CC BY 2.0)

OOPS! Sembra che tu abbia vagato indietro nel tempo. Presto! Torna al 2019!

L'anno scorso ho scritto un articolo che completa la tecnologia più avanzata da imparare nel 2017. Quest'anno ci sono alcune sorprese.

Ci proponiamo di rispondere "quali argomenti di apprendimento ti daranno le maggiori possibilità di ritorno sul tempo che investi per impararli?"
JavaScript ha il maggior numero di pacchetti, da una frana.

In primo luogo, il software ha mangiato il mondo, il web ha mangiato il software e JavaScript ha mangiato il web. Nel 2018, React sta mangiando JavaScript.

2018: The Year of React

React ha vinto la battaglia di popolarità nel 2017.

Ci sono ancora molti sviluppatori che lavorano su basi di codice angolare, che si presenta nelle tendenze di Google:

Ma mentre React continua a vincere sondaggi sulla soddisfazione dei clienti, la crescita di React ha lasciato Angular (e tutto il resto) nella polvere.

Che dire di Vue.js? Ho sentito che fa caldo

A tutti piace pagare il servizio labbra a alternative come Vue.js. Ecco cosa ho detto a proposito dell'anno scorso:

Vue.js ha un sacco di stelle e download di GitHub. Se le cose continuano nel modo in cui vanno, nel 2017 andrà molto bene, ma non credo che nel prossimo anno arriverà a disgregare React o Angular (entrambi i quali stanno anche crescendo rapidamente). Impara dopo aver appreso React o Angular.

Vue.js ha fatto molto bene nel 2017. Ha ottenuto molti titoli e molte persone si sono interessate. Come avevo previsto, non si è avvicinato al non reagire React, e sono fiducioso di prevedere che non arriverà React nel 2018, neanche. Detto questo, potrebbe superare Angular nel 2018:

Download / mese di Vue.js

Come puoi vedere, Vue.js sta guadagnando sui download angolari:

download angolari / core / mese

Ma React ha un forte vantaggio e un forte tasso di crescita da abbinare:

Reagisci download / mese

Vue.js sta ancora crescendo più velocemente di React. Perché dovrebbe essere diverso da React vs Angular nel 2017?

Alla fine del 2016, il mondo JavaScript era pronto per un nuovo framework. Gli utenti angolari erano molto insoddisfatti, gli utenti React erano molto soddisfatti, molte persone volevano imparare React e pochissimi volevano imparare Angular. Alla fine del 2017, la soddisfazione degli utenti di Angular 2+ è ancora inferiore alla metà, con il 49%.

La storia è molto diversa per React vs Vue.js. React sta battendo Vue.js nella soddisfazione degli utenti (dal 93% al 90%). Il grande incentivo a passare da React all'inizio del 2017 è stato a causa della confusione sulla licenza React. Facebook ha ascoltato gli utenti e ha cambiato la licenza.

In questa fase, semplicemente non vedo prove convincenti che il mercato sia motivato a passare da React a qualsiasi altra cosa. Vue.js avrà più difficoltà a rubare utenti da React di quanto non stiano rubando utenti da jQuery e Angular.

Vue.js ha un sacco di spazio per raccogliere molti utenti Angular e jQuery in una clip veloce, ma probabilmente colpiranno un muro di mattoni quando dovranno iniziare a rubare gli utenti di React per continuare la fase di crescita.

Prevedo una forte crescita di Vue.js per un altro anno o due, seguita da una battaglia molto più dura con React al primo posto e Vue.js retrocesso al secondo violino a meno che qualcosa di grande cambi per sconvolgere l'equilibrio.

Lavori

jQuery è caduto.

Nelle liste di lavoro, React è decollato completamente e ha spazzato via jQuery, la prima libreria a passare jQuery nella popolarità del lavoro in un decennio .¹ Ciò di cui stiamo assistendo qui è la fine di un'era.

React Rising - la prima libreria a disfare jQuery in questo decennio (fonte: Indeed.com)

Confronta con il grafico dell'anno scorso:

jQuery è così 2016

Ciò che è veramente interessante in questi grafici è che le altre biblioteche sono cresciute molto più di quanto non sia successo con jQuery. I lavori aperti totali che menzionano un framework front-end sono aumentati di oltre ~ 10k rispetto allo scorso anno.

Con la crescita dell'occupazione, abbiamo anche assistito a un aumento degli stipendi medi: $ 110k rispetto ai $ 93k di fine 2016. Il tasso di inflazione nello stesso periodo è rimasto inferiore al 2%, rappresentando solo una piccola percentuale dello stipendio Incremento.

Chiaramente, è ancora un mercato candidato nel 2018.

1. Metodologia: le ricerche di lavoro sono state condotte su Indeed.com. Per eliminare i falsi positivi, ho associato le ricerche con la parola chiave "software" per rafforzare le possibilità di pertinenza, e quindi moltiplicato per ~ 1,5 (all'incirca la differenza tra la programmazione di annunci di lavoro che usano la parola "software" e quelli che non lo fanno. ) Tutte le SERPS sono state ordinate per data e verificate per rilevanza a campione. Le cifre risultanti non sono accurate al 100%, ma sono abbastanza buone per le approssimazioni relative utilizzate in questo articolo.

Raccomandazioni quadro

Dopo aver esaminato i numeri di quest'anno, sono pronto a raccomandare vivamente React per i casi d'uso più generali di sviluppo di app, tra cui app mobili (PWA, React Native), applicazioni Web, la maggior parte delle applicazioni di produttività per ufficio e app di produzione di contenuti multimediali desktop (vedere Electron ).

Notevoli eccezioni di categoria in cui qualcos'altro può offrirti un servizio migliore: pagine di destinazione di marketing peso piuma (salta interamente il framework), giochi 3D, AR / VR. Per contenuti 3D, controlla Unity, Unreal o PlayCanvas. Detto questo, React viene utilizzato anche per le UI dei contenuti 3D.

Quest'anno valuterò tutti gli altri framework front-end strettamente facoltativi. Ciò non significa che non siano fighi, ma non seri contendenti a reagire nel mercato del lavoro. Ricorda, questo elenco riguarda l'apprendimento del ROI, non quale tecnologia è il "migliore".

Perché così tanto interesse per reagire?

Sfogliando gli elenchi di lavoro di React, ho notato una tendenza interessante: molti riguardavano cose che non pensiamo essere un lavoro sul web front-end:

  • React Native (per la prospettiva, ci sono più di queste aperture rispetto al numero totale di aperture Vue.js)
  • Reagisci per l'IoT
  • Reagisci per AR / VR (con Oculus Rift al comando della carica di assunzione)
  • Reagisci per oscure cose informatiche di cui non hai mai sentito parlare
React si è liberato dalle sue radici web.

La versatilità è uno dei maggiori punti di forza di React. A differenza di molti altri framework, l'acquisto in React non implica l'acquisto in alcuni modelli di dati, o persino nel browser o nel DOM stesso. In effetti, ho trovato alcune inserzioni di lavoro di React che non menzionavano nemmeno JavaScript.

React offre anche un ricco e vivace ecosistema che trasporta sulle spalle gli standard di fatto di React - qualcosa che il mondo JavaScript non ha più visto da quando i plugin jQuery hanno dominato il web.

La domanda non è più "quale quadro?"
La domanda è "quale tecnologia si accoppia meglio con React?"

Niente rovinerà React nel 2018 (forse anche nel 2019). Sei al sicuro. Sembra che la stanchezza di JavaScript si stia calmando. Abbiamo un ottimo framework su cui costruire app ora e c'è un grande ecosistema che si insedia in React.

Quali argomenti dovresti studiare?

Come l'anno scorso, non puoi sbagliare concentrandoti sugli elementi essenziali, ma dovresti porre maggiormente l'accento sulla programmazione funzionale per le app React.

React è ottimo per due motivi principali:

  • Rendering della vista deterministica
  • Estrarre il livello di visualizzazione dalla manipolazione DOM diretta

Il determinismo è meglio servito dalla costruzione di applicazioni usando funzioni pure, che è essenzialmente la definizione di programmazione funzionale.

Con questo in mente, ecco alcuni argomenti che dovresti studiare:

  • Sintassi di base ES6
  • Sintassi della classe e le sue numerose insidie: è consentito utilizzare la classe per i componenti di React, ma evitare di estenderla dalle proprie classi, evitare istanza di ed evitare che gli utenti delle classi utilizzino la nuova parola chiave.
  • Programmazione funzionale e composizione del software
  • accattivarsi
  • chiusure
  • Funzioni pure
  • promesse
  • Generatori e funzioni asincrone
  • TDD
  • Il modello prestazionale RAIL
  • Applicazioni Web progressive (PWA): vedi "Le app native sono condannate" e "Perché le app native sono davvero condannate"
  • GraphQL è maturato molto nel 2017 e sta rapidamente prendendo il posto delle API REST. Apollo sta aggiungendo un'architettura cache client offline offline integrata che renderà Apollo + GraphQL una seria alternativa (o complemento) a Redux nel 2018.

Biblioteche e strumenti

Queste sono le librerie e gli strumenti che trovo più utili:

  • Reagire
  • Redux
  • Redux-Saga per gestire l'I / O asincrono e isolare gli effetti collaterali
  • Next.js - SSR con Node & Express, suddivisione automatica dei bundle, styled-jsx
  • UI materiale
  • Libro di storia
  • Cheerio per test unitari Componenti React (preferisco questo agli Enzimi)
  • Lodash (preferisco i programmi di utilità da lodash / fp). Importa solo le utility di cui hai bisogno per evitare di far esplodere le dimensioni del pacchetto.
  • Babele: utilizzato per compilare ES6 per funzionare su browser meno recenti.
  • Webpack: il bundler più popolare per JavaScript standard cerca semplici esempi di configurazione di kit starter / boilerplate per far funzionare le cose velocemente)
  • ESLint: Cattura precoce degli errori di sintassi e problemi di stile. Dopo la revisione del codice e TDD, la terza cosa migliore che puoi fare per ridurre i bug nel tuo codice.
  • Ramda - principalmente per obiettivi e trasduttori.
  • Nodo ed Express
  • RxJS: osservabili per JavaScript. Ultimamente ho usato di più i trasduttori. Ricorda di utilizzare operatori pipable per evitare di far esplodere le dimensioni del tuo bundle.

TypeScript ha funzionato bene nel 2017, ma l'ho visto intralciare e complicare le app più di quanto abbia aiutato. Le principali carenze riguardano la dipendenza dalle annotazioni rispetto all'inferenza e l'incapacità di digitare correttamente le funzioni di ordine superiore senza contorsioni indescrivibili. Ho fatto una prova giornaliera a tempo pieno per un po ', ma questi si applicano ancora: "Il segreto scioccante sui tipi statici" e "Potrebbe non essere necessario TypeScript". Flow condivide gli stessi problemi e gli strumenti di sviluppo non sono buoni come quelli di TypeScript.

Tech da guardare nel 2018

Tutte queste aree di ricerca e sviluppo stanno creando posti di lavoro reali nel 2018:

  • App Web progressive (PWA)
  • Blockchain e fintech
  • Tecnologia medica
  • AR / VR - Hololens, Meta e ODG vengono spediti oggi. ODG R-9 era previsto per la spedizione nel 2017, ma probabilmente verrà spedito nel 2018. MagicLeap ha promesso di spedire nel 2018. L'AR trasformerà l'esperienza umana più di quanto abbia fatto il telefono cellulare.
  • Stampa 3D
  • AI
  • droni

Anche l'informatica quantistica è pronta a trasformare il mondo, ma potrebbe essere il 2019 o più tardi prima che inizi davvero l'interruzione. Ci sono computer quantistici funzionanti online, ma non possono ancora fare molto. È ancora troppo presto perché la maggior parte degli sviluppatori inizi a sperimentare in modo produttivo. Microsoft ha recentemente annunciato il suo linguaggio di programmazione Q # per l'informatica quantistica. Nel frattempo, anche IBM e Google continuano a investire molto per possedere il mercato del calcolo quantistico del cloud embrionale.

Se vuoi essere pronto ad imparare il calcolo quantistico, vorrai studiare l'algebra lineare. Esistono anche esplorazioni funzionali del calcolo quantistico basate sul calcolo lambda.

È probabile che, come abbiamo visto con l'IA, saranno sviluppate API cloud che consentiranno alle persone con meno background matematici di sfruttare alcune delle capacità del calcolo quantistico.

Inizia la tua lezione gratuita su EricElliottJS.com

Eric Elliott è l'autore dei libri, "Software di composizione" e "Programmazione di applicazioni JavaScript". Come co-fondatore di EricElliottJS.com e DevAnywhere.io, insegna agli sviluppatori le abilità di sviluppo software essenziali. Crea e consiglia team di sviluppo per progetti crittografici e ha contribuito alle esperienze software per Adobe Systems, Zumba Fitness, The Wall StreetJournal, ESPN, BBC e i migliori artisti discografici tra cui Usher, Frank Ocean, Metallica e molti altri.

Gode ​​di uno stile di vita remoto con la donna più bella del mondo.