GrabDuck

Какие языки программирования и технологии вам стоит изучить в 2017 - Библиотека ...

:

Подготовили для вас обзор всех нововведений за 2016 в языках программирования и технологиях. Эти технологии и языки программирования будут актуальны и в 2017.

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

Прогрессивные веб-приложения (Progressive Web Apps)

В прошлом году мы видели рост популярности прогрессивных веб-приложений. Это приложения, которые могут работать без интернет-соединения и выглядят как нативные. Их можно добавить на домашний экран устройства, они даже могут присылать вам уведомления. Мы думаем, что в 2017 PWA станут еще популярнее. Смотрите обзор здесь.

Хайп вокруг ботов

О ботах в этом году говорили все. Были созданы целые платформы для их запуска и фреймворки для их разработки. Краткое введение можно увидеть здесь. Если вы поторопитесь, еще успеете оседлать эту волну. Но когда пик популярности ботов пройдет, я думаю, они будут выполнять какие-то банальные задачи, такие как поддержка пользователей.

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

В JavaScript-сообществе новые фреймворки и инструменты появляются очень часто. Возможно, каждую неделю или чаще. До недавнего времени старые инструменты просто заменялись новыми, но не в 2016-м. Наоборот, мы увидели, как популярные фреймворки обменивались идеями. Поэтому в 2017-м будет не так важно, какой фреймворк вы используете, все они будут иметь примерно одинаковый набор функций.

Облака

Компании и разработчики со всего мира осваивают «облако». Это виртуализированная компьютерная инфраструктура, доступная по требованию и полностью настраиваемая с панели управления. Большой тройкой провайдеров является AWS, Google Cloud и Azure. Благодаря умеренным ценам облака доступны для маленьких компаний и индивидуальных разработчиков, поэтому знакомство с облаками будет хорошей инвестицией в будущее.

Машинное обучение (Machine Learning, ML)

Машинное обучение было популярным в 2016-м. Также состоялась историческая игра в Го между AlphaGo и Lee Sedol, что только способствовала популяризации отрасли. Будущее за машинным обучением, поэтому ознакомиться с этим направлением не будет лишним.

%image_alt%

JavaScript и его друзья

JavaScript держит свой невероятный темп в развитии. Достаточно часто выпуск новых версий браузеров происходит из-за того, что новый стандарт выходит каждый год. И похоже, что к середине 2017 закончат стандарт ES2017. Он принесет в JS желанную фичу — async/awaitдля работы с асинхронными функциями. А благодаря Babel вы можете писать на ES2017 уже сейчас.

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

Другие скриптовые языки

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

Ruby 2.3 был выпущен тоже достаточно недавно. В новой версии было внесено много исправлений производительности. Ruby — хороший выбор, если вам нужен скриптовый язык. Но действительно крутым он становится в сочетании с рельсами (Ruby in Rails, RoR).

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

Enterprise

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

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, что тоже является хорошим выбором.

%image_alt%

Веб получил два крутых нововведения — это 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 и LESS — это мощные препроцессоры для CSS. В то время, когда CSS только получил поддержку переменных, препроцессоры поддерживают функции, примеси и организацию кода. Мы рекомендуем эти туториалы по SASS и LESS.

%image_alt%

Выбор бэкенд-фреймворков очень большой, все зависит от ваших предпочтений и специфических потребностей. В последнее время распространяется тренд на отделение бэкенд от логики, превращая его в 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, то этот фреймворк заслуживает вашего внимания.

%image_alt%

В этом году было выпущено два больших обновления 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 предоставляет большой выбор структур данных, а с будущей четвертой версии мы получим систему модулей и улучшенную репликацию.

%image_alt%

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.

%image_alt%

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

Искусственный интеллект был одной из самых популярных тем 2016 года. Распознавания речи и классификация изображений — это только верхушка айсберга. Появилось много стартапов, использующих ИИ и машинное обучение для своих новых продуктов. Появилось также много продуктов с открытым кодом, такие как гугловский TensorFlow или Cognitive Toolkit от Microsoft.

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

Источник: Tutorialzine, Codeguida