Языки программирования для создания сайтов и фреймворки, которые вам стоит изучить
В этой статье мы поговорим о том какие языки программирования для создания сайтов и фреймворки, необходимо изучить.
Тренды
Переход от back-end к front-end
В последние несколько лет наблюдается тенденция перемещения бизнес-логики веб-приложений из back-end в front-end, и делегирования функций back-end простым API. Это делает выбор рабочего фреймворка гораздо более важным.
Быстрые релизы новых версий браузеров
Еще одним значительным достижением стал выпуск браузера Edge. Этот преемник Internet Explorer имеет обновленный интерфейс и более высокую производительность. От IE его отличает то, что он характеризуется таким же коротким периодом времени между выходом обновленных версий, что и Firefox и Chrome. Это способствует развитию сообщества JavaScript-разработчиков, так как обновления JavaScript и новые веб-стандарты становятся доступны в браузерах спустя несколько недель, а не лет.
Смерть Flash
Это наконец-то случилось! YouTube перешел на HTML5, оставив в прошлом Flash-плеер. Firefox начал по умолчанию блокировать плагины Flash. Даже мощный пакет Adobe Flash был переименован в Adobe Animate и по умолчанию экспортирует содержимое в HTML5. Это открывает новые возможности для веб-платформ:

Языки программирования и платформы
Выпущен Python 3.5, в котором реализовано большое количество новых функций, таких как Asyncio, которая предоставляет подобный Node.js цикл событий и подсказки по типам. В целом Python 3 приобретает все большую популярность, и мы настоятельно рекомендуем его вместо старого Python 2.
PHP 7 является новой версией, которая исправляет ряд проблем и вводит новые возможности (обзор). PHP 7 примерно в два раза быстрее, чем PHP 5.6, что имеет значительное влияние на крупные современные web технологии, базы кода и CMS системы, такие как WordPress и Drupal.
Мы рекомендуем PHP The Right Way, который обновлен до версии 7. А если вам нужно еще больше скорости, попробуйте HHVM, который используется Facebook.
JavaScript также получил обновления в виде стандарта ES2015 (ранее известного, как ES6). Он открывает перед нами новые захватывающие возможности и вводит некоторые дополнения к языку. Благодаря браузерам, которые следуют политике быстрых релизов, поддержка ES2015 уже сегодня находится на довольно высоком уровне. Кроме этого есть Babel.js, который поможет адаптировать код под старые браузеры.
Node.js претерпел много изменений, включая разделение сообщества Node.js и io.js, а затем повторное объединение. На сегодняшний день мы имеем активно поддерживаемый проект с большим количеством участников и двумя версиями Node - релиз LTS (долгосрочная поддержка), который обеспечивает стабильность для долго функционирующих проектов и крупных компаний, а также релиз, который позволяет быстро добавлять новые функции JavaScript.
Swift 2 - это видение компании Apple современного языка программирования, которое упрощает разработку приложений под iOS и OS X. Swift стал программным обеспечением с открытым исходным кодом и уже был импортирован на Linux. Это означает, что теперь на нем можно разрабатывать серверное и back-end программное обеспечение.
Go 1.5 внес ряд существенных изменений в архитектуру. В 2015 году он приобрел значительную популярность и был применен в некоторых ведущих стартапах и проектах с открытым исходным кодом. Сам язык является относительно простым.
TypeScript является статически типизированным языком, который компилируется в JavaScript. Он разрабатывается Microsoft и идеально интегрируется с Visual Studio и открытым редактором Visual Studio Code. По всей видимости, он станет довольно популярным основным понятием web технологий, так как готовящийся к релизу Angular 2 написан именно на нем. Статические типы обеспечивают такие преимущества, как возможность задействовать команды и работать с большими базами кода. Так что, если хотя бы один из этих факторов для вас актуален, вы должны попробовать TypeScript.
Ради развлечения можно попробовать один из функциональных языков, таких как Haskell или Clojure. Есть также интересные языки с высокой производительностью, такие как Rust и Elixir. Если вы ищете работу программиста, изучение таких языков, как Java (который в 8-й версии получил ряд интересных функций) и C# (который благодаря Visual Studio Code и .net core теперь может запускаться на различных платформах) может стать отличным вложением вашего времени.
Изучите один или несколько из этих языков программирования: Python 3, Go, PHP 7, ES2015, Node.js, Swift, TypeScript

