Тренды программирования: чего можно ожидать в 2020 году?

Автор оригинала: Indrek Lasn
  • Перевод
Как бы безумно это не звучало, но 2020 год наступит уже очень скоро. «2020 год» — это похоже на фразу из научно-фантастического романа. Но это не фантастика. Нас от этой даты отделяет всего несколько месяцев.



Автор материала, перевод которого мы публикуем сегодня, говорит, что если вас занимает вопрос о том, что будущее может принести в мир программирования, то вы, читая это, оказались в нужном месте в нужное время. Он отмечает, что, размышляя о том, что может произойти, вполне может ошибаться в своих прогнозах и просит его не цитировать. По его словам, он не может предсказать будущее, но способен сделать обоснованное предположение о том, каким оно будет.

Лучший способ предсказать будущее — это создать его.
А. Линкольн

Rust станет мэйнстримом



Rust

Rust — это мультипарадигмальный язык программирования общего назначения. Его рассматривают как перспективный язык для разработки ядер операционных систем. Особое внимание в нём уделяется безопасности, в частности — безопасности параллельного выполнения кода. Rust, в плане синтаксиса, похож на C++, но он спроектирован с учётом обеспечения более безопасной работы с памятью при сохранении высокой производительности.


Rust (источник)

Последние четыре года Rust демонстрирует уверенный рост. Я полагаю, что 2020 год — это год, в котором Rust официально станет мэйнстримом. Что это значит, кстати? Пожалуй, каждый сам определяет для себя это понятие. Я, например, думаю, что Rust начнут преподавать в различных учебных заведениях. Это создаст новую волну Rust-программистов.


Самые любимые языки программирования из исследования StackOverflow 2019 года

Rust зарекомендовал себя как отличный язык, вокруг которого сложилось энергичное и активное сообщество. А если учесть то, что Facebook создаёт с помощью Rust огромный проект Libra, скоро мы узнаем о том, на что способен этот язык.

Если вы собираетесь выучить новый язык программирования — я бы настоятельно порекомендовал вам заняться Rust. Например — можете попробовать эту книгу.

Популярность GraphQL продолжит расти



Данные Google Trends по GraphQL

По мере роста приложений и увеличения их сложности растут и нужды этих приложений, касающиеся потребления данных. Я — большой фанат GraphQL. Мне доводилось пользоваться этой технологией много раз. Я думаю, что GraphQL значительно превосходит традиционные REST API.

В то время как типичный REST API требует организовывать загрузку данных из разных источников, выполняя несколько запросов, GraphQL позволяет получить все необходимые данные, возможно, берущиеся из разных источников, выполнив лишь один запрос.


GraphQL

GraphQL используется командами самых разных размеров. Эту технологию применяют в различных окружениях, она доступна для приложений, написанных на разных языках. Её используют при создании мобильных приложений, веб-сайтов, API.


Компании, использующие GraphQL

Если вас интересует технология GraphQL — взгляните на этот материал.

Прогрессивные веб-приложения станут явлением, с которым придётся считаться


Прогрессивные веб-приложения (Progressive Web Apps, PWA) — это новый подход к разработке приложений, основанный на комбинации всего лучшего, что есть в веб-приложениях и в мобильных приложениях.


Прогрессивные веб-приложения (источник)

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

Для того чтобы большие компании приняли бы эту идею, однако, требуется некоторое время. Это — совершенно нормально. «Прогрессивная» часть PWA, в основном, имеет отношение к фронтенд-разработке. Дело в том, что её создание подразумевает, преимущественно, описание взаимодействия с API Web Workers (это — стандартный браузерный API).

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


Данные Google Trends по PWA

Сегодня — замечательный день для того, чтобы начать изучать прогрессивные веб-приложения.

Технологии WebAssembly будет уделено больше внимания



WebAssembly

Вот что можно узнать о технологии WebAssembly (Wasm) из открытых источников: «Это бинарный формат инструкций для стековой виртуальной машины. WebAssembly спроектирован как портативная цель компиляции для высокоуровневых языков, таких как C/C++/Rust, которую можно развертывать в web для клиентских и серверных приложений». Wasm можно пользоваться и при разработке прогрессивных веб-приложений.

Другими словами, Wasm — это механизм, который позволяет связать мир JavaScript с миром технологий другого уровня. Предположим, вы задумываетесь о том, чтобы воспользоваться в своём React-приложении библиотекой для обработки изображений, написанной на Rust. Сделать это вам позволит WebAssembly.

Производительность приложений — это очень важно во все времена, а учитывая то, что объём данных, которые приходится обрабатывать приложениям, постоянно растёт, поддержание производительности на высоком уровне оказывается непростой задачей. Именно здесь вступают в игру низкоуровневые библиотеки, написанные на С++ или Rust. Полагаю, что в будущем году мы увидим множество примеров внедрения WebAssembly крупными компаниями.

React продолжит лидировать во фронтенде



Сведения об инструментах для фронтенд-разработки из Google Trends

React, несомненно, является самой популярной JavaScript-библиотекой для фронтенд-разработки. Такая ситуация сложилась не случайно. Создавать React-приложения легко и интересно. Команда разработчиков React и сообщество, которое сложилось вокруг этой библиотеки, проделали замечательную работу по совершенствованию разных аспектов React и вспомогательных библиотек.


React

Я работал с Vue, Angular и React, и могу сказать, что всё это — фантастические инструменты для веб-разработки. Помните о том, что цель библиотеки или фреймворка заключается в том, чтобы решить некую задачу. Поэтому, говоря о разных инструментах, стоит принимать во внимание не то, как они устроены, а то, насколько эффективно они способны привести разработчика к его цели. Я считаю рассуждения о «самом лучшем инструменте» совершенно ненужными. Вместо подобных рассуждений разработчикам стоит направлять всю свою энергию на решение стоящих перед ними задач.

Если вам не терпится создать какой-нибудь интересный проект — выберите что-нибудь из этого списка.

JavaScript — язык, который будет всё так же популярен, как сегодня


С уверенностью можно говорить о том, что уходящее десятилетие уместно будет назвать «десятилетием JavaScript». В эти годы шёл постоянный рост популярности JavaScript, и нет оснований считать, что эта тенденция замедлится. Поэтому, сделав ставку на JavaScript, вы точно не проиграете.

JavaScript-разработчиков иногда несправедливо называют «ненастоящими программистами». Но JavaScript — это язык, находящийся в сердце любой большой технической компании. Среди таких компаний — Netflix, Facebook, Google и многие другие. В результате можно сказать, что JavaScript, как язык, ничуть ни хуже других языков программирования. Поэтому всем JavaScript-разработчикам стоит гордиться тем, чем они занимаются. В конце концов, именно JavaScript-сообщество создало массу интереснейших и современнейших проектов.


Анализ ведущих языков программирования
Вот материал о том, благодаря чему JavaScript стал столь популярным языком.


JavaScript, в некоторой степени, используется практически на каждом из существующих веб-сайтов. Сколько их? Миллионы!

Пожалуй, для того, чтобы стать JavaScript-разработчиком, не найти лучшего времени, чем сейчас. Зарплаты JS-программистов растут, рынок труда огромен, да и сообщество этого языка демонстрирует небывалую активность.


Самые популярные опенсорсные проекты

Итоги


Автор этого материала поделился своим видением того, что можно ожидать от мира программирования в 2020 году. Он выделил такие технологии, как Rust, GraphQL, PWA, Wasm, React и JavaScript. Через некоторое время мы узнаем о том, насколько точными оказались его прогнозы.

Уважаемые читатели! Как вы думаете, чего можно ожидать от мира программирования в 2020 году?

RUVDS.com
919,15
RUVDS – хостинг VDS/VPS серверов
Поделиться публикацией

Комментарии 21

      +5
      Мне казалось я уже читал эту статью вчера. о_О
        +4
        Это день сурка. Срочно учитесь делать приём Геймлиха.
        +2
        PHP и Python никуда не денутся.
          +1
          И Perl конечно же.
          Perl
          image

          +2
          Rust, в плане синтаксиса, похож на C++

          Интересно, каким это образом?
            +6
            Он такой же страшный. (тут слышен вздох C++-разработчика с восьмилетним стажем)
              0
              В сравнении с синтаксисом Rust, C++ просто эталон красоты…
              0
              Буквы, цифры, скобки.
              +2

              "Портативная цель компиляции" — плохо

                +2
                Rust станет мэйнстримом

                Не хватает обязательного в таких случаях дополнения "а C++ умрёт".

                  –9
                  Когда ойтишнег открывает рот со словами «тренды», «год», «перспективы», он должен быть как минимум каким-то значимым деятелем. А обычный жабокодер, вращающийся в вебке — так себе «предсказатель». Его список «трендов» ничего кроме ржача не вызывает — позорище сплошное. Так что даже не вижу, что тут обсуждать — закидать ссаными тряпками и всё. :)
                    0
                    Ну все кроме JS крайне сомнительно.
                      0
                      Ну, а JS потихоньку заменяется на TypeScript, Dart и ему подобные. Разумеется экосистема та же, да и синтаксис похож и вообще те яйца только в профиль, но как именно JS как язык/синтаксис может потихоньку заменятся тем же TypeScript'ом.
                        +1

                        Да наверно вы правы я несколько далёк от передовой фронта. Так что для меня typescript это что-то вроде опции, а не замены js и его библиотек.

                      +4

                      Пост станет намного лучше, если добавить ко всем пунктам "к сожалению" :).


                      Например:


                      Rust станет мейнстримом, к сожалению
                      JavaScript останется самым популярным языком программирования, к сожалению
                      React останется самым популярным фронтенд фреймворком, к сожалению

                        0
                        Rust станет мейнстримом, к сожалению

                        Ну почему же? Я, например, порадуюсь :)

                        0
                        React не прогадал со своим ФП подходом, корни которого лежат в языке OCaml, поэтому на арену также выйдут ML-подобные языки для фронтненда типа ReasonML и F# (Fable).
                        Кто не верит в успех React, посмотрите какой сейчас тренд появился в мобильной среде, а именно Android Jetpack Compose и IOS SwiftUI.
                          0

                          А что роднит React с OCaml? Rust, кстати, тоже наследник ML.

                            –1
                            Во-первых, прототип React изначально был написан на SML и его архитектура закладывалась с учётом особенностей этого языка.
                            Из первого тезиса вытекает следующий. Если вы посмотрите на модель refs в React, то увидите аналогию с mutable refs в OCaml.
                            Из последнего — это хуки, prior of art которых лежит в github.com/ocamllabs/ocaml-effects-tutorial#2-effectful-computations-in-a-pure-setting
                              +1
                              Во-первых, прототип React изначально был написан на SML и его архитектура закладывалась с учётом особенностей этого языка.

                              Это неправда. Архитектура закладывалась с учетом php, т.к. реакт писался для портирования имеющегося php-кода. Именно из-за серверной логики php в реакт и пришли основные его болячки вроде прибивания логики уи к внутрненней логике рендера.
                              Ничего от sml/ocaml'а в реакте нет. Никаких ФП-подходов там тоже не используется.
                              На SML они писали ровно по тем же причинам, по которым на окамле писали flow — потому что этим занимались безграмотные хипстеры, а не нормальные инженеры.


                              типа ReasonML

                              ReasonML не взлетит, т.к. у фейсбука нету (и не будет) толковых специалистов в области CS. А без специалистов нормальный инструмент не сделаешь.


                              Из последнего — это хуки, prior of art которых лежит в github.com/ocamllabs/ocaml-effects-tutorial#2-effectful-computations-in-a-pure-setting

                              Хуки — это обычный антипаттерн, среди многих других антипаттернов в реакте, которые раз за разом суют, чтобы прикрыть сломанную архитектуру. Неудачно, конечно.
                              Если вам интересно, как выглядят на js свободные монады, можете посмотреть на redux-saga. И убедиться, что ничего общего с хуками там и в помине нет.

                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                        Самое читаемое