Содержание статьи
Мы бы не доверили какому-нибудь одному нашему автору подводить итоги года в номинации «программирование», хоть он дерись. А вот целой организованной группе авторов, да еще и вместе со сторонними экспертами из разных компаний — почему бы и нет? Как говорил Мао Цзэдун: пусть расцветают сто цветов, пусть соперничают сто школ.
Крис Касперски, Самый известный русский хакер, человек-дизассемблер, автор множества книг и статей. Старый автор нашего журнала
Александр Салиев, старший разработчик UNIX-группы в «Лаборатории Касперского» (писал в ][ еще до трудоустройства в ЛК, между прочим!). Творческий путь водил от ITSP inhouse разработки до мобильного геймдева, но всегда это было связано с UNIX-системами
Андриан Бушин, директор по развитию бизнеса ActiveCloud by Softline
Надежда Чередниченко, руководитель отдела маркетинга департамента разработки информационных систем компании Softline
Виталий Филиппов, ведущий разработчик, группа компаний CUSTIS
Роман Корешков, руководитель проектов, группа компаний CUSTIS
Василий Гай, доцент кафедры «Вычислительные системы и технологии» НГТУ им. Р. Е. Алексеева, постоянный автор ][
Юрий Язев, game developer, постоянный автор ][
Самое заметное достижение в мире кодинга
Василий Гай: опережая график, американцы создали язык Quipper для программирования квантовых компьютеров. Язык написан на Haskell. Появление высокоуровневого языка для квантовых компьютеров позволит быстрее и проще реализовывать новые алгоритмы.
Виталий Филиппов: в данной категории выпуск Steam под Linux, который состоялся 14 февраля, и планы по выпуску SteamOS, анонсированной 23 сентября, вполне можно рассматривать как событие года. Ведь речь идет о магазине Linux-игр от серьезного производителя и ОС для игровых консолей от него же — причем, судя по обещаниям, достаточно открытой и уважающей приватность. А вопросы приватности и интернет-слежки я бы назвал самой острой темой 2013 года.
Событие вполне серьезное еще и потому, что для рядового пользователя игры — это то, чего в Linux действительно не хватало, а после появления Steam и SteamOS их разработка упростилась и число игр, написанных под Linux, растет (равно как и качество свободных видеодрайверов, тоже всегда бывших притчей во языцех). Конечно, процент Linux-продаж игр в Steam до сих пор держится на уровне 1–2%, однако это соответствует общему уровню популярности на пользовательских компьютерах, и есть надежда, что этот показатель будет увеличиваться.
Роман Корешков: значимым событием в веб-программировании стало то, что Microsoft все-таки решилась поддержать 3D в браузерах, наконец-то включив стандарт WebGL в вышедший осенью Internet Explorer 11. Это дает зеленый свет новому направлению — 3D веб-страниц — и способствует дальнейшему угасанию Flash. Неплохой и уже впечатляющий пример — www.acko.net.
Xakep #305. Многошаговые SQL-инъекции
Юрий Язев: для меня одним из самых значительных событий 2013 года стала отдача в Open Source движка Torque 2D компанией-разработчиком GarageGames. Torque 3D опубликовали еще в конце 2012-го. Теперь инди-разработчики могут создавать крутые игры не только для PC, но и для Mac и iOS. Вдобавок в самом начале ноября вышла ранняя версия T2D для Android’а. Теперь T2D охватывает все значимые платформы, под которые имеет смысл создавать игры. Кроме того, в середине месяца сообществом был выпущен T3D 3.5, куда добавлены новые эффекты затенения, подкорректировано функционирование шлема виртуальной реальности, исправлена куча багов. Основной упор сделан именно на исправление багов, поэтому было решено оставить нумерацию на уровне третьей версии.
Заслуживающее упоминания событие из инди-игростроя, произошедшее также под конец года, — это новая инди-игра на T3D Airship Dragon.
Надежда Чередниченко: Visual Studio Online, на наш взгляд, возможно, первая удачная реализация online IDE. Это не просто «текстовый редактор в браузере», это целый набор инструментов для совместной работы, в который помимо IDE входят решения для тестирования и мониторинга приложений, а также для управления проектами в команде.
Крис Касперски: ряд крупных компаний открыли исходные тексты: Apple, Facebook. Даже Amazon открыл сорцы киндла. Тренд явно имеет место быть.
Александр Салиев: простым пользователям это не особо заметно, но GCC стал неплохо (хоть и неидеально) поддерживать стандарт C++11. А главное, народ начал писать, используя этот стандарт. Это достаточно важно, так как C++ изначально плохо годился для быстрого и удобного прототипирования. Стандартизация STL, как последнее заметное изменение, случилась лет десять назад, с тех пор прогресс был скорее эволюционным. Новый же стандарт ознаменован немалым количеством именно революционных нововведений в этой области.
В мире мобильного кодинга
Юрий Язев: в 2013-м были выпущены новые версии таких продуктов для мобильных game-девелоперов, как Marmalade SDK, Corona SDK.
Вместе с выпуском шестой версии Marmalade SDK разработчики подготовили игровой движок на основе SDK — Marmalade Quick, в качестве скриптового языка использующий Lua. Затем, был выпущен Marmalade Juice, позволяющий упростить конвертацию игр и приложений с Objectve-C в формат, пригодный для SDK, то есть на C++. И последнее — для поддержки современных веб технологий (главным образом HTML5, CSS3, JavaScript) был разработан Marmalade Web. При этом под конец года разработчики SDK умудрились создать седьмую версию основного пакета.
От известной нам конторы The Game Creators была выпущена классная среда для разработки приложений и игр под мобильные платформы — App Game Kit. На мой взгляд, широкому распространению этой тулзы мешает необходимость установки на девайс специальной виртуальной машины для запуска игр и приложений, но думаю, через некоторое время разработчики оснастят свое детище экспортерами подобно Unity. И тогда разработанные игры будут выполняться в нативном виде.
Василий Гай: выпуск Google обновления ОС Android до версии 4.4. Ключевым моментом этого обновления можно считать переход с виртуальной машины Dalvik на Android Runtime (ART). После перехода на ART каждое приложение будет оптимизироваться под конкретное устройство. В результате будет достигнута большая скорость работы приложений и, конечно же, экономия батарейки.
Если считать машину мобильным устройством (гаджетом), то самым забавным достижением в мире мобильного кодинга является возможность обновления прошивки электромобилей Tesla «по воздуху». В этом событии важна сама принципиальная возможность изменения характеристик автомобиля без обращения в сервис.
Надежда Чередниченко: iOS 7 — самое громкое и обсуждаемое событие в области мобильных разработок. Apple всегда вызывает массу дискуссий, но это первая iOS, выпущенная без Джобса. Следствия два: во-первых, «плоский» дизайн окончательно превратился в мейнстрим. Информативность стала важнее вычурности, контент — важнее интерфейса.
Вторым следствием стал новый вызов для самой модели распространения платных приложений в iOS. Пользователи ожидают от разработчиков оперативного выхода апдейтов с поддержкой нового дизайна. Однако такой редизайн — это не просто апдейт, во многих случаях требуется полностью изменить логику интерфейса, а также задействовать новые возможности (фоновые обновления, например). И тут возникает проблема с тем, что App Store (как и любой аналогичный «стор») не предусматривает механизм промежуточного лицензирования. То есть разработчик обязан либо бесплатно раздать полностью обновленное приложение всем существующим пользователям, либо выпустить отдельное приложение для iOS 7 (что чревато негативным отзывами).
Александр Салиев: я горячо люблю Qt, поэтому для меня важным событием стал выход пятой версии. На мой взгляд, это лучший фреймворк общего назначения из тех, с которыми мне приходилось сталкиваться. Он покрывает основные десктопные платформы в лице Linux, OS X и Windows, а также кучу мобильных платформ (Maemo, Meego, Jolla Sailfish), а с пятой версии появилась нормальная (пусть и не полноценная) поддержка Android.
Демо тулкита Qt5
В мире облачных вычислений
Василий Гай: 5 ноября NVIDIA предоставила в доступ через Amazon Web Services технологию NVIDIA GRID для приложений, требовательных к графике: играм, проектам визуализации и так далее.
Юрий Язев: в облачном геймдеве тоже были свои события: выпущена вторая версия движка для MMO-игр — HeroEngine 2, среда разработки в облаке HeroCloud, предлагаемая за приемлемую стоимость. Вообще, облачный геймдев — прекрасная идея, и за ней будущее, разработчики могут одновременно и непосредственно работать над одной игрой из разных точек земного шара. В отличие от обычных кодерских тулз в облаке, HeroCloud представляет полный набор инструментов для игродела. Кроме интегрированного редактора кода для внутреннего скриптового языка — HeroScript, здесь имеются конструктор мира (World Builder), включающий редакторы окружения и ландшафтов, редакторы GUI и персонажей, редакторы звуков и анимаций — короче, в HeroCloud имеется весь список редакторов, входящих в состав современных игровых движков, только все это в облаке! Но самое главное, что есть в HeroCloud и без чего не может обойтись ни одна MMO игра, — это встроенная БД, которая обеспечивает хранение данных о всей игровой вселенной. При этом используемая в HeroEngine БД Oracle на сегодня безусловный лидер и стоит умопомрачительных денег, но разработчику, который приобрел HeroCloud за 99 долларов в год, не надо об этом беспокоиться. Плюс к этому все операции по настройке железа и системы твоей игры ложатся на компанию Idea Fabrik — нынешнего владельца движка.
Андриан Бушин: для B2B-рынка одним из значимых событий в части облачных вычислений стал запуск новой версии виртуализации Hyper-V и комплексной платформы Cloud OS от Microsoft. Эта новая версия и платформа стали серьезными конкурентами для лидера виртуализации VMware и других участников рынка. Думаю, это приведет к серьезным изменениям на рынке: доля нового решения вырастет уже в следующем году.
Для B2С-рынка ключевую роль в сегменте облачных сервисов сыграл в 2013 году запуск компанией «Яндекс» первого в российской публичной почте решения шифрования как исходящей, так и входящей почты. Решение могут использовать как частные лица, так и корпоративные клиенты. Это стало весьма актуальным и важным для многих пользователей — с учетом той ситуации, которая возникла после опубликованных разоблачений Сноудена.
Александр Салиев: запомнилось, что в Стэнфорде считали зрительный тракт головного мозга в облаке из 1000 16-процессорных узлов, что позволило смоделировать около миллиарда нейронных связей. Это уже что-то посерьезнее, чем облачный подбор MD5 и взлом WPA2.
Также примечательно, что Facebook предпочли опубликовать код своей облачной платформы хранения мультимедиа под GPL, во избежание судебных претензий. Этот прецедент значит, что облака перешли из разряда непонятных концептов, не представляющих практического интереса, в разряд общеприменимых софтверно-аппаратных платформ, на которые распространяются штатные правила и юрисдикция, а значит, они становятся ближе к простым людям.
В мире веб-программирования
Надежда Чередниченко: Google dart. Dart — язык программирования, созданный Google. Dart позиционируется в качестве замены/альтернативы JavaScript, страдающего от «фундаментальных» изъянов, которые невозможно исправить путем эволюционного развития. 15 ноября 2013 года Google выпустила первую стабильную версию своего языка программирования — Dart SDK 1.0. Если у них все получится, то скоро разрабатывать клиент-сторону будет намного удобнее (Василий Гай, независимо от Надежды, ответил на этот вопрос совершенно аналогично. — Прим. ред.).
Александр Салиев: не совсем про программирование, но аффилированная тема. В MoFo наконец приняли волевое решение и сделали для Firefox систему расширяемых бэкендов, обрабатывающих audio/video в HTML5. Таким образом, проблемы проприетарности кодеков перестают быть проблемами производителя браузера и становятся проблемами системного администрирования на месте конечного пользователя. Во-первых, это идеологически правильно, а во-вторых (надеюсь), подстегнет переход мультимедиапорталов на HTML5 и смерть богомерзких flash’ей и silverlight’ов.
В мире спортивного программирования
Василий Гай: значимых событий в мире спортивного программирования несколько: победа в международной студенческой олимпиаде по программированию команды СПбНИУ ИТМО и победа в Cyber Challenge по региону EMEA нашего соотечественника Влада Роскова.
Александр Салиев: обозначенную тему я широко не отслеживаю, но с удовольствием читаю отчеты по ICFPC от команды unmatched, которые пишет Дима «Adept» Астапов, и как-то подсознательно за них болею. В этом году тоже было интересно, хоть и не такая адская феерия, как в 2006-м (отчет того года настоятельно рекомендую к прочтению).
Интернет-ресурс года
Василий Гай: интернет-ресурс года? Конечно же, stackoverflow.com. Место, где на каждый вопрос по кодингу найдется ответ, ну… или вопрос. Этот сайт занимает 60-е место (на декабрь 2013 года) по посещаемости (данные компании Alexia Internet). Это один из первых сайтов, посвященных кодингу, в данном рейтинге.
Что обеспечивает развитие техники, технологий, появление новых гаджетов и устройств? Думаю, что без науки, научных исследований это обойтись никак не может. Поэтому интернет-ресурсом года я считаю сайт elementy.ru. Сайт, который создан для популяризации большой науки.
Александр Салиев: боюсь, буду неоригинален — это GitHub. В этом году работал с четырьмя не связанными между собой командами, и со всеми мы взаимодействовали через GitHub. Приятно, что сам веб-портал тоже идет в ногу со временем, порадовала реализация простенького редактора кода, позволяющего быстро что-то поправить из любого места при критической необходимости.
Событие года в низкоуровневом кодинге
Крис Касперски: новый вид атаки на семерку с элегантным и стабильным (!) обходом DEP, ASLR и других страшных слов. Это самая массовая атака, затрагивающая практически всех и работающая на семерке (большинство PDF-сплоитов сейчас живут только под хрюшей). В общем, знаменательное событие.
Суть в том, что в библиотеке GTI+ обнаружили дыру в TIFF’е (CVE–2013–3906) и, следовательно, под замес попали все приложения, которые могут отображать TIFF. Сейчас вообще очень популярны атаки на ворд — отчасти потому, что ворд сам популярен, а последние версии с риббоном и прочими наворотами вызывают резкую критику юзеров, и многие пользователи не спешат его обновлять. В связи с этим можно прогнозировать, что данный вид атаки еще долго будет актуальным. Детекция на вирус-тотале на данный момент (декабрь 2013-го) неудовлетворительная.
Александр Салиев: может быть, это и не про кодинг непосредственно, но достаточно интересная ситуация сложилась на рынке игровых консолей. Фактически AMD подмяла под себя весь мейнстрим в лице Xbox One и PS4, причем не только по части CPU, но и GPU. Обозначенные консоли же, по сути, превратились в специализированные, но общетиповые x86-платформы, первая даже со штатной возможностью запуска Windows 8 под гипервизором. Следующий шаг — выход API Mantle от AMD, упрощающий процесс портирования игр на ПК (уже используется в Battlefield 4). Хочется верить, что это похоронит перекос топ-геймдева в сторону консолей и в ущерб PC. Опять же низкий порог портирования даст больше шансов на взлет линуксячьей Steam Box и геймдева под типовые линуксы как следствие.
Презентация по API AMD Mantle
Василий Гай: событие года в низкоуровневом программировании — успех на Kickstarter операционной системы KolibriOS, удалось собрать пять тысяч фунтов. ОС создана разработчиками, живущими на территории СНГ, ядро и большинство программ написаны на ассемблере FASM (проект операционной системы был запущен в августе 2003 года). Выход KolibriOS на Kickstarter был обусловлен тем, что проект не получил поддержку на Google Summer of Code 2013, хотя и заинтересовал Google. Полученные деньги планируется потратить на развитие проекта.
Презентация KolibriOS на Kickstarter