Bør dataforskere lære JavaScript?

Fordele og ulemper ved at bruge Internets # 1 sprog til datavidenskab

Hvis du har fulgt det teknologiske landskab i de seneste år, har du sandsynligvis bemærket mindst to ting.

For det første har du måske bemærket, at JavaScript i dag er et meget populært sprog. Det er vokset i popularitet lige siden Node.js tillod JavaScript-udviklere at skrive server-side-kode.

For nylig har rammer som Electron, Cordova og React-Native gjort det muligt for JavaScript-udviklere at opbygge native apps på tværs af en bred vifte af platforme.

Du har sikkert også bemærket, at der er meget spænding omkring datavidenskab, især maskinindlæring. Nylige fremskridt inden for teori og teknologi har gjort dette engang esoteriske felt meget mere tilgængeligt for udviklere.

Du spørger måske, om de laver en naturlig parring? Bør dataforskere overveje at lære JavaScript?

De fleste dataforskere arbejder med en kombination af Python, R og SQL. Hvis du er ny inden for feltet, er det de sprog, du skal mestre først .

Dataforskere kan også specialisere sig i et andet sprog som Scala eller Java. Der er mange grunde til, at disse sprog er så populære.

Men relativt få dataforskere specialiserer sig i JavaScript.

Men i betragtning af JavaScript's allestedsnærværende og datalogiske popularitet, hvor meget kan dataforskere drage fordel af at lære selv det grundlæggende i sproget? Og hvad med JavaScript-udviklere, der ønsker at udforske datavidenskab?

Lad os starte med at se på nogle vigtige indvendinger og derefter gennemgå nogle argumenter til fordel.

Mod

  • Funktionalitet - JavaScript har bare ikke rækkevidden af ​​datavidenskabelige pakker og indbygget funktionalitet sammenlignet med sprog som R og Python. Hvis du ikke har noget imod at genopfinde hjulet, kan dette være mindre af et problem. Men hvis du har brug for at køre mere sofistikerede analyser, vil du løbe tør for muligheder ret hurtigt.
  • Produktivitet - En anden fordel ved Python og R's omfattende økosystemer er, at der er mange vejledninger og vejledninger til næsten enhver datavidenskabsopgave, du ønsker at udføre. For JavaScript er dette ikke rigtig tilfældet. Du vil sandsynligvis tage længere tid på at finde ud af, hvordan du løser et datavidenskabsproblem i JavaScript, end du ville gjort i Python eller R.
  • Multithreading - Det er ofte nyttigt at behandle store datasæt eller køre simuleringer parallelt. Node.js er dog ikke egnet til beregningsintensive CPU-bundne opgaver. Til sådanne opgaver har sprog som Python, Java eller Scala overhånd over JS. Men tjek Microsofts Napa.js-projekt. Det giver en multitrådet JavaScript-runtime, der kan supplere Node.js.
  • Mulighedsomkostninger - Måske er hovedårsagen til, at dataforskere ikke har tendens til at lære mange sprog ud over Python og R skyldes 'mulighedsomkostninger'. Hver time brugt på at lære et andet sprog er en time, der kunne have været investeret i at lære en ny Python-ramme eller et andet R-bibliotek. Mens disse sprog dominerer datavidenskabsmarkedet, er der mere incitament til at lære dem. Og fordi datalogi er et så hurtigtgående felt, er der altid noget nyt at lære.

Til

  • Visualisering - JavaScript udmærker sig ved datavisualisering. Biblioteker som D3.js, Chart.js, Plotly.js og mange andre gør kraftig datavisualisering og dashboards virkelig nemme at bygge. Tjek nogle gode D3-eksempler!
  • Produktintegration - Flere og flere virksomheder bruger webteknologier med en node-baseret stak til at opbygge deres kerneprodukt eller -tjeneste. Hvis din rolle som dataforsker kræver, at du arbejder tæt sammen med produktudviklere, kan det ikke skade at 'tale' det samme sprog.
  • ETL - Databehandlingsrørledninger implementeres normalt på et generelt sprog, som Python, Scala eller Java. JavaScript kigger ofte ikke ind. Dette kan dog være uretfærdigt. Nodes filsystemmodul 'fs' giver en fantastisk API, der giver dig mulighed for at kalde standardfilsystemoperationer enten synkront eller asynkront. Node spiller også godt sammen med MongoDB og mange andre populære databasesystemer. Streams API gør det meget nemt at arbejde med streams af store data - en anden potentiel fordel for ETL. Som nævnt ovenfor, se Microsofts Napa.js-projekt for multithreading og parallel behandling.
  • Tensorflow.js - Hvem siger, at JS ikke kan lave seje maskinlærings ting? Tidligere i 2018 blev Tensorflow.js frigivet. Dette bringer maskinlæring til JavaScript-udviklere - både i browseren og på serversiden. Tensorflow er et populært maskinlæringsbibliotek, udviklet af Google og lavet open source i 2015. Gestegenkendelse, objektgenkendelse, musiksammensætning ... du hedder det, du kan sandsynligvis have det. Det bedste, du kan gøre lige nu, er at se på nogle demoer.

Konklusion

Så skal dataforskere lære JavaScript?

At lære JavaScript vil ikke skade dit CV. Men lær det ikke som erstatning for andre sprog.

Som førstesprog er det bedste råd at lære en af ​​enten Python eller R. Du bør også blive fortrolig med at bruge et eller andet databasesprog, såsom SQL eller MongoDB.

Når du først er fortrolig med det grundlæggende, vil du måske specialisere dig yderligere. Måske vil du lære Apache Spark til at arbejde med gigantiske, distribuerede datasæt. Eller måske foretrækker du at lære et andet sprog som Scala eller MATLAB eller Julia.

Hvorfor ikke overveje JavaScript? Det vil vise sig at være værdifuldt, hvis du vil specialisere dig i datavisualisering, eller hvis din rolle kræver, at du arbejder tæt sammen med et produkt bygget ved hjælp af JavaScript eller en relateret teknologi.

JavaScript's maskinlæringsfunktioner udvikler sig hurtigt. For nogle brugssager er det måske allerede et stærkt alternativ til de sædvanlige datavidenskabelige sprog.

I sidste ende er beslutningen både praktisk og personlig. Det afhænger af, hvilke aspekter af datalogi, du finder mest interessant, og hvilke karrieremuligheder der begejstre dig mest.

Men med de nuværende tendenser er en ting sikker. I løbet af de kommende år åbner JavaScript flere døre, end det lukker.