Чи повинні науковці даних вивчати JavaScript?

Плюси та мінуси використання мови №1 в Інтернеті для науки про дані

Якщо ви стежите за технологічним ландшафтом в останні роки, ви, мабуть, помітили принаймні дві речі.

З одного боку, ви могли помітити, що JavaScript є дуже популярною мовою в наші дні. Популярність зростає з тих пір, як Node.js дозволив розробникам JavaScript писати код на стороні сервера.

Зовсім недавно такі фреймворки, як Electron, Cordova та React-Native, дозволили розробникам JavaScript створювати власні програми на широкому діапазоні платформ.

Ви, напевно, також помічали, що в області науки про дані, особливо машинного навчання, є багато хвилювання. Останні досягнення теорії та технології зробили це колись езотеричне поле набагато доступнішим для розробників.

Тоді ви можете запитати, чи вони роблять природну пару? Чи слід дослідникам даних обмірковувати вивчення JavaScript?

Більшість дослідників даних працюють з деякою комбінацією Python, R та SQL. Якщо ви новачок у цій галузі, це мови, якими слід оволодіти в першу чергу .

Вчені з питань даних можуть також спеціалізуватися на іншій мові, такій як Scala або Java. Є багато причин, чому ці мови настільки популярні.

Але порівняно небагато вчених-спеціалістів спеціалізуються на JavaScript.

Однак, зважаючи на всюдисущість JavaScript та популярність науки про дані, наскільки корисними можуть стати вчені з вивчення навіть основ мови? А як щодо розробників JavaScript, які хочуть дослідити науку даних?

Почнемо з розгляду деяких важливих заперечень, а потім розглянемо деякі аргументи на користь.

Проти

  • Функціональність - JavaScript просто не має діапазону пакетів даних і вбудованої функціональності порівняно з мовами, такими як R та Python. Якщо ви не проти переробити колесо, це може бути меншою проблемою. Але якщо вам потрібно провести більш складні аналізи, варіанти вичерпаються досить швидко.
  • Продуктивність - Ще однією перевагою розширених екосистем Python і R є те, що існує безліч посібників та інструкцій для майже будь-якого завдання з обробки даних, яке ви хочете зробити. Для JavaScript це насправді не так. Ймовірно, вам знадобиться більше часу, щоб зрозуміти, як вирішити проблему науки про дані в JavaScript, ніж у Python або R.
  • Багатопотоковість - Часто корисно обробляти великі набори даних або паралельно запускати моделювання. Однак Node.js не підходить для обчислювальних завдань, пов'язаних з процесором. Для таких завдань такі мови, як Python, Java або Scala, мають перевагу над JS. Але перевірте проект Napa.js від Microsoft. Він надає багатопотокові середовища виконання JavaScript, які можуть доповнювати Node.js.
  • Можливі витрати - Мабуть, головна причина, через яку вчені-дослідники даних, як правило, не вивчають багато мов, окрім Python та R, - це „альтернативні витрати”. Кожна година, витрачена на вивчення іншої мови - це година, яку можна було б вкласти у вивчення нового фреймворку Python або іншої R-бібліотеки. Хоча ці мови домінують на ринку праці в галузі даних, існує більше стимулів їх вивчати. І оскільки наука даних - це така швидка сфера, навчитися завжди можна чомусь новому.

Для

  • Візуалізація - JavaScript перевершує візуалізацію даних. Бібліотеки, такі як D3.js, Chart.js, Plotly.js та багато інших, роблять потужну візуалізацію даних та інформаційні панелі дуже простими у створенні. Ознайомтеся з чудовими прикладами D3!
  • Інтеграція продуктів - Все більше і більше компаній використовують веб-технології зі стеком на основі Node для створення свого основного продукту або послуги. Якщо ваша роль вченого з даних вимагає від вас тісного співробітництва з розробниками продуктів, то це не може зашкодити «розмовляти» однією мовою.
  • ETL - конвеєри для обробки даних зазвичай реалізуються мовою загального призначення, такою як Python, Scala або Java. JavaScript часто не заглядає. Однак це може бути несправедливо. Модуль файлової системи Node 'fs' забезпечує чудовий API, який дозволяє вам викликати стандартні операції файлової системи як синхронно, так і асинхронно. Node також чудово поєднується з MongoDB та багатьма іншими популярними системами баз даних. API Streams дозволяє дуже легко працювати з потоками великих даних - ще одна потенційна перевага ETL. Як уже згадувалося вище, про багатопотоковість та паралельну обробку дивіться проект Napa.js від Microsoft.
  • Tensorflow.js - Хто каже, що JS не може робити круті речі машинного навчання? Раніше в 2018 році вийшов Tensorflow.js. Це приносить машинне навчання розробникам JavaScript - як у браузері, так і на стороні сервера. Tensorflow - це популярна бібліотека машинного навчання, розроблена Google і створена з відкритим вихідним кодом у 2015 році. Розпізнавання жестів, розпізнавання об’єктів, композиція музики… Ви називаєте це, можливо, у вас це може бути. Найкраще, що ви можете зробити зараз, - це поглянути на деякі демонстраційні програми.

Висновок

Отже, чи повинні науковці даних вивчати JavaScript?

Вивчення JavaScript не зашкодить вашому резюме. Але не вивчайте це як заміну іншим мовам.

Як першої мови, найкращою порадою є вивчення одного з Python або R. Вам також повинно бути зручно користуватися якоюсь мовою баз даних, наприклад SQL або MongoDB.

Однак, як тільки ви ознайомитесь з основами, вам може знадобитися подальша спеціалізація. Можливо, ви хочете навчитися Apache Spark для роботи з гігантськими розподіленими наборами даних. Або, можливо, ви віддаєте перевагу вивченню іншої мови, наприклад, Scala, або MATLAB або Julia.

Чому б не розглянути JavaScript? Це виявиться цінним, якщо ви хочете спеціалізуватися на візуалізації даних або якщо ваша роль вимагає від вас тісної співпраці з продуктом, побудованим за допомогою JavaScript або суміжних технологій.

Можливості машинного навчання JavaScript швидко розвиваються. Для деяких випадків використання це, мабуть, уже є сильною альтернативою звичним мовам науки про дані.

Зрештою, рішення є як практичним, так і особистим. Це залежить від того, які аспекти науки про дані вам здаються найбільш цікавими, і які кар’єрні можливості вас найбільше хвилюють.

Але при сучасних тенденціях одне можна сказати точно. Протягом найближчих років JavaScript відкриє більше дверей, ніж закриє.