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