Що вам слід вивчити в 2017-му

11 січня 2017 13:21 OlegWock 4855 0

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

Тренди

Прогресивні веб-додатки (Progressive Web Apps)

В минулому році ми бачили ріст популярності прогресивних веб-додатків. Це додатки, що можуть працювати без інтернет-з'єднання і виглядають як нативні. Їх можна додати на домашній екран вашого пристрою, вони навіть можуть надсилати вам сповіщення. Ми думаємо, що в 2017му PWA стануть ще популярнішими. Дивіться огляд тут.

Хайп навколо ботів

Про ботів в цьому році говорили всі. Були створені цілі платформи для їх запуску, написані фреймворки для їх розробки. Коротке введення. Якщо ви поквапитесь, ще встигнете осідлати цю хвилю. Але коли пік популярності ботів пройде, я думаю, вони будуть виконувати якісь банальні задачі, як от підтримка користувачів.

Консолідація веб-фреймворків

В JavaScript-спільноті нові фреймворки й інструменти зʼявляються дуже часто. Можливо, кожен тиждень, або й частіше. До недавнього часу старі інструменти просто замінялись новими, але не в 2016-му. Навпаки, ми побачили як популярні фреймворки обмінювалися ідеями. Тому в 2017-му буде не суттєво який фреймворк ви використовуєте, всі вони будуть мати приблизно однаковий набір функцій.

Хмари

Компанії та розробники зі всього світу освоюють "хмару". Це віртуалізована комп'ютерна інфраструктура, як доступна за вимогою і повністю налаштовується з панелі керування. Великою трійкою провайдерів є AWS, Google Cloud та Azure. Завдяки помірним цінам хмари доступні для маленьких компаній та індивідуальних розробників, тому ознайомлення з хмарами буде гарною інвестицією в майбутнє.

Машинне навчання (Machine Learning, ML)

Машинне навчання було популярним у 2016-му. Також відбулася історична гра в Го між AlphaGo та Lee Sedol, що лише сприяла популяризації галузі. За ML майбутнє, тому ознайомитись з цим напрямком не буде зайвим.

Мови програмування

JavaScript тримає свій неймовірний темп в розвитку. Досить частий випуск нових версій браузерів сприймає тому, що новий стандарт виходить кожен рік. І схоже, що до середини 2017ого закінчать стандарт ES2017. Він принесе в JS омріяну фічу — async/await для роботи з асинхронними функціями. А завдяки Babel ви можете писати на ES2017 вже зараз.

TypeScript 2.1 було випущено в кінці минулого року. Він дозволив використовувати async/await в старих браузерах, а також було покращено інтерфейси. TypeScript — це статично типізована мова програмування-надбудова, що компілюється в JavaScript. Вона привносить такі потужні фічі як класична модель ООП та статична типізація, що полегшує підтримку великих проектів. Також це основна мова Angular2, і ми рекомендуємо ознайомитись з нею. А в нас є стаття для цього.

Випуск C# 7.0 заплановано на 2017-ий рік. Нова версія поліпшує й так прекрасну мову. Microsoft здивували всіх коли випустили редактор з відкритим кодом Visual Studio Code, а потім відкрили й код .Net Core. Обидві тепер запускаються на Windows, Linux та macOS і дозволяють писати швидкі та продуктивні додатки на C# (більше тут). Все більша спільнота збирається навколо цих інструментів, і ми впевнені, що попереду цікавий рік.

Також в грудні було випущено Python 3.6. Він міцно закріпився як мова програмування для розробників та вчених. Раніше для спільноти гостро стояла проблема вибору між другою та третьою версією, але це вже позаду. Зараз ви можете спокійно обирати третю версію і насолоджуватись всіма її перевагами та купою бібліотек. А якщо вам потрібно більше потужності, то слід поглянути на альтернативну реалізацію JIT — PyPy.

Ruby 2.3 було випущено теж досить нещодавно. В новій версію було внесено багато виправлень продуктивності. Ruby - гарний вибір, якщо вам потрібна скриптова мова. Але дійсно крутим він стає в поєднанні з рельсами (Ruby in Rails, RoR).

Не минув минулий рік і без нової версії PHP. PHP 7.1 було випущено в грудні. В новій версії були зроблені лише невеличкі покращення продуктивності, основні нововведення були в 7.0. Тепер PHP став дійсно швидкою платформою для написання веб-додатків. Ми рекомендуємо PHP The Right Way щоб відразу почати писати правильний код.