JavaScript-фреймворки в современном программировании
JavaScript является важной частью веб-разработки, поэтому мы отвели ему специальный раздел. Появились два новых стандарта - Service Workers и Web Assembly, которые определяют, как теперь будут разрабатываться веб-приложения. Также вышло несколько новых версий популярных фреймворков:
Angular.js стал JavaScript-фреймворком для предприятий и крупных компаний. Angular 2 был представлен на рассмотрение разработчикам. Angular 2 гарантированно станет основным корпоративным фреймворком для многих разработчиков. Уже сейчас вы можете прочитать краткое руководство по нему.
React выпустил новые релизы и проекты, реализовавшие его в качестве библиотеки. А также новые средства разработки.
Facebook выпустил React Native, который является основой для создания мобильных приложений для Android и IOS. Он сочетает в себе оригинальный внешний интерфейс с работой React под капотом.
Polymer 1.0 позиционируется, как стабильная и готовая к работе «из коробки». Polymer базируется на Web Components, который является стандартом для упаковки HTML, JS и CSS в отдельные виджеты, которые могут быть импортированы в веб-приложения. На данный момент Web Components поддерживается только в Chrome и Opera, но Polymer делает его доступным во всех браузерах.
Также вышла новая версия Ember.js. В ней была введена модульная система, удалены устаревшие функции и оптимизирован код. Ember исповедует написание семантически корректного кода и команда поддержки фреймворка очень осторожно вводит новые функции. Если вам нужен стабильный фреймворк для технологии разработки web приложений с простой миграцией на новые версии, вы можете попробовать Ember.
Vue.js - это новая библиотека, которая предлагает адаптивные компоненты для создания пользовательских интерфейсов. Она поддерживает связывание данных, модульные компоненты и композиции. Vue похожа на React, но она не использует виртуальный DOM и работает только в браузере. За короткое время своего существования Vue.js объединила вокруг себя очень активное сообщество. Библиотека позиционируется как инструмент для создания веб-интерфейсов.
Изучите один из этих фреймворков: Angular 2, React, Ember.js, Vue.js, Polymer, Web Components, Service Workers

Front-end
Bootstrap стал еще популярнее, он понемногу превращается в стандарт веб-разработки. Версия 4 версии реализована поддержка flexbox и интеграция SASS. Авторы фреймворка обещают плавный переход с версии 3.
Foundation - это еще один frontend-фреймворк, который является альтернативой Bootstrap. В версии 6 основное внимание было уделено модульной системе, чтобы можно было включать только те фрагменты, которые вам нужны, это позволит значительно сократить время загрузки.
MDL - это официальный фреймворк Google для создания элементов дизайна веб-приложений. Он имеет аналогичную цель с другим фреймворком от Google - Polymer, но является гораздо более простым в изучении и работе с ним.
CSS-препроцессоры также продолжают совершенствоваться. Less и SASS являются наиболее популярными на данный момент, их набор функций в основном сопоставим. Тем не менее, новость о том, что Bootstrap 4 переходит на SASS, дает ему небольшое преимущество перед Less.
Кроме этого появился новый инструмент PostCSS, который также заслуживает внимания. Однако мы рекомендуем его только тем разработчикам, которые уже имеют опыт работы с препроцессорами и знают, какие технологии востребованы в web.
Изучите один или несколько из них: Bootstrap, MDL, Foundation, SASS, LESS, PostCSS

Back-end
В течение последних нескольких лет в веб-разработке все больше логики приложений переносится в веб-интерфейс, а back-end рассматривается только как API. Однако до сих пор остается много классических веб-приложений с генерируемым HTML, поэтому мы считаем, что изучение классических фреймворков полного стека по-прежнему важно.
В зависимости от того, какой язык вы предпочитаете, есть несколько вариантов на выбор. Если PHP, то есть Symfony, Zend, Laravel (и Lumen, его новая более компактная альтернатива для API), Slim и другие. Если Python, то Django и Flask. Если Ruby - Rails и Sinatra. Если Java - Play и Spark. Если Node.js, то Express, Hapi и Sails.js, а если Go - Revel.
AWS Lambda был выпущен еще в 2015, но только в 2016 году его концепция была окончательно установлена и готова к производству. Это сервис, который полностью устраняет back-end серверы и является бесконечно масштабируемым. Можно определить функции, которые вызываются при определенных условиях или когда посещаются определенные адреса API. Это означает, что можно получить back-end полностью без клиент серверных технологий web.
Еще одним трендом являются генераторы статических сайтов, такие как Jekyll и Octopress. Эти инструменты используют несколько исходных файлов, таких как текст и изображения, и создают готовый сайт с предварительно сформированными HTML-страницами.
Разработчики, которые раньше создавали блоги на WordPress с базой данных и панелью администрирования, теперь предпочитают генерировать HTML-страницы и загружать только статическую версию сайта. Это дает существенные преимущества в плане повышения безопасности (нет back-end, который можно взломать, и нет базы данных, которую можно похитить) и увеличения производительности. В сочетании с CDN, такими как MaxCDN и CloudFlare, клиент может запросить страницу сайта и получить ее с ближайшего сервера, что значительно сокращает время ожидания.
Изучите один из них: back-end фреймворки полного стека, AWS Lambda, генераторы статических сайтов

CMS
Мы включили в наш обзор две наиболее популярные технологии создания web сайтов. Обе написаны на PHP и просты в установке и работе. Они используют новый быстрый PHP 7.
В последние годы WordPress стал намного больше, чем просто блог-платформой. Это полноценный CMS / фреймворк, который с помощью плагинов позволяет запустить любой сайт. На рынке представлено большое количество тем для WordPress высокого качества, и многие фрилансеры зарабатывают себе на жизнь разработкой под WordPress. С помощью таких проектов как WP-API можно использовать WordPress в качестве REST API back-end.
В прошлом году вышел Drupal 8. Он был полностью переписан, особое внимание было уделено современным технологиям разработки. Теперь Drupal использует компоненты Symfony 2, пакеты Composer и движок шаблонов Twig. Миллионы сайтов работают на Drupal, это хороший вариант для разработки тяжелых порталов.

Базы данных
В этом году сообщество веб-разработчиков утратило часть своего энтузиазма по поводу баз данных NoSQL, и многие вернулись к реляционным базам данных, таким как Postgres и MySQL. Заметным исключением из этой тенденции являются RethinkDB и Redis.
Postgres является популярной реляционной СУБД, команда поддержки которой пристально следит за всеми инновациями в сфере разработки и постоянно совершенствует систему, добавляя новые функции. В ближайшее время ожидается выход версии 9.5. В ней будет реализована улучшенная поддержка столбцов JSONB для хранения без схемных данных (в результате чего отпадает необходимость в наличии отдельной базы данных NoSQL) и долгожданная операция upsert, которая упрощает INSERT-или-UPDATE запросы.
MySQL является самой популярной СУБД с открытым исходным кодом, применяемой в технологии web программирования. Начиная с версии 5.7, MySQL также поддерживает столбцы JSON для хранения без схемных данных. Если вы являетесь начинающим back-end разработчиком, вы в первую очередь обратите свое внимание на базы данных MySQL, которые хостинг-провайдер предварительно настроил для вас. Возможно, они будут более старой версии, и вы не сможете поработать с JSON. Но MySQL включен в популярные пакеты, такие как XAMPP и MAMP, так что вы сможете легко начать работу с системой.
Изучите одну из этих СУБД: Redis, RethinkDB, MySQL / MariaDB, PostgreSQL

Мобильные приложения
Мобильные платформы постоянно развиваются, а сами смартфоны по производительности уже могут составить конкуренцию не самым мощным компьютерам. Это хорошая новость для гибридных мобильных фреймворков, так как мобильные приложения, созданные с помощью веб-технологий, теперь могут предложить оригинальный опыт взаимодействия.
В данный момент на рынке присутствуют популярные Ionic и Meteor. Недавно вышла версия Meteor 1.4, и он теперь подходит для разработки мобильных приложений. Facebook запустил React Native, который использует компоненты React в потоках JavaScript. Они также обновили свой оригинальный интерфейс, что позволило разрабатывать во многом идентичный код как под iOS, так и под Android.
Изучите один из них: Ionic, React Native, Meteor

Редакторы и инструменты
Вышла версия 1.0 редактора Atom. Это бесплатный и мощный редактор кода, который построен с использованием современных технологий создания web сайтов. Он содержит множество пакетов и уже успел сформировать вокруг себя большое сообщество поклонников. Он интегрируется с плагинами для рефакторинга кода и имеет множество красивых тем оформления, которые можно выбрать и настроить, написав код CoffeeScript и CSS. Facebook использовал эту функцию и запустил редактор Nuclide.
Корпорация Microsoft удивила всех, выпустив свой редактор Visual Studio Code. Это компактный IDE, который поддерживает несколько языков и работает под управлением Windows, Linux и OS X. Он поддерживает функцию проверки кода IntelliSense и интегрируется с отладчиком для ASP.Net и Node.js.
NPM, менеджер пакетов Node.js, в последнее приобрел сумасшедшую популярность и стал стандартным упаковщиком для front-end и node разработчиков. Это самый легкий способ управлять зависимостями JavaScript проекта, он очень прост в работе.
Даже для разработчиков-одиночек Git стал просто незаменим. Его без серверная модель позволяет превратить любую папку в хранилище с контролем версии, которое можно залить на Bitbucket или Github и синхронизировать с компьютером.
Изучите один из них: Atom, Visual Studio Code, NPM, Git