на чем лучше писать сайты в 2021
JavaScript, Python или Go: что лучше всего подойдёт для бэкенд-разработки в 2021 году?
Уже прошло почти восемь месяцев 2020 года, а технические прогнозы на этот год всё выходят и выходят. И это — несмотря на то, что очень сложно предсказать будущее в такой динамично развивающейся индустрии, как разработка программного обеспечения. Тот, кто работает в этой индустрии, видел, как технологии приходят и уходят. Иногда эти технологии проводят свою недолгую жизнь практически незаметно. Технологиям нелегко выживать в мире программирования.
Но если вспомнить прошлое, окажется, что языки программирования имеют огромную историю. В их истории было множество заметных событий, оказавших серьёзное влияние на индустрию. Например, C и Java, одни из самых старых языков программирования, до сих пор находят широкое применение. Но если поинтересоваться их популярностью, окажется, что сейчас они занимают не самые высокие позиции.
Я — программист. Мне очень нравится JavaScript (у меня с этим языком, так сказать, «вечная связь»), я пишу на этом языке уже давно. Но если немного оглядеться, то можно заметить, что в мире разработки ПО есть и другие языки. Предлагаю поразмыслить о том, что лучше использовать для серверной разработки в 2021 году: JavaScript, Python или Go. Но, прежде чем говорить о сильных сторонах каждого из этих языков, давайте взглянем на результаты некоторых исследований.
Результаты исследований и другие данные
▍Исследование Stack Overflow
Ежегодное исследование Stack Overflow — это самое масштабное из существующих мероприятий, направленных на изучение мнений программистов по различным вопросам, касающихся современных технологий. В нём, в 2019 году, приняло участие более 90000 программистов. По его результатам можно сделать вывод о том, что лидером среди языков программирования является Python. А второе и третье места, соответственно, занимают JavaScript и Go. Но это, напомню, исследование 2019 года. За год много чего может измениться. Например, Go — это язык, который развивается крайне быстро, и популярность которого постоянно растёт. Я думаю, что в аналогичном исследовании этого года мы, возможно, увидим другую таблицу лидеров.
Результаты исследования StackOverflow
▍Рейтинги GitHub (GitHut)
Ниже показан график GitHut 2.0, который демонстрирует количество PR, сделанных с 2013 по 2019 год с разбивкой по языкам программирования. Как видно, JavaScript уверенно обходит все остальные языки. Python занимает второе место, а Go тут даже и не видно.
GitHut 2.0, данные по PR
Но если проанализировать рейтинги языков программирования, взглянув на таблицу, расположенную ниже графика, то окажется, что популярность Go растёт, а популярность JavaScript и Python падает.
Популярность Go растёт, а популярность JavaScript и Python падает
▍GitHub-репозитории
Давайте заглянем в GitHub-репозитории, связанные с интересующими нас языками, и посмотрим на то, насколько активно ведётся работа над ними.
Видя эти данные, несложно сделать вывод о том, что Go пользуется большим вниманием разработчиков. У соответствующего репозитория больше наблюдателей, чем у репозиториев, связанных с двумя другими языками, у него больше звёзд. Правда, у этого репозитория меньше форков, чем у двух других.
Теперь давайте поговорим о том, в каких ситуациях может быть интересен каждый из обсуждаемых нами языков.
Python
Python — это высокоуровневый язык программирования с динамической типизацией, который уже много лет пользуется популярностью в IT-индустрии. А именно, на что указывают результаты множества исследований, Python можно назвать самым популярным языком программирования прошедшего десятилетия.
▍Сильные стороны Python
JavaScript (Node.js)
Лично мне очень нравится платформа Node.js. Именно с неё я начал заниматься серверной разработкой. До сих пор я говорил о языках программирования. Но здесь мне хотелось бы поговорить о Node.js, об одной из самых популярных платформ, предназначенных для выполнения JavaScript-кода. Как всем известно, платформа Node.js популярна в IT-индустрии в качестве среды для разработки серверных приложений. Одна из основных причин этого заключается в том, что эта платформа основана на JavaScript. Если вы — JS-разработчик, то вы без особых сложностей можете стать фулстек-программистом. Это — одно из конкурентных преимуществ того, кто знает JavaScript.
▍Сильные стороны JavaScript и Node.js
JavaScript пользуется популярностью в клиентской и серверной разработке
Go — это опенсорсный язык программирования, применение которого облегчает разработку простых, надёжных и эффективных приложений. Он появился в 2009 году, но не стал столь же популярным, как Python и JavaScript. Однако Go с тех пор два раза называли «языком года». 67,9% разработчиков, участвовавших в исследовании Stack Overflow, назвали Go своим самым любимым языком. Очевидно, всё это происходит не без причины.
Самые любимые языки
▍Сильные стороны Go
Мои самые любимые вещи в жизни не стоят никаких денег. Для меня совершенно ясно, что самый драгоценный ресурс, который у нас есть – это время.
Стив Джобс
Итоги
Go, как видно, очень хорошо чувствует себя в последние несколько лет. Кроме того, если судить по результатам исследований, то окажется, что Go показывает лучшую динамику роста, чем JavaScript и Python. В результате можно говорить о том, что в оставшиеся месяцы 2020 года эта тенденция продолжится. И я, даже хотя моим первым серверным языком был JavaScript, отдаю первое место Go.
Какой язык вы назвали бы самым перспективным языком для серверной разработки в 2021 году?
Выбираем лучший бэкенд-фреймворк 2021 года
Недавно мы опубликовали статью, автор которой размышлял о том, какой язык программирования, JavaScript, Python или Go, лучше всего подойдёт для бэкенд-разработки в 2021 году. Сегодня мы представляем вашему вниманию перевод ещё одного материала того же автора. Здесь он пытается найти ответ на вопрос о том, на какой фреймворк для разработки серверных частей приложений стоит обратить внимание тем, кто хочет во всеоружии встретить 2021 год.
О роли фреймворков в IT-индустрии
Я, проанализировав результаты опроса разработчиков, проведённого в 2020 году Stack Overflow, понял, что использование фреймворков играет огромную роль в IT-индустрии. А именно, речь идёт об ответах на вопрос о том, что разработчики считают самым важным при поиске работы.
Факторы, влияющие на выбор места работы
Как оказалось, самым важным для программистов является то, с какими языками, фреймворками и другими технологиями им нужно будет работать на новом месте.
Разработчик обычно знаком хотя бы с одним фреймворком. Здесь я собираюсь рассказать о трёх фреймворках — о Node.js/Express, Django и Spring Boot. Полагаю, что тот, кто, готовясь к 2021 году, решит сделать своим основным инструментом один из них, в любом случае, не прогадает. Но у каждого из них есть свои особенности, которые мне и хотелось бы здесь обсудить.
Результаты исследований и другие данные
▍Данные с GitHut
Ресурс GitHut позволяет узнать различные сведения о репозиториях. В частности, речь идёт о количестве активных репозиториев, об общем количестве PR, и о разных показателях, рассчитываемых по состоянию на один репозиторий: количество PR и форков, число открытых задач, количество новых подписчиков.
Популярность языков программирования на GitHub
▍Исследование Stack Overflow
Если взглянуть на результаты исследования Stack Overflow, то окажется, что Express находится на первом месте среди бэкенд-фреймворков, которые любят разработчики. Два других интересующих нас фреймворка, Spring и Django, следуют за Express с небольшим отрывом. В результате оказывается, что проект, основанный на самом перспективном скриптовом языке, на JavaScript, лидирует, а за ним идёт проект, в котором используется один из языков, обладающих самыми широкими возможностями, то есть — Python.
▍GitHub-репозитории
Некоторые люди не любят перемен, но изменения необходимо принимать, если альтернативой является катастрофа.
Илон Маск
Фреймворк Express создан на базе платформы Node.js, поэтому тут мы будем сравнивать репозитории Node.js, Spring Boot и Django
Как видно, больше всего звёзд у репозитория Node.js. Но разница между звёздами проектов не так сильна, как различие в количестве их форков. У Spring Boot и Django имеется гораздо больше форков, чем у Node.js.
Теперь поговорим о том, в каких ситуациях имеет смысл выбирать тот или иной из рассматриваемых нами фреймворков.
Node.js/Express
Node.js представляет собой серверную платформу, которая является частью стека технологий, охватывающих все нужды веб-разработки, и основанных на JavaScript. В Node.js используется JavaScript-движок V8, тот же самый, что применяется в браузере Chrome и в других браузерах, основанных на Chromium. В результате оказывается, что благодаря использованию Node.js код, предназначенный для выполнения на сервере, можно писать на JavaScript. На базе платформы Node.js создано множество фреймворков, включая такие популярные, как Express.
▍Сильные стороны Node.js
▍Компании, которые используют Node.js
Spring Boot
Проект Spring Boot — это фреймворк для разработки бэкенд-приложений, основанный на Java, который, как и Node.js, используется для разработки микросервисов. Этот фреймворк упрощает создание приложений, основанных на Spring, его можно представить себе в виде инструмента для создания самостоятельных Spring-приложений. Если вы планируете в 2021 году перейти на Spring, то вам, определённо, стоит знать о том, чем вам в этом деле сможет помочь Spring Boot.
▍Сильные стороны Spring Boot
▍Компании, которые используют Spring
Django
Django — это опенсорсный бэкенд-фреймворк, написанный на Python. Как известно, Python — это один из таких языков, которые пользуются наибольшей любовью разработчиков. И это — одна из основных причин того, что Django является одним из самых популярных серверных фреймворков. Но у того, чтобы выбрать Django в качестве своего фреймворка 2021 года, есть и другие причины.
▍Сильные стороны Django
▍Компании, которые используют Django
Итоги
Вышеприведённые факты позволяют сделать вывод о том, что платформа Node.js, в лице фреймворка Express, и Django показывают себя очень хорошо. Но, в то же время, Spring Boot тоже представляет собой достаточно интересное явление. Полагаю, что самым интересной платформой для разработки серверных частей приложений в 2021 году будет Node.js. Хотя и Django — это отличный, развитый фреймворк, который вполне может стать чьим-то выбором в будущем году.
Каким фреймворком для разработки серверных частей веб-проектов вы планируете пользоваться в 2021 году?
Рейтинг языков программирования 2021: доля Python падает, а TypeScript обошел С++, в лидерах JavaScript, Java, C#
Коммерческое использование
Что изменилось? Прежде всего привлекает внимание рост TypeScipt: похоже, он со временем станет основным языком в экосистеме JavaScript. В этом году он впервые обошел С ++ по популярности.
Еще из интересного: впервые за несколько лет мы увидели снижение доли Python: возможно, использование Data Science дошло до точки насыщения.
Впервые с 2012 года выросла доля C#. Использование Java продолжает уменьшаться, хотя и не так активно, как раньше. В общем видно уменьшение доли JVM: доля Kotlin стабильна (хотя он и уступил место Ruby), использование Scala возобновилось после значительного снижения в 2019-м и сегодня, если сравнивать с 2018-м, даже немного возросло. Еще стоит отметить незначительный рост Dart.
Ниже приведена диаграмма с динамикой по актуальным языкам программирования по годам. Статистически значимыми являются изменения для C ++, TypeScript, Ruby, 1C, Scala, Pascal/Delphi, T-SQL. Напомним, что изменения статистически значимы, если с вероятностью 95% мы не можем получить результаты с изменениями и без, если будем равномерно выбирать две группы респондентов с одной популяции.
Области использования
В этом году мы впервые попросили респондентов указать сферу, в которой они работают. Результаты довольно интересны.
Давайте рассмотрим, какие языки используют в зависимости от области применения
Фактически весь фронтенд пишут на JavaScript и TypeScript. Использование других языков сугубо маргинальное. Доля TypeScript сравнительно меньше. Интересно будет посмотреть на это соотношение через год.
Личные предпочтения
Как мы уже указывали, результаты выбора программистов нельзя использовать для прогнозирования, но здесь интересно, что наконец на графиках появился Rust. Опять видим некоторый спад интереса к Python и тенденцию перехода с JavaScript на TypeScript.
Интересно, что здесь данные отличаются от опроса в Stack Overflow и нашего предыдущего опроса: Rust расположен заметно ниже. Наиболее довольны пользователи Elixir (возможно, это миграция Erlang-комьюнити), также обращает на себя внимание место Clojure.
Если посчитать отдельно индекс удовлетворения по сферам применения, то результаты почти совпадают.
Изучение новых языков
Фаворитом, как и в предыдущие годы, стал Python. Его собираются изучать почти 18% из тех, кто будет осваивать новый язык. Но все-таки эта доля меньше, чем год назад. Ну а наибольший рост у TypeScript и Rust.
Финальная таблица
Дополнительные данные
Несмотря на языки программирования, также имеет смысл рассмотреть структуру распределения опыта в динамике.
Tут можно сделать вывод, что, поскольку доля разработчиков с опытом в 1 год уменьшилась => в IT пришло меньше новичков, чем в прошлом году.
Но все равно в большинстве это специалисты с менее 5 лет опыта работы в ИТ.
Рассмотрим корреляцию между возрастом и языком программирования.
Данные и скрипты обработки можно найти на GitHub.
Какие языки программирования нужны веб-разработчику в 2021 году
Рассказываем, почему кроме HTML и CSS разработчикам нужны языки программирования и какие из них актуальны в 2021 году.
Статичный сайт можно написать легко: берём язык разметки HTML и каскадные таблицы стилей CSS. Но если вам нужен проект со сложной логикой и интерактивом — например, интернет-магазин или веб-приложение с базами данных, API и авторизацией, — понадобятся языки программирования.
Веб-приложения состоят из двух больших частей:
Фронтенд (англ. frontend) — то, что пользователь видит на экране и с чем может взаимодействовать: страницы сайта, меню, кнопки, поля ввода и другие части интерфейса. Чаще всего для фронтенда используют HTML, CSS, язык JavaScript и связанные с ним фреймворки — React.js, Angular и Vue.js.
Благодаря тому, что фронтенд связан с бэкендом, пользователи могут регистрироваться, добавлять товары в корзину, оплачивать заказы, публиковать комментарии, смотреть видео и делать всё остальное, чем мы занимаемся в интернете.
Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне.
Языки для фронтенд-разработчиков
Основной стек фронтенд-разработчика — HTML, CSS и JavaScript. HTML (HyperText Markup Language) — это основа разметки веб-страниц. С его помощью создают абзацы, заголовки и гиперссылки, добавляют изображения и другие объекты.
HTML-код объясняет браузеру, что отобразить на странице. У каждого элемента есть свой тег, заключённый в скобки.
Вот пример HTML-кода:
HTML — только каркас, в нём нет инструкций о расположении, цветах и поведении элементов
CSS — язык разметки стилей. Он позволяет установить размеры отступов, выбрать нужный шрифт и стиль текста, настроить цвет фона, прозрачность элементов и другие параметры.
Добавим в предыдущий пример CSS-разметку:
CSS-разметка отвечает за то, как страница выглядит в браузере
JavaScript — язык, который помогает создавать всплывающие окна, динамические стили и анимации, делать так, чтобы при нажатии на кнопку отправлялась форма или происходило другое действие.
Пример ниже — скрипт, который меняет цвет текста, если пользователь щёлкнет курсором по абзацу.
Вот как он работает на практике:
Языки HTML, CSS и JavaScript — основной стек для фронтенд-разработчика. Но и бэкендерам тоже нужно в них разбираться, чтобы понимать, как устроен сайт.
Русскоязычные фронтендеры общаются в группе «Типичный верстальщик» и в чате для джуниоров и мидлов.
Популярные языки для бэкенда
Языки для бэкенда выбирают в зависимости от масштаба проекта и его задач. Например, банк, скорее всего, выберет Java, а стартап из сферы машинного обучения — Python. Дальше вы узнаете почему.
Мы расскажем про шесть популярных серверных языков из списка TIOBE.
PHP — ветеран веб-программирования
PHP создали в 1995 году как язык для веб-разработки. На нём написано почти 79% сайтов. PHP поддерживает MySQL, MS SQL, Oracle Database, PostgreSQL, MongoDB и другие базы данных. IDE для PHP можно установить на Windows, macOS и Linux.
На PHP написан движок Wikipedia и значительная часть Facebook, на фреймворке Symfony создан бэкенд BlaBlaCar.
Пример кода на PHP. Источник: Skillbox Media
У языка много бесплатных библиотек и фреймворков (Laravel, Yii, CodeIgniter), есть большое сообщество — например, PHP Community и LaraChat. По PHP много обучающих материалов для новичков, поэтому освоить язык и начать кодить несложно.
Java — язык для корпораций
Этот язык часто используют крупные компании из сферы BigData и финансов. Java востребован у банков, страховых фирм и розничных сетей. Например, свои системы на нём разрабатывают Deutsche Bank, Citigroup и Goldman Sachs Bank. На Java написана серверная часть сайтов Amazon, eBay, PayPal, Adobe и Oracle.
Вот так выглядит код на Java, который открывает большой текстовый файл и превращает каждую строку в набор из 50 записей, разделённых запятыми:
Пример кода на Java. Источник: raygun.com
В Java код комплексный, со множеством слов и знаков: на английском такой синтаксис называют словом verbose, то есть «говорливый», многословный код. Он может быть сложноват для новичков, хотя многие разработчики чувствуют себя комфортнее со строгим синтаксисом.
На Java пишут мобильные приложения для Android и игры для ПК, пример — знаменитая Minecraft.
У этого языка много библиотек и фреймворков (например, Spring, PrimeFaces и Dropwizard). Для работы с вебом есть сервер приложений Apache Tomcat, который предоставляет среду для выполнения Java-кода.
C 2019 года коммерческое использование Java SE стало платным. Но деньги берут только за сборки Oracle JDK. Сборки OpenJDK остаются бесплатными.
Java-разработчики общаются в русскоязычных чатах Java & Co, learn.java и pro.jvm.
Python — язык для машинного обучения
Python создал голландский программист Гвидо ван Россум, за основу он взял наработки из ABC. В результате получился язык с читаемым кодом и широкими возможностями.
У него простой и понятный синтаксис, и новички часто выбирают его в качестве своего первого языка программирования. Пример ниже выполняет ту же задачу, что и код из раздела про Java — разбивает крупный текстовый файл на элементы:
Пример кода на Python. Источник: raygun.com
У синтаксиса в Python простая, ясная структура, он хорошо читается, и его можно даже назвать интуитивным.
Python используют в веб-разработке, в машинном обучении, анализе больших данных и научных исследованиях, на нём пишут компьютерные игры, приложения для Windows, Linux, macOS, Android и других операционных систем. У языка много фреймворков, известнее всех — Django.
На Python и Django написана серверная часть Instagram и основной код YouTube и Reddit. В своих научных вычислениях язык используют NASA и Fermilab.
У Python есть русскоязычные чаты с парой десятков тысяч участников: Python beginners, rupython, pro.python и Python.
Go — язык «сусликов»
Go (Golang) — язык, который разработали в Google. Он подходит для бэкенда веб-приложений и других проектов — например, на нём написаны Docker, InfluxDB и Kubernetes.
В Go программа может выполнять несколько строк одновременно — это называется «горутиной». Чтобы превратить функцию в горутину, нужно добавить перед ней go.
Пример кода на Go. Источник: Skillbox Media
В языке Go авторы попытались объединить лёгкость разработки на Python и скорость исполнения программ на C и C++.
Go — кроссплатформенный язык, на нём пишут программы под Windows, macOS, Linux и другие ОС. Это опенсорсный проект, поэтому исходный код и компилятор доступны бесплатно. У языка есть фреймворки, самые популярные из них — Gin, Beego и Echo.
Из-за лаконичного синтаксиса Go проще освоить, поэтому его рекомендуют студентам и школьникам. Go-разработчики называют себя гоферами (от англ. gopher — суслик), поэтому суслик — талисман языка.
Go — надёжный и быстрый, и поэтому он становится всё популярнее. Сервисы на этом языке уже пишут Dropbox, Yahoo! и eBay.
Пообщаться с Go-разработчиками и получить помощь можно в русскоязычных чатах Go-go! и GOLANG, англоязычном Go Forum, в группе golang-nuts и в сообществе Gophers в Slack.
C# — язык от Microsoft
Microsoft создала C# как язык для разработки под Windows. У него много общего с Java и С. На С# пишут сайты, игры, мобильные и веб-приложения. Например, на нём написан движок Unity. Язык используют Google, Siemens, Deutsche Bank и другие компании.
Пример кода на C#, который рассчитывает факториал числа:
Пример кода на C#. Источник: Skillbox Media
В C# используется императивная (англ. imperative — приказ, повелительное наклонение) парадигма. В ней программист пишет инструкции для компьютера, то есть отдаёт ему приказы. Чтобы делать это было удобнее, используются объекты — это называется объектно-ориентированным программированием.
Пообщаться с другими C#-разработчиками можно в русскоязычном чате DotNetRuChat, в «Библиотеке шарписта» и чате по С#.
Ruby — язык для человека, а не для компьютера
Автор Ruby, японский программист Юкихиро Мацумото, стремился создать язык для человека, а не для компьютера. Он сделал так, чтобы даже новичкам было просто писать и читать код на Ruby. Язык полностью основан на объектно-ориентированном программировании.
Ruby лаконичный и гибкий. Например, если вместо оператора + вы хотите пользоваться словом plus, можно добавить новый метод в класс Numeric:
В этом языке несложно переназначить даже существующие операторы, чтобы + или – выполняли другие задачи.
Ruby стал популярным благодаря фреймворку Ruby on Rails, на котором пишут фронтенд и бэкенд для веб-приложений. На Ruby написан бэкенд Twitter, GitHub и других ресурсов.
Вывод: какие языки должен знать
веб-разработчик
Чтобы верстать UI, фронтенд-разработчики обязательно изучают HTML, CSS и JavaScript. Бэкенд-специалисту нужно добавить к этому один или несколько других языков программирования — например, PHP, Java, Python, Go, C# или Ruby.