Тренди в JavaScript. Частина 2 – EcmaScript

 

До вашої уваги пропонується розгляд ряду важливих питань стосовно майбутнього найпопулярнішої у світі мови програмування (і не лише для створення веб-додатків) JavaScript. Далеко заглядати не будемо, а звернемося до прогнозів деяких представників JavaScript спільноти на 2016 рік. Отож, у формі запитання-відповідь спробуємо розібратися, чого ж чекати найближчим часом.

Яка із доданих у 2015 році властивостей вважатиметься найбільш цінною у 2016 році?

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

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

2016 рік розпочинає тенденцію, яка колись зможе вилитися у цілковите витіснення вбудованим модульним синтаксисом JavaScript сторонніх модульних форматів (сommonJS, AMD, UMD) та сторонніх завантажувачів (browserify, webpack, systemJS). У найближчому майбутньому цього чекати не варто, але початок вже покладено.

Таким чином можна спрогнозувати, що у 2016 році розробники візьмуть на озброєння модульний синтаксис ES 2015.

Яка із доданих у 2015 році властивостей буде найактивніше використовуватися у 2016 році?

Однозначної відповіді на це запитання знайти не вдалося. Думки розходяться від розробника до розробника. Та помилкою не буде і тут віддати першість модульному синтаксису. Хоча варто очікувати, що немало розробників і протягом 2016 року не відмовляться від використання в роботі принципів CommonJS.

Чи матимуть успіх компілятори типу JS у JS у 2016 році?

Чи не кожен опитуваний погодився що JS y JS компілятори незмінно використовуватимуться. При чому найкращим з них називають Babel.

В загальному основною причиною звертання все більшої кількості розробників до компілятору вихідного коду є перехід на ES 2015. Доступ до нового інструментарію прив’язаний до використання компілятора.

Яку із доданих у 2015 році властивостей у 2016 році розробники вважатимуть зайвою?

Сумнівним досягненням ES6 вважається синтаксис класів. А, оскільки JavaScript не має класів, то такий синтаксис є, по суті, спрощеним кодом, мета якого – забезпечити простіший та зрозуміліший синтаксис для створення об’єктів.

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

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

Який із запропонованих у 2016  та реалізованих у  ES 2017 проектів стане найвагомішим?

В першу чергу варто зазначити, що ES 2016 не принесе стільки ж змін, скільки відбулося у 2015. І, починаючи із 2016, з року в рік єдиною зміною в мові планується лише еволюція TC39.

Були думки, що найважливішим проектом стане Оbject.observe, але його відкликали. Таким чином першим став наступний у списку проект, а саме функціонал асинхронного програмування.

Чи зможе просування одного диспетчеру пакетів витіснити усі інші?

Суперечки щодо встановлення єдиного диспетчеру пакетів для JavaScript були топовими у 2015 році і навряд чи вщухнуть наступних кілька років. Найбільш гостро постає питання здатності одного диспетчеру пакетів однаково ефективно задовольнити потреби як Node, так і фронт-енд розробників. Інше питання: чи це взагалі можливо без втрати або перетягування на себе якості однією із сторін. Дана проблема та способи її вирішення залишаться предметом обговорення і у 2016 році.

Тим часом, поки однозначної відповіді немає, хорошим варіантом можна вважати використання systemJS та jspm.jo. SystemJS йде слідами вбудованого модульного синтаксису та процесу завантаження. А jspm.jo може послужити тимчасовим диспетчером пакетів, що дозволить завантажувати пакети із npm, GitHub та навіть bower. Що б не принесло нам майбутнє в плані диспетчерів пакетів, jspm.io залишиться сумісним із будь-яким рішенням.

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

Які не вирішені у 2016 році питання чекатимуть майбутніх оновлень, щоб бути вирішеними?

Завжди треба прагнути до досконалості, і велика кількість оновлень, доданих у 2015 році, не означає, що 2016 рік не привнесе нічого нового у мову JavaScript.

Можна припусити, що викликом у 2016 році стауть такі, поки що не вирішенні питання:

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

Чи продовжуватиме рости популярність JavaScript?

Немає сумніву, що тенденція до зростання популярності JavaScript серед веб-розробників не припиниться. JavaScript дуже швидко поширюється і заміщує інші мови програмування. За прогнозами, розробники звертатимкться до NativeScript, React Native та Electron, а, відповідно, писатимуть суто на JavaScript.

 За матеріалами Telerik

Поділитися
Тренди в JavaScript. Частина 2 – EcmaScript

Напишіть відгук

Ваша пошт@ не публікуватиметься. Обов’язкові поля позначені *