Java 9 буде випущено в 2017ому році. Заявлені такі нові функції як REPL (інтерактивна оболонка), підтримка HTTP 2.0 і нові API. Зараз існує великий попит на талановитих Java-розробників в різноманітні проекти, де використовується ця мова. Якщо Java це не ваше, то є декілька інших мов програмування, що використовують JVM. Наприклад, Kotlin та Scala.

А ще в минулому році світ побачив Swift 3. Swift — це те, як Apple бачить сучасну мову програмування для iOS та macOS. Swift має відкритий код і велику спільноту користувачів. В 2017му році планують випустити четверту версію, що привнесе багато покращень, серед який серверні API, що дозволить писати на Swift сайти.

Якщо вам потрібно щось більш екзотичне, то ваш вибір Crystal або Elixir, які комбінують зручний ruby-подібний синтаксиси і величезну продуктивність. Або ви можете ознайомитись з такими функціональними мовами програмування як Haskell або Clojure. Іншими двома дуже потужними мовами програмування є Rust та Go, що теж є гарним вибором.

Frontend

Веб отримав два крутих нововведення — це Web Assembly та Service Workers. Вони відкривають шлях до швидких та потужних веб-додатків, що, можливо, навіть зможуть зрівнятися з нативними. А Service Workers дозволять використовувати API сповіщень, що є ще одним кроком до прогресивних веб-додатків.

В минулому році також зʼявився Angular.js 2. Фреймворк, яким опікується Google, що дуже популярний в ентерпрайзі й великих компаніях. Перелік його функцій дуже великий, що дозволяє писати на ньому як веб-додатки, так і мобільні та десктопні. Фреймворк написаний на TypeScript, і додатки рекомендують писати теж на ньому. Ми вважаємо, що вивчити Angular 2 в 2017-му буде дуже корисно, тим паче, що є купа джерел інформації.

Vue.js також оновився до версії 2.0. Він бере найкращі ідеї з Angular, React і Ember та збирає їх в одному фреймворку, простому для використання. Також він дещо компактніший ніж вищезазначені фреймворки. Думаємо, переглянути Vue.js tutorials не буде зайвим.

Ember — ще один гарний вибір для JavaScript-фреймворку. Він підтримує звʼязування даних, автооновлення шаблонів, компоненти та рендеринг на стороні сервера. Великим плюсом в порівнянні з іншими фреймворками є те, що він більш стабільний. Несумісні зміни робляться набагато рідше, а спільнота цінує зворотню сумісність. Саме це робить Ember гарним вибором для довготривалих проектів.

Іншим гарним вибором буде Aurelia та React. Але екосистема React значно розрослася за останній рік, що робить його набагато складнішим для новачків. Проте досвідчені розробники можуть зкомбінувати ці бібілотеки з GraphQL, Relay, Flux та Immutable.js в повноцінний стек.

Але ж яка підбірка про фронтенд без Bootstrap. Четверта версія на даний момент в альфі, реліз запланований на 2017-й рік. Головними змінами є компонент картка (card) та сітка на основі флексу (порівняння зі звичайною), з якою дійсно приємно працювати.

SASS та Stylus — це найпотужніші препроцесори для CSS. В той час, коли CSS тільки отримав підтримку змінних, препроцесори підтримують функції, домішки й організацію коду. Ми рекомендуємо наші туторіали по SASS та Stylus.

Backend

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

Node.js — це найкращий спосіб запустити JS поза браузером. В минулому році було випущено багато релізів, які поліпшували потужність та реалізували фічі з ES6. Node має фреймворки для створення швидких API, серверів, десктопних додатків і навіть роботів. Можливо, вам сподобаються ці фреймворки: Express, Koa, Next, Nodal.

PHP — найпопулярніша веб-мова, для неї написано велику кількість бібліотек і фреймвоків. Завдяки купі функцій та гарній документації велику спільноту сформував Laravel. Було випущено третю версію Zend Framework, який орієнтований на бізнес. Також багато нових релізів Symfony було випущено, що робить його ще кращим фулстек вибором.

Для Ruby найперший вибір — Rails. В 2016му році світ побачила пята версія, яка підтримує Web Sockets, API mode та багато іншого. Для маленьких додатків гарним вибором буде Sinatra, тим паче що в 2017-му році вийде друга версія.

Python теж має свою пару фулстек та мінімального фреймворків. І ім'я цій парі Django та Flask. В Django 1.10 було реалізовано повнотекстовий пошук для Postgres та кардинально переписано механізм прошарків (middlewares).

В екосистемі Java теж є свої популярні веб-фреймворки: Play та Spark. А ще їх можна використовувати разом зі Scala.

