Чому JavaScript - це мова програмування майбутнього

JavaScript був першою мовою програмування, яку я вибрав. Ну, я насправді почав з HTML та CSS. Як і багато інших веб-розробників, робота з JavaScript була ні до чого. Це просто тому, що він так добре поєднується з HTML і CSS, а насправді також покращує ваші навички HTML / CSS. Я розробляв додатки та ігри різними іншими мовами програмування, включаючи Java, Swift, C ++, Dart. Але гнучкість, яку надає JavaScript, є неперевершеною, хоча вона може вважатися поганою для початківців, оскільки дає більше можливостей, ніж потрібно для виконання простих завдань.

Сьогодні JavaScript є однією з найпотужніших мов на планеті завдяки своїй продуктивності та всюдисущості.

Особисто я відчуваю, що JavaScript має потенціал, щоб задіяти стільки популярних галузей, як машинне навчання та аналіз даних, де Python все ще керує грою. Це навіть зараз відбувається з такими інструментами, як Tensorflow.js!

Однак раніше цього точно не було для JavaScript. Раніше це була слабка, неефективна мова, і на неї згордили. JavaScript був для "переможених".

Але вже ні. Давайте подивимося, як JavaScript перевернувся за останні 10 років, чому він став сильнішим, ніж будь-коли, і чому він тут, щоб залишитися.

V8: Звір, що підтримує JavaScript

V8 насправді є двигуном JavaScript. Ви можете запитати, що таке механізм JavaScript? Механізм JavaScript - це інтерпретатор, який виконує код JavaScript. Механізм JavaScript може бути реалізований як стандартний інтерпретатор, так і компілятор "вчасно" (JIT), який компілює JavaScript у байт-код у певній формі.

V8 - це високопродуктивний механізм JavaScript та WebAssembly JIT з відкритим кодом Google, написаний на C ++. Він використовується, зокрема, у Chrome та Node.js. V8 може працювати автономно або може бути вбудований в будь-яку програму на C ++.

Це частина програмного забезпечення, яка оптимізує ваш код JS і перетворює його в машинний код для виконання процесором. Деякі завдання, які обробляє V8:

  1. Вивіз сміття
  2. Компіляція до машинного коду
  3. Вбудований кеш
  4. Стиснення покажчика
  5. і набагато більше оптимізації

По суті, стиснення покажчика - це дуже нова техніка у V8 для підвищення оптимізації пам'яті, не впливаючи на продуктивність. Якщо ви фанат, ви можете прочитати більше про те, як це реалізовано, в офіційному блозі V8.

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

Зріла екосистема та спільнота

JavaScript має одну з найбільш зрілих - якщо не найзріліших - екосистем, яку могла коли-небудь мати мова програмування. Спільнота для JavaScript величезна, а бар'єр для входу надзвичайно низький.

Ви можете запустити браузер (знайдений на 100% персональних комп’ютерів), відкрити консоль, і ви знайдете механізм JS, який чекає, поки ви запустите код! Це ніколи не було з іншими мовами програмування такої складності.

Як ніби величезної спільноти було недостатньо, ми маємо системи npmта і yarnпакет. Ви дасте йому ім’я, і в npmреєстрі для цього є пакет - все, від створення випадкових рядків до обробки потоків та буферів у JavaScript. Серед розробників JavaScript є дуже відомий вислів:

Те, що можна зробити в JavaScript, в кінцевому підсумку буде зроблено в JavaScript

Це смішно, але низький ключ, я вірю в це.

Якщо ви вступите як новачок, дуже мало шансів зіткнутися з проблемою, з якою раніше ніхто не стикався. Це пов’язано з тим, що всі можливі помилки щодо простих проблем JavaScript, напевно, вже задавались та архівували на таких сайтах, як Stack Overflow.

Фреймворки та бібліотеки, такі як React, Angular та Vue, прокладають шлях до побудови майбутніх додатків. Вони переносять перспективу на декларативне замість імперативного програмування, на те, що замість того, як. Це дозволяє розробникам розробляти якісні програми, не турбуючись про базовий високопродуктивний код.

Всюдисущість

JavaScript присутній на:

  1. Інтерфейс (браузери)
  2. Задня частина (Node, Deno)
  3. Android / iOS (React Native, NativeScript тощо)
  4. Робочий стіл (Електрон)
  5. Гібридний (іонний)

Що робить це можливим? JS-двигуни, такі як V8, написані на C / C ++ і навіть можуть бути скомпільовані на вбудованих системах! Для інших платформ, оскільки браузери завжди присутні (як на Andorid / iOS), вони постачаються з движком JS, який потім можна використовувати для запуску будь-якого коду JS, навіть для власних програм у випадку React Native.

Особливості кровоточать і просування

Стандарти JavaScript керуються спільнотою ECMA-262 TC39, і вау, ці люди швидко! ECMAScript щороку випускає новий стандарт JavaScript (див. Нові функції ECMAScript2020!). Ви як розробник можете навіть попросити додати нові функції до мови.

Наприклад, ось декілька функцій, що очікують на розгляд, які можуть перейти в JavaScript найближчим часом:

Всі пропозиції ви можете знайти тут: Пропозиції TC39.

JavaScript швидкий і масштабований

Звичайно, ніщо насправді не перевершує C / C ++ / Rust, але JavaScript є швидким - у тому сенсі, що V8 може генерувати високооптимізований код, відстежуючи, як виконується ваш код, затримуючи біти виконання, які не використовуються, та оптимізуючи сегменти коду які використовуються знову і знову. Особливо в порівнянні з найближчими конкурентами, такими як Python. З вдосконаленням V8 він стає ще більш продуктивним і ефективною пам’яттю.

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

Масштабування програм Node не схоже на масштабування багатопотокової програми. Вузол буквально означає "вузол" - єдиний вузол у дереві процесів. Вузол масштабується шляхом запуску декількох його екземплярів та управління кластером.

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

Висновок

Я люблю JavaScript, і використовуючи його, я створив платформу для розробників для таких розробників, як ви. Там ви можете не тільки вивчати JavaScript, але й різні інші мови, такі як C, C ++, Java, Node, Python та багато іншого! Приєднуйтесь сюди безкоштовно і навчайтеся з іншими розробниками прямо з вашого браузера!

JavaScript тут, щоб залишитися та керувати галуззю цього десятиліття. Ви згодні? Скажіть мені на моєму Twitter та в Instagram - давайте підключатись!