Программируемая демократия
Почему во всем мире разработчики пишут на Java
Язык программирования Java существует уже два десятка лет и по-прежнему остается чуть ли не самым востребованным. Специалисты на Java получают самые высокие зарплаты среди разработчиков и в большом дефиците даже во время кризиса. Несмотря на то что в мире 9 млн программистов, знающих Java.
Компания SuperJob в мае опубликовала рейтинг зарплат ИТ-специалистов по итогам 2014 года. Оказалось, что самые высокооплачиваемые в нашей стране программисты — пишущие на Java. Ведущий разработчик на Java в среднем получает 155 тыс. руб. в месяц, обычный программист на Java — 125 тыс. руб., тогда как ведущий программист на РНР или 1С зарабатывает в среднем 130 тыс. руб. SuperJob зафиксировала и максимальное предложение на рынке труда за прошлый год — 220 тыс. руб. в месяц для ведущего разработчика на Java и 200 тыс. руб. для рядового программиста на этом языке. Спрос на инженеров, специализирующихся на Java, высок во всем мире. На момент подготовки статьи на HeadHunter было открыто 818 вакансий для специалистов по Java.
Дмитрий Калаев, директор акселерационных программ ФРИИ и совладелец компании Naumen, разрабатывающей ПО, объясняет: "Java давно является корпоративным стандартом для крупных компаний, поэтому многие корпоративные бизнес-приложения сделаны именно на этом языке. Молодые же компании (стартапы) не любят Java, считая, что на других языках разрабатывать быстрее, легче и нужна меньшая квалификация и инфраструктура. Соответственно, Java-разработчики в основном востребованы в крупных компаниях и в обслуживающих их интеграторах или в компаниях-разработчиках". Он подтверждает, что дефицит программистов стал уже привычным, это касается не только Java, но и других языков. "Конечно, кризисные явления несколько снизили оптимизм работодателей как по скорости набора разработчиков, так и по уровню предлагаемых им доходов,— говорит Калаев.— Но в любом случае компании не могут слишком весомо уронить предложение по оплате труда, так как у высококвалифицированных разработчиков всегда есть выбор поехать работать в Европу или США и получать доход на уровне этих стран".
Язык Java применяется для решения самых разных задач. "Сейчас основная ниша Java — корпоративные серверные системы. На Java разработано и внедрено огромное количество web-серверов, серверов приложений, порталов и систем, построенных на них. Легкость разработки позволяет концентрироваться на бизнес-задачах, пользуясь широким набором уже готовых инфраструктурных решений. Также Java широко используется в мобильных и десктопных приложениях",— говорит Сергей Клименков, тьютор кафедры ВТ Университета ИТМО.
Этот язык широко применяется в построении социальных сетей. Антон Федчин, руководитель проекта "Одноклассники", рассказывает, что в компании работает около 100 Java-инженеров. "Более 99% серверного кода в проекте написано именно на Java,— говорит он.— Эта платформа имеет ряд преимуществ перед другими. Главные — надежность, быстродействие, развитая экосистема, открытость программного кода и большое технологическое коммьюнити. Совокупность этих качеств и делает Java уникальной технологией".
Jelastic — облачная платформа, использующая контейнерную виртуализацию для решения задач разработчиков приложений на разных языках. "Java — кроссплатформенный язык программирования с мощным набором библиотек практически на все случаи жизни,— рассказывает Руслан Синицкий, CEO Jelastic.— Это платформа номер один для корпоративных проектов. В начале пути перед нами встал выбор, с какого языка начать разработку PaaS и DevOps-платформы. Первоочередными клиентами были хостинговые компании, поэтому инвесторы склоняли нас к PHP — практически вся хостинг-индустрия была ориентирована на PHP. Но после общения с потенциальными партнерами и сбора отзывов мы нашли причину небольшой популярности Java в хостинг-индустрии: сложность в обслуживании большого количества клиентов с Java-приложениями. Java — более продвинутый язык, значит, облачная хостинговая платформа должна тоже быть продвинутой; команда поддержки — уметь решать проблемы клиентов с Java-приложениями, что требует гораздо больше знаний по сравнению с PHP. На тот момент просто не было нормального решения для хостинга Java-приложений. Поэтому мы все-таки решили начать с Java, понимая, что, предоставив хорошее облачное решение для хостинга Java-приложений, мы в будущем проще сможем интегрировать другие языки программирования. Мы верим, что Jelastic внес свою лепту в выживание Java, когда был нездоровый ажиотаж вокруг того, что динозавр Java вымирает. Мы сделали фантастическую панель управления для разработчиков на Java и для системных администраторов, которые обслуживают кластеры с большим набором различных Java-приложений".
Сергей Клименков говорит, что сегодня спрос на Java-специалистов чрезвычайно высок. "Как показали опросы кафедры вычислительной техники Университета ИТМО, почти 90% студентов после окончания университета сталкиваются либо с разработкой проектов на Java, либо с взаимодействием с такими проектами,— рассказывает Клименков.— Все наши выпускники трудоустроены, уже за студентов второго-третьего курсов разворачивается настоящая борьба между компаниями, которые предлагают различные программы стажировок. Поэтому дефицит не просто есть, он велик. Особенно это заметно на рынках труда Санкт-Петербурга и Москвы".
Клименков объясняет это тем, что Java используют каждый день в прикладных и бизнес-системах: язык зарекомендовал себя как основа для высоконагруженных, надежных, масштабируемых и производительных решений для бизнеса с множеством разработанных прикладных программных интерфейсов, что позволяет разрабатывать такие решения быстро и эффективно.
Эксперты отмечают еще одно важное преимущество Java. Григорий Лабзовский, директор Центра разработки Oracle в Санкт-Петербурге, говорит, что появление этого языка произвело революцию, так как он был первым платформонезависимым. Это позволило избежать разработчикам прикладных программ платформенного "рабства" — жесткой привязки их приложений к конкретным операционным системам и вендорам. Во многом это определило путь развития всей ИТ-индустрии.
"Независимость от аппаратной платформы помогла сэкономить очень большое количество средств,— говорит Клименков.— Менялись поколения серверов, а приложения можно было запускать неизменными. Хотелось бы особо подчеркнуть, что идеи, заложенные в этот язык в начале 1990-х, и их реализация актуальны и сегодня. Кроме того, язык все эти 20 лет меняется, чтобы соответствовать потребностям сегодняшнего дня".
Политика открытости
В 2006 году Java стала открытым языком, тогда Sun Microsystems приняла решение раскрыть коды, чтобы противостоять проекту Harmony, поддерживаемому Intel и IBM. Конкурентным преимуществом этого продукта как раз была свободная лицензия. С тех пор Java развивается как открытый программный продукт, за счет совместных усилий сообщества разработчиков. Это один из факторов, сделавших его настолько популярным. Координируется сотрудничество членов сообщества разработчиков платформы через Java Community Process (JCP). Это процесс, описывающий, в каком направлении развивается язык. Основа JCP — это Java Specification Request (JSR), документы, в которых собраны предложения о добавлении в Java различных технологий и спецификаций. Руководит процессом, то есть выбирает, куда стоит направлять совместные усилия сообщества, группа экспертов — Executive Committee. Каждый год их выбирают путем голосования. Это абсолютно демократичная система, которая работает с единственной целью — развивать Java в направлении, наиболее точно отражающем потребности мирового сообщества разработчиков. Они же транслируют запросы частного бизнеса и государственных организаций, использующих Java. Есть несколько компаний, осознанно инвестирующих в развитие и деятельность коммьюнити. Заметный вклад вносит компания Oracle, к которой перешла эстафета по поддержке этой деятельности после приобретения Sun.
Российские инженеры и ученые увлеклись Java еще в 1996 году. Когда язык только набирал популярность, в Санкт-Петербургском государственном университете группа энтузиастов занялась его изучением. Компания Sun Microsystems тесно взаимодействовала с академическим сообществом нашей страны в том, что называется компиляторными теориями, в которых российские ученые были сильны. Чуть позже эти специалисты объединились в частную компанию, которая выполняла заказы по разработке клиентских библиотек и другие задачи. Однако Java была костью в горле для множества конкурентов, которым приходилось делать лицензионные отчисления за использование языка и его производных: тогда он еще не был открытым. В 2004 году российскую компанию, основанную учеными, внезапно купил другой ИТ-гигант, Intel. На сделку пошли его основатели. Это стало шоком для Sun, и буквально в течение нескольких недель компания открыла собственный центр разработки Java в Петербурге, собрав специалистов, пожелавших остаться с прежней командой и проектами — таких оказалось немало.
Инвестиции в развитие
Григорий Лабзовский говорит, что переход под бренд Oracle оказался языку на пользу: каждые два года появляются новые релизы — Java 7 в 2012 году и Java 8 год назад. На 2016-й запланирован выход девятой версии. Точный объем инвестиций Oracle в это направление не раскрывается. По данным экспертов, счет идет на десятки миллионов долларов в год. Центр разработки в России — самый крупный по Java за пределами США. Треть инженеров, разрабатывающих новую версию Java 8, были из РФ.
Мария Орловская, региональный директор Oracle в России, объясняет, что компания инвестирует в развитие Java исходя из стратегических целей, не рассчитывая на прямой возврат финансовых вложений. Развитие сообщества разработчиков способствует тому, что в России и в мире будет достаточно специалистов, способных поддерживать продукты Oracle, многие из которых написаны как раз на Java. Подобным образом действуют и другие участники JCP — SAP, Software AG, Goldman Sachs, MicroDoc и т. д. Объем инвестиций в развитие Java тоже влияет на число голосов, которые получает компания: чем больше разработчиков, участвующих в JCP, работает на нее, тем больше шансов продвинуть нужные JSR и направить развитие Java туда, куда нужно компании. То есть коммьюнити разработчиков Java — это модель демократии, управляемой капиталом. На протяжении 20 лет такая схема развития продукта показала состоятельность.