Для ентузіастів є Phoenix, що написаний на Elixir. І схоже, це майбутній повноцінний конкурент Rails з величезною потужністю. Якщо ви вирішили ознайомитись з Elixir, то цей фреймворк заслуговує вашої уваги.

Бази даних

В цьому році було випущено два великих оновлення для PostgreSQL — 9.5 та 9.6. З ними в postgresql додали UPSERT (aka ON DUPLICATE KEY UPDATE), відомий нам з MySQL, покращили повнотекстовий пошук, поліпшили швидкість та зробили більш ефективними реплікацію, агрегацію, індексування та сортування. Postgres використовують для великих та масштабованих баз даних, тому ці оптимізації дуже важливі.

MySQL 8.0 буде наступним серйозним релізом цієї БД. Він запланований на 2017-й рік і принесе купу покращень в систему. MySQL лишається найпопулярнішою СУБД, тому її знання точно не будуть зайвими.

Для прихильників NoSQL ми рекомендуємо CouchDB. Це швидке та масштабоване JSON-сховище, що працює через RESTful HTTP API. Ця БД дуже потужна, та її просто використовувати. PouchDB — це духовний брат CouchDB, який працює прямо в браузері. PouchDB можна використовувати в додатку для забезпечення офлайн режиму, а потім синхронізувати з CouchDB коли з'явиться з'єднання.

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

Інструменти

Yarn — це альтернативний менеджер пакетів для Node.js, розроблений Facebook. Він швидше встановлює пакети та краще дбає про безпеку. Як джерело пакетів він використовує регістр NPM, тому проблеми з пошуком потрібного пакету не буде. Також yarn сумісний з форматом package.json, який використовує npm.

У двох найпопулярніших редакторів з відкритим кодом — Visual Studio Code та Atom, які побудовані на веб-технологіях (а Visual Studio Code взагалі можна назвати форком Atom), значно зросла спільнота користувачів. Обидва вони мають купу плагінів для самих різних цілей.

Git — це найпопулярніша система контролю версій для коду і не тільки. Вона може працювати без серверу, тобто ви можете перетворити в репозитарій будь-яку папку на диску. Якщо ви бажаєте поділитися кодом, то є такі сервіси як GitLab, Bitbucket та Github. Ми рекомендуємо ознайомитись з гітом, якщо ви цього ще не зробили. А в нас є гарний туторіал.

Десктоп додатки ще живі. Не дивлячись на те, що все більше додатків працюють в браузері, а Web API тільки розширюється, іноді все ж потрібен доступ до того, куди браузер доступу не має. Ось тут в гру і вступають Electron та NW.js, які дозволяють створювати десктопні додатки, використовуючи веб-технології. Щоб дізнатися більше, почитайте ці туторіали по Electron та NW.js.

Також трендом минулого року стало мати в команді окремих розробників, які відповідають за розгортання ПЗ, їх називають DevOps. Це дозволяє швидше випускати релізи і фіксити баги в продакшені. Розробники з таким досвідом більше цінуються компаніями, тому ознайомитись з цими технологіями буде не зайвим. Деякими з таких технологій є Ansible та Docker. Знання командного рядка Linux та базові навички адміністрування є майже обов'язковими для DevOps.

Технології

Хмари стають все популярнішими, багато компаній закрили власні датацентри й перемістили свої дані туди. Основними провайдерами лишились AWS, Google Cloud та Azure. Всі вони мають потужну інфраструктуру, включаючи віртуальні машини, хостовані бази даних, сервіси машинного навчання і багато інших. Ціни ж стрімко падають, тому хмари стають доступні малим компаніям і індивідуальним розробникам. Непогано було б навчитися розгортати свої додатки на одній з цих платформ.

Штучний інтелект був однією з найпопулярніших тем 2016-го року. Розпізнавання мови та класифікація зображень це лише верхівка айсбергу. Зʼявилось багато стартапів, що використовують ШІ та машинне навчання для свої нових продуктів. Зʼявилося також багато продуктів з відкритим кодом, як от гугловський Tensor Flow чи Cognitive Toolkit від Microsoft.

Віртуальна реальність (VR) та доповнена реальність (AR) вже відомі деякий час, але лише нещодавно вони стали досить зрілими. Facebook (Oculus Rift), Google (Daydream) та Microsoft (Windows Holographic), всі вони мають платформи для VR, відкриті для сторонніх розробників. Так, VR шоломи ще мають деякі проблеми типу нудоти, і використовуються в основному в іграх, але в них є великий потенціал, який вже почали використовувати.

Джерело перекладу

4855 10

Схожі матеріали:

Коментарі:

Авторизуйтесь, щоб залишити коментар.