Революции в разработке: смартфоны захватили мир, а кодеры сходят с ума по фреймворкам
Рассказываем, как изменилось программирование за последние двадцать лет и куда катится IT-мир.
Wikimedia / Morocko / Shutterstock / dassel / Pixabay / Polina Vari для Skillbox Media
Кажется, всё самое значительное и интересное в программировании случилось в прошлом веке. Главные языки, методы и алгоритмы уже изобрели. А произошло ли что-то революционное за последние 20 лет? Попробуем разобраться.
Восстание мобилок
Если раньше программы писали для настольных компьютеров и мейнфреймов, то сейчас их подвинули смартфоны. Хотя IBM разработала Simon Personal Communicator ещё в 1992 году, революция началась с выхода первого iPhone и iOS в 2007-м.
Тогда же появилась и Android — мобильная операционная система на базе Linux. Google выкупила его и выложила исходники в открытый доступ. Свободную ОС оценили разработчики, поэтому приложения под Android стали возникать как грибы после дождя. Так у сотовых операторов появились новые приложения и сервисы, а у разработчиков — готовый SDK, большой рынок и возможности для заработка.
На фоне других ОС Android был «сыном маминой подруги»: многозадачный, поддерживал трёхмерную графику, экономил память, позволял разработчикам менять GUI и создавать свои версии операционной системы. Постепенно мобильная разработка превратилась в отдельную область программирования и многомиллиардный бизнес. А в 2014 году Apple даже создала новый язык программирования для приложений под iOS — Swift.
Сегодня примерно половина мирового трафика приходится на смартфоны. Больше всего с телефонов сёрфят в Азии и Африке, где mobile first — это стиль жизни (причина простая — многие просто не могут позволить себе ПК и ноутбуки).
Интересно, как за 10–15 лет мобильный телефон из «средства беспроводной связи» превратился в высокотехнологичный all-in-one-девайс. Иногда говорят: «К хорошему быстро привыкаешь». С технологиями так же: нам кажется, что они настолько очевидны, что были всегда. А между прочим, всё это появилось в течение последних 10 лет:
- высокоскоростные сети 5G;
- AR-/VR-игры;
- голосовые помощники и голосовое управление;
- мобильные кошельки и блокчейн;
- приложения для интернета вещей и умных часов;
- гибкие экраны на OLED-технологии;
- приложения с использованием машинного обучения (например, FaceApp);
- чат-боты.
Если бы вы рассказали о гибких экранах человеку из «кирпичного» 2007-го, он, скорее всего, посоветовал бы меньше читать Азимова. А мобильная революция продолжается — просто не все её замечают. Пройдёт десять лет, и мы снова будем удивляться, как раньше жили с настолько медленным интернетом — всего 10 Гбит/с — и без NFC-имплантов.
Все без ума от фреймворков
Если спросить веб-разработчика, что важнее — знать ванильный JS или фреймворк, он ответит: «Конечно, ванильный JS». Но требования в вакансиях и холивары на форумах говорят об обратном. Кажется, все помешались на фреймворках.
Подробности — в статье «Вернём веб-разработке былое величие».
Они появляются каждый год на протяжении почти 20 лет. В 2004 году Давид Хейнемейер Ханссон из компании 37signals опубликовал Ruby on Rails. В 2005 году вышли Symfony и Django, в 2006-м — jQuery, в 2007-м — первый релиз Sinatra для Ruby, а в 2008-м — первая версия Yii. Можно продолжить, но лучше посмотрите на диаграмму.
В начале 2000-х клиентская сторона сайтов была скучной и статичной — только гипертекст и картинки. Но в 2009 году вышел ECMAScript 5, который расширил возможности JavaScript. Тогда конвейер библиотек и фреймворков заработал на всю катушку: Vue, React, Redux, Angular и Node.js — и это лишь самые популярные. Сегодня арсенал JavaScript насчитывает по меньшей мере 24 фреймворка и 83 библиотеки.
Фреймворки пишут, чтобы не тратить время на однообразные задачи. На практике такое обилие лишь усложняет жизнь разработчикам: ведь теперь, помимо языков, приходится учить три-четыре фреймворка, которые регулярно обновляются.
«Они (создатели фреймворков. — Прим. ред.) всегда пытаются исправить ошибки JavaScript с помощью новых фреймворков. React сейчас в топе, но разработчики интерфейсов жалуются, что он слишком сложный. Поэтому придумали Vue — чтобы хоть как-то навести порядок. И это никогда не закончится».
Ричард Кеннет Энг,
бывший руководитель проектной группы ATI Technologies
Некоторые считают, что библиотеки убивают производительность веба. Особо инициативные разработчики даже создали Движение без фреймворков.
«Мы не ненавидим фреймворки и не будем устраивать против них кампании. Но считаем, что люди неправильно используют фреймворки, потому что не имеют понятия о техническом долге и не знают адекватных решений на „ванильном языке“ и подходящих библиотеках».
Заявление с сайта движения
Новые языки программирования
В XXI веке появились C#, Go, Scala, Clojure, TypeScript, Elixir, Kotlin, Rust и экзотика вроде Linotte, Thue и LOLCODE. Такие старички, как C и C++, всё ещё в топе — а С так вообще №1 в рейтинге TIOBE. Зато Basic, Lisp и Ada уступают позиции Go, Rust, Ruby и другим новичкам.
Больше всего говорят о Rust — он, по мнению некоторых разработчиков, заменит С и С++. Новый язык сочетает в себе высокую производительность (за это хвалят C/C++) и безопасность (привет, Python). На Rust пишут блокчейны, серверы и игровые движки, а Dropbox, Amazon, Mozilla и Facebook* постоянно инвестируют в его развитие. Даже в ядро Linux теперь можно присылать Rust-коммиты — и это несмотря на отчаянное сопротивление Линуса Торвальдса.
С 2016 по 2020 год пользователи Stack Overflow неизменно называют Rust любимым языком. Похоже, у «швейцарского ножа в мире программирования» появился сильный конкурент.
Развивайте гибкость
Agile, Scrum, Kanban — это не языки программирования, но тоже наделали шуму в разработке.
Всё начиналось, как в кино про мафию. В 2001 году 17 глав семей представителей разных подходов к разработке собрались на горнолыжном курорте в штате Юта. Они называли себя Agile Alliance. Альянс принял манифест «гибкой разработки ПО» и провозгласил четыре ценности:
- Люди и взаимодействие важнее процессов и инструментов.
- Работающий продукт важнее исчерпывающей документации.
- Сотрудничество с заказчиком важнее, чем согласованный контракт.
- Быть готовым к переменам важнее, чем следовать первоначальному плану.
Agile — это не просто методика, а целая система ценностей. По ней продукт разрабатывают короткими циклами по 1–4 недели. Каждый цикл включает планирование, анализ требований, программирование, тестирование и разработку документации. Суть философии — готовность команды к любым изменениям, в том числе бюджетным, рыночным и в отношениях с партнёрами. У Agile есть несколько реализаций, самые популярные — Scrum и Kanban.
По Scrum разработка делится на короткие интервалы — спринты, а над проектом работает универсальная команда из программистов, дизайнеров и менеджеров.
Kanban придумали и впервые внедрили в Toyota в 1960-х — это самая древняя реализация Agile. Менеджеры разрабатывают годовой план и на его основе составляют планы на месяц и неделю. В отличие от Scrum, в Kanban над проектом работает несколько команд.
Сегодня Agile или его элементы используют почти в каждой IT-компании. Менеджеры ушли от жёсткого планирования пятилеток и Waterfall, корпоративная атмосфера стала более свободной и творческой. Теперь модно быть гибким, учитывать обратную связь от заказчиков и пользователей. Вообще, за последние 20 лет IT-сфера стала более либеральной. Тем не менее Agile — это не волшебная таблетка, которая повышает исполнительность и креативность команды. В него тоже нужно уметь.
Чем больше кода, тем меньше кода
Если сравнить язык программирования с инструментом — например, с отвёрткой, — то мы увидим, что за 60 лет мало что изменилось. Разработчики добавили насадок, прикрутили пинцет и паяльник, чтобы делать всё сразу, и поставили удобную, безопасную ручку, чтобы пользователь не проткнул ногу. Тем не менее это всё ещё старая-добрая отвёртка (хоть и с кучей функций), которую крутят руками.
Но большинству людей нужна не крутая отвёртка, а шуруповёрт: нажал на кнопку и закрутил саморез. Таким инструментом в XXI веке стал no-code — когда сайты или приложения создают из готовых графических блоков без кода. Получается быстро и недорого. Например, с помощью Glide можно за несколько минут (основатели утверждают, что даже за семь секунд) собрать MVP мобильного приложения из «Google Таблиц».
Первые «шуруповёрты» появились ещё в девяностые: Dreamweaver от Macromedia и редактор FrontPage в Microsoft Office. Однако настоящая no-code-революция началась в 2010-х. Как бы сказал Маркс, «когда созрел экономический базис». Профессиональная разработка стала сложной и дорогой, у малого бизнеса не всегда есть на неё деньги, а с no-code можно собрать сайт в десять раз дешевле и быстрее. Так и появились Bubble, Adalo, Directual и другие платформы.
И хотя технически сайты и приложения без кода уступают традиционным проектам, у них большое будущее. Поколение Roblox и Minecraft быстро освоится в no-code и скоро каждый станет немного айтишником.
IT-лихорадка и новые «старатели»
На протяжении многих лет ИТ оставались уделом хакеров, гиков, математиков и инженеров. Для «простого пацана» это было что-то недосягаемое, не слишком интересное и прибыльное. В новом веке всё изменилось: зарплаты выросли, а айтишные профессии превратились в самые сексуальные в мире.
Да и сама индустрия стала более демократичной. Несмотря на разные пороги входа, войти в IT теперь может и таксист, и бармен, и технарь, и гуманитарий, и мужчина, и женщина. Домохозяйки записываются на курсы по Big Data, а родители ведут детей в кружки программирования. Такая вот лихорадка XXI века.
Революция в самом разгаре, но у тебя ещё есть шанс влиться в движуху. Выбирай курс в Skillbox и осваивай сексуальную профессию уже сегодня.