14 трендовых тем в программировании и 14 уходящих в прошлое

29 мая 2014, 12:05

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

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

Тренды и не очень

Модно: препроцессоры | Вчерашний день: полный стек на одном языке

Еще совсем недавно считалось, что разработка нового языка программирования означает реализацию всех деталей, необходимых для превращения исходного кода в биты информации, растворяющиеся в кремниевой микросхеме. Потом кто-то догадался, как комбинировать новые разработки с уже имеющимися. Сейчас все делается рациональнее: достаточно написать препроцессор, «переводящий» код на какой-то старый язык, обладающий богатым набором библиотек и API.  

Ребята, которым нравилась динамическая типизация, создали Groovy – упрощенную версию Java, не обремененную излишне строгой пунктуацией. Те, кто хотел поправить JavaScript, написали CoffeeScript – еще один язык-препроцессор, позволяющий писать код без обременительной пунктуации. На JVM (виртуальной машине Java) работают уже десятки языков вроде Clojure и Scala, но JVM служит для них общим знаменателем. Действительно, зачем изобретать колесо? 

Модно: фреймворки JavaScript вида MV* | Вчерашний день: файлы JavaScript

Давным-давно все учились писать на JavaScript, чтобы вывести окно с предупреждением либо чтобы убедиться, что во введенном адресе электронной почты действительно присутствует символ @. В настоящее время HTML-приложения с применением AJAX настолько развились, что практически никто уже не пишет такой код с нуля. Проще задействовать многофункциональный фреймворк, а затем написать немного склеивающего кода для реализации бизнес-логики. В настоящее время существуют десятки таких фреймворков, вот некоторые из них: Kendo, Sencha, jQuery Mobile, AngularJS, Ember, Backbone, Meteor JS. Все они отлично обрабатывают события и контент для ваших веб-приложений и сайтов. 

Модно: CSS-фреймворки | Вчерашний день: Традиционные каскадные таблицы стилей

Раньше, если требовалось приукрасить веб-страницу, нужно было открыть CSS-файл и добавить в него новую команду, например, font-style:italic. Но современные веб-страницы стали такими затейливыми, что уже практически невозможно обойтись столь простыми командами. Малейшая коррекция цвета – и код отбивается от рук.

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

Модно: SVG + JavaScript на холсте | Вчерашний день: Flash

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

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

Модно: Почти большие данные (анализ без Hadoop) | Вчерашний день: Большие данные (Hadoop)

Многие проблемы не столь масштабны, чтобы применять для работы над ними причудливые решения из области больших данных. Действительно, крупные компании, например, Google и Yahoo, отслеживают весь браузерный трафик, объемы обрабатываемых ими данных измеряются в йоттабайтах. Но большинство компаний обходятся такими объемами данных, которые умещаются в оперативной памяти обычного ПК. 16 ГБ RAM достаточно для обработки миллиардов событий всего в нескольких байтах. Большинство алгоритмов не требуют считывания данных в память, поскольку потоковая подача информации с твердотельного диска идет как по маслу.

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

Модно: Игровые фреймворки | Вчерашний день: нативная разработка игр

В свое время вся игровая индустрия работала по принципу: нанимаем кучу разработчиков, которые пишут на C весь код с нуля. Да, игра будет стоить миллионы, но зато выйдет шикарной. В настоящее время написание заказного кода для игр уже стало непозволительной роскошью. Большинство разработчиков игр за последние годы стали скромнее и научились программировать при помощи библиотек, например, Unity, Corona или LibGDX. Теперь на C приходится писать разве что инструкции для работы с библиотеками.

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

Модно: Одностраничные веб-приложения | Вчерашний день: сайты

Помните времена, когда все URL указывали на веб-страницы, заполненные статическим текстом и картинками? Как же просто и скучно выложить в Сеть информацию, распределить ее по отдельным страницам и назвать все это – «сайт»!

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

Модно: Мобильные веб-приложения | Вчерашний день: Нативные мобильные приложения

Допустим, у вас есть отличная идея, связанная с мобильным контентом. Можно взяться за работу и написать отдельные версии программы для iOS, Android, Windows Phone и пр. Для каждого из таких проектов требуется отдельная команда, владеющая нужным языком программирования. Затем программа попадет на рынок приложений той или иной платформы, где у вас состригут некоторую долю прибыли, прежде чем программа окажется на пользовательских устройствах.

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

Модно: Android | Вчерашний день: iOS

iPhone и iPad пользуются устойчивой популярностью у определенного класса пользователей, которым нравятся шикарные и изысканные интерфейсы этих устройств. Однако голые цифры продаж все явственнее свидетельствуют в пользу Android. Возможно, причина этого тривиальна: цена. Устройства iOS, мягко говоря, не дешевы, а в мире Android царит активная конкуренция. Благодаря этому некоторые планшеты с Android стоят впятеро дешевле iPad. Соблазн сэкономить всегда велик.

Еще один важный фактор – эффект свободного ПО. На рынке могут конкурировать все желающие, так и происходит. Есть большие планшеты с Android, есть и маленькие. Есть фотоаппараты и даже холодильники с Android. Google занимается инновациями всласть. Если у них появляется идея – они ее воплощают.

Модно: GPU | Вчерашний день: CPU

Когда программы были простыми, а инструкции выстраивались, в основном, линейно, все компьютеры работали с CPU, передавая такому процессору все сложные вычисления. Современные игры содержат массу сложных графических процедур, которые могут выполняться параллельно, и видеокарта порой со всем этим не справляется. Сегодня можно потратить на видеокарту и $500-600, а для некоторых крутых игр требуется даже не одна видеокарта. За такую цену вполне можно приобрести два не слишком мощных ПК. 

Уже не только геймеры хвастаются своими GPU-картами. Ученые-информатики в настоящее время преобразуют многие параллельные приложения таким образом, что на GPU они работают в сотни раз быстрее. 

Модно: GitHub | Вчерашний день: резюме

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

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

Модно: аренда | Вчерашний день: покупка

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

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

Модно: веб-интерфейсы | Вчерашний день: IDE

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

Если вы не знаете, как работает сервис WordPress, расскажем: на сайте используется встроенный редактор, позволяющий вам изменять код здесь и сейчас. Microsoft Azure позволяет писать склеивающий код JavaScript прямо на портале. Эти системы не могут похвастаться превосходными отладочными системами, да и редактирование боевого кода – стремная идея, но тенденция определенно является перспективной.

Модно: Node.js | Вчерашний день: JavaEE, Ruby on Rails, PHP

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

Но вот появился Node.js со своей моделью программирования на основе обратных вызовов. Оказалось, что на этом «игрушечном языке» код работает быстрее, чем кто-либо мог вообразить. Вдруг стало очевидно, какие издержки связаны с созданием новых потоков, и Node.js стал широко известен. Если программисты начинают отлынивать от работы, с Node.js также возникают проблемы, но дополнительные требования к ответственности – только к лучшему. Когда очевидны ограничения, связанные с ресурсами, программисты обычно пишут более быстрый код.  

Кроме того, в мире Node.js удалось добиться гармонии между браузером и сервером. Один и тот же код работает и там, и там, разработчикам проще переключаться между фичами и дублировать функционал.

Источник: infoworld.com

подписка на главные новости 
недели != спам
# ит-новости
# анонсы событий
# вакансии
Обсуждение