21 горячая тенденция в программировании и 21 остающаяся

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

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

Далее следует список того, что популярно, а что нет среди современных программистов. Не все согласятся с тем, что входит в список A, что в списке D, а что не учитывается. Вот что делает программирование бесконечно увлекательной профессией: быстрые изменения, страстные дискуссии, внезапные возвращения.

Горячо: препроцессоры

Не: полные языковые стеки

Не так давно людям, создавшим новый язык программирования, приходилось создавать все, что превращало код в биты, подаваемые на кремний. Затем кто-то решил, что они могут использовать предыдущую работу. Теперь люди с умной идеей просто пишут препроцессор, который переводит новый код во что-то старое с богатым набором библиотек и API.

Языки сценариев, такие как Python или JavaScript, раньше были ограничены небольшими проектами, но теперь они являются основой для серьезной работы. А те, кому не нравился JavaScript, создали CoffeeScript, препроцессор, который снова позволяет им писать код без обременительной пунктуации. Существуют десятки вариантов предварительного нарезания и прогнозирования синтаксиса разными способами.

Люди, любившие динамическую типизацию, создали Groovy, более простую версию Java без излишне настойчивых знаков препинания. Кажется, существуют десятки языков - Groovy, Scala, Clojure, Kotlin и т. Д. - которые работают на JVM, но есть только одна JVM. Вы также можете запускать много языков на виртуальной машине .Net. Зачем изобретать велосипед?

Горячий: бессерверный

Не: Докер

Это не совсем так. Контейнеры Docker повсюду. Серверы постоянно раскручиваются и закрывают контейнеры. Тем не менее, Docker контейнеры тааак гораздо больше , чем они должны быть.

Если подумать, вы можете написать всего несколько десятков строк реального кода принятия решений для той микрослужбы, которую вы развертываете, но вам нужно будет добавить миллионы строк конфигурации, чтобы запустить Node.js и все остальное. правильно с Docker. Да, это все шаблонно, но не в этом суть.

Новые бессерверные архитектуры позволяют нам развернуть лишь те немногие операторы if-then-else, которые принимают реальные решения. Все остальное остается на усмотрение людей, которые арендуют нам бессерверную платформу.

Да, через несколько лет мы будем жаловаться на блокировку и отсутствие настроек, но на данный момент бессерверные варианты кажутся приятным облегчением от всех DevOps и настроек.

Популярно: фреймворки JavaScript MV *

Не: файлы JavaScript

Давным-давно все научились писать JavaScript, чтобы отображать всплывающее окно с предупреждением или проверять, содержит ли адрес электронной почты в форме знак @. Теперь приложения HTML AJAX настолько сложны, что мало кто начинает с нуля. Проще принять сложную структуру и написать небольшой код для реализации вашей бизнес-логики.

Сейчас существуют десятки фреймворков, таких как Kendo, Sencha, jQuery Mobile, AngularJS, Ember, Backbone, Meteor JS и многие другие, готовых обрабатывать события и контент для ваших веб-приложений и страниц.

Это просто веб-приложения. Есть также ряд предложений, предлагающих кроссплатформенную разработку для мира смартфонов / планшетов. Такие технологии, как NativeScript, PhoneGap, Apache Cordova и React Native, - это лишь некоторые из вариантов создания приложений на основе технологии HTML5.

Популярно: CSS-фреймворки

Не: общий CSS

Когда-то давным-давно добавление немного пафоса на веб-страницу означало открытие файла CSS и включение новой команды, например font-style:italic. Затем вы сохранили файл и отправились на обед после тяжелой утренней работы. Теперь веб-страницы настолько сложны, что невозможно заполнить файл такими простыми командами. Одно изменение цвета - и все выходит из строя. Это как то, что говорят о заговорах и экологии: все взаимосвязано.

Именно здесь CSS-фреймворки, такие как SASS и его собратья, такие как Compass, нашли прочную основу. Они поощряют грамотное и стабильное кодирование, предлагая программные конструкции, такие как реальные переменные, блоки вложенности и смешивания. Может показаться, что на уровне программирования не так много новшеств, но для уровня дизайна это большой шаг вперед.

Популярно: SVG на холсте

Не: вспышка

Flash годами сводил людей с ума, но художникам всегда нравились результаты. Рендеринг со сглаживанием выглядит великолепно, и многие талантливые художники создали глубокий стек кода Flash, чтобы предложить сложные переходы и анимацию. Казуальные игры продолжают оставаться очень популярными. Так что Flash цепляется за жизнь в сети.

Теперь, когда уровень JavaScript может делать то же самое, производители браузеров и разработчики приветствуют конец Flash. Они видят лучшую интеграцию со слоем DOM благодаря новым форматам, таким как SVG (масштабируемая векторная графика). SVG и HTML составляют одну большую кучу тегов, которые зачастую проще использовать веб-разработчикам. Кроме того, существуют большие API-интерфейсы, которые предлагают подробное рисование на объекте Canvas, часто с помощью видеокарт. Сложите их вместе, и у вас останется несколько причин, чтобы больше использовать Flash.

Популярно: почти большие данные (анализ без Hadoop)

Не: большие данные (с Hadoop)

Всем нравится чувствовать себя большим человеком в кампусе, а если нет, они ищут кампус подходящего размера, где они могут выделиться. Неудивительно, что, когда слова «большие данные» начали распространяться по руководству, костюмы начали запрашивать самые большие и мощные системы больших данных, как если бы они покупали яхту или небоскреб.

Самое смешное, что многие проблемы недостаточно велики, чтобы использовать самые причудливые решения для работы с большими данными. Конечно, такие компании, как Google или Yahoo, отслеживают все наши просмотры веб-страниц; у них есть файлы данных, измеряемые в петабайтах или йоттабайтах. Но у большинства компаний есть наборы данных, которые легко помещаются в оперативную память обычного ПК. Я пишу это на ПК с 16 ГБ ОЗУ - этого достаточно для миллиарда событий с несколькими байтами. В большинстве алгоритмов данные не нужно считывать в память, потому что их потоковая передача с SSD - это нормально.

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

Горячий: Искра

Не: Hadoop

Дело не в том, что Hadoop остывает. Скорее, Apache Spark раскален, из-за чего модель Hadoop выглядит немного устаревшей. Spark заимствует некоторые из лучших идей подхода Hadoop к извлечению смысла из больших объемов данных и обновляет их, внося несколько серьезных улучшений, благодаря которым код выполняется намного, намного быстрее. Самым большим может быть способ, которым Spark хранит данные в быстрой памяти, вместо того, чтобы требовать, чтобы все было записано и прочитано из распределенной файловой системы.

Конечно, многие люди объединяют их, используя скорость обработки Spark для данных, хранящихся в распределенной файловой системе Hadoop. Hadoop и Spark чаще являются партнерами, чем конкурентами.

Hot: конфигурация базы данных

Не: программирование программного обеспечения

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

И сегодня мы все еще создаем базы данных, но то, что мы называем «базой данных», теперь во много раз сложнее и мощнее. Стандартные базы данных будут синхронизироваться между континентами, предлагая гибкий компромисс между согласованностью и скоростью. Некоторые облачные сервисы, такие как Firebase, будут полностью передавать новые данные в веб-приложения, работающие на мобильных клиентах.

Большая часть бессерверной революции основана на осознании того, что многие облачные хранилища данных теперь настолько мощны, что нам нужно всего лишь написать несколько предложений if-then-else, чтобы создать довольно крутое веб-приложение.

Популярно: игровые фреймворки

Не: разработка собственных игр

Когда-то разработка игр заключалась в найме множества разработчиков, которые писали все на C с нуля. Конечно, это стоило миллиард долларов, но выглядело он великолепно и бежал как ветер. Теперь никто не может позволить себе роскошь собственного кода. Многие разработчики игр оставили свою гордость несколько лет назад и используют такие библиотеки, как Unity, Corona или LibGDX, для создания своих систем. Они пишут не столько код C, сколько инструкции для библиотек.

Разве это позор, что наши игры не создаются вручную с гордостью, а уничтожаются с использованием того же движка? Нет. Большинство разработчиков вздохнули с облегчением. Поскольку им не нужно заниматься деталями, они могут сосредоточиться на игровом процессе, сюжетной арке, персонажах и арте. 

Популярно: генераторы статических сайтов

Не: одностраничные веб-приложения

Помните, когда URL-адреса указывали на веб-страницы, заполненные статическим текстом и изображениями? Затем появились динамические одностраничные веб-приложения, которые заменили их все одним умным веб-приложением, которое извлекало нужные данные. Угадай, что? Маятник раскачивается, и все дети строят статические генераторы сайтов. Их десятки. Это как гибрид. Вы помещаете все данные в одну кучу, а затем пишете код, который вставляет данные в некоторые шаблоны, так что для каждого статического URL-адреса существует один HTML-файл, который поступает из каждой строки в таблице данных.

Дети думают, что эти статические сайты сверхбыстрые, и это так. Только не говорите им, что старые динамические системы, такие как WordPress и Drupal, работали примерно так же, сохраняя кеши, которые в значительной степени были заполнены статическими страницами, созданными с последними данными.

Горячо: GraphQL

Не: ОТДЫХ

Это не значит, что REST мертв. Просто мы хотим сделать больше с API, и GraphQL - способ сделать это. GraphQL возвращает данные в JSON, как и REST. GraphQL начинается с HTTP POST, как и многие вызовы REST. Просто синтаксис GraphQL позволяет задавать очень сложные запросы всего несколькими нажатиями клавиш. Это упрощает программистам возможность запрашивать именно то, что они хотят, и сокращает объем работы на стороне сервера, которая должна выполняться, когда кому-то нужен немного другой API.

Популярно: облачные IDE

Не: локальные IDE

Давным-давно люди использовали компилятор командной строки. Затем кто-то объединил это с редактором и другими инструментами для создания IDE. Теперь пришло время затмить IDE (ха) инструментами на основе браузера, которые позволяют редактировать код, даже код рабочей системы. Если вам не нравится, как работает WordPress, он поставляется со встроенным редактором, который позволяет вам сразу же менять код. Microsoft Azure позволяет писать связующий код JavaScript прямо на своем портале. Эти системы не предлагают лучших сред отладки, и есть что-то опасное в редактировании производственного кода, но у этой идеи есть основания.

Вы можете начать с AWS Cloud9, Codenvy и Mozilla WebIDE, но продолжайте изучать. Веб-инструменты становятся все более мощными. Например, можно создать целый проект анализа больших данных на веб-сайте Microsoft Azure. А если вы начинаете изучать бессерверные варианты, вы быстро поймете, что можете написать весь свой код в элементе формы на веб-странице. Тот, который не намного больше формы, которую вы используете для обновления своих друзей на Facebook.

Горячий: GPU

Не: ЦП

Когда программное обеспечение было простым, а инструкции были выстроены в красивую линию, ЦП был королем компьютера, потому что он делал всю тяжелую работу. Теперь, когда видеоигры наполнены обширными графическими подпрограммами, которые могут работать параллельно, видеокарта запускает шоу. Легко потратить 500, 600 долларов или больше на модную видеокарту, а некоторые серьезные геймеры используют более одной. Это более чем вдвое дороже многих обычных настольных компьютеров.

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

Горячо: GitHub

Не: резюме

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

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