Мир ИТ становится все разнообразнее и привлекательнее. Каждый день на рынок ПО выходят все новые и новые решения. Бесспорные лидеры мира ИТ вроде IBM, Nokia, Intel, Samsung и другие монстры индустрии всегда стремятся оставаться на самой верхушке, это обходится им не дешево, но что поделать. Сегодня разговор пойдет про компанию Nokia - ее новейших сервисах и технологиях, предлагаемых разработчикам и конечным пользователям. Как всем известно, Nokia - это финская компания, однако работают в ней и наши российские специалисты. Интервью дает Александр Труфанов, старший технический консультант (Senior Technical Consultant) Forum Nokia в регионе EMEA.
Здравствуйте, Александр. Скажите, тяжело ли было устроиться в корпорацию такого масштаба? Каково работать с заграничными соседями в одной команде? С чего вы начинали?
Добрый день. На самом деле я начал сотрудничать с Nokia в той или иной форме с тех самых пор, как начал писать программы для платформы Symbian в 2007 году . Уже в то время Nokia сформировала очень сильное сообщество разработчиков, но Россия там была представлена не так широко, как сейчас. Развитие и популяризация мобильных технологий в нашей стране соответствовала моим интересам - мне нужны были компетентные сотрудники-программисты в данной области (с поиском которых и сейчас не все просто). Поэтому помимо основной работы я активно включился в деятельность сообщества Forum Nokia (структура компании, которая поддерживает разработчиков по всему миру), переводя на русский язык наиболее интересные материалы и участвуя в различных акциях. В скором времени меня отметили в сообществе, предоставив звание Forum Nokia Champion (аналог Microsoft MVP) и доступ к различным программам поддержки. Примерно в это же время Nokia стала наращивать активность в работе с разработчиками в России, организуя различные мероприятия, на которые меня неизменно приглашали в качестве докладчика. Ну а когда Forum Nokia решила развернуть полноценную рабочую группу в Москве, оказался наиболее подходящим кандидатом на должность технического консультанта (technical consultant), что бьло ожидаемо. Так что никаких чудес или случайностей. Я считаю, что устроиться на работу в любую компанию не сложно, если вы смогли набрать тот уровень компетенции, при котором стали представлять для нее интерес. Конечно, чем крупнее компания - тем выше требования и ожидания от ее сотрудников.
 |
| Nokia приглашает к сотрудничеству всех желающих |
Что же касается работы с заграничными коллегами - я не испытываю каких-либо трудностей. Мне во многом приходится полагаться на них, ведь быть экспертом во всех областях невозможно. Кроме того, мы довольно близки по духу - все фанаты своего дела.
Большинство независимых разработчиков ПО под Symbian OS знают вас по книге "Symbian C++. Программирование для мобильных телефонов". Как известно, работа над книгой заняла у вас больше полугода, а вышла тиражом всего 1000 экземпляров. Скажите, с чем связан столь низкий тираж? Неужели в России Symbian не имеет популярности, чтобы тратить на его изучение время и средства?
Книга продается хорошо. Нужно помнить, что она предназначена главным образом для специалистов и тех, кто глубоко интересуется предметом, и в случае необходимости тираж можно допечатать. Кроме этого, для любого издательства публикация подобной литературы - всегда риск, так что я очень доволен, что самостоятельно смог найти издателя.
Если рассматривать популярность Symbian в России - она довольно высока. Россия входит в число стран, на рынке которых позиции Symbian наиболее сильны. Но, к сожалению, ни сейчас, ни ранее это не привело к появлению большого числа разработчиков на Symbian C++. И в целом популярность Symbian C++ с популярностью Symbian прямо не коррелирует. На то есть объективные причины (сложность изучения и использования языка), а также множество дополнительных, специфичных для нашей страны проблем (сложность организации и ведения бизнеса). К примеру, наши разработчики не любят читать англоязычную литературу (хотя ее очень много), а моя книга - фактически первый учебник по Symbian C++ на русском языке. Хотелось бы, чтобы такая книга появилась на пару лет раньше.
 |
| Symbian C++. Программирование для мобильных телефонов |
К счастью, писать программы для Symbian можно не только на C++, но и используя Java, Qt, Flash, Python и прочие. И сейчас симпатии программистов для мобильных устройств смещаются в сторону Qt. Так что я не думаю, что количество разработчиков Symbian C++ в будущем сильно возрастет, но число разработчиков на Qt для платформы Symbian значительно увеличится. Сейчас я бы и сам рекомендовал инвестировать силы и время скорее в изучение Qt, чем в Symbian C++. В будущем Symbian C++ уготована роль вспомогательного средства Qt программиста, позволяющего добраться до функций платформы более низкого уровня.
Как уже давно известно, Nokia взяла под крыло компанию Trolltech, которая занималась разработкой фреймворка Qt, и сейчас сама курирует процесс разработки и портирования библиотек и классов на мобильную платформу. Кроме того, разрабатывается расширение Qt Mobility, которое работает непосредственно с телефонными API. С чего возник интерес Nokia именно к этому Фреймворку?
Курирует - не совсем верное слово. Nokia непосредственно не вмешивается в процессы разработки. Лишь определяет стратегию. Купив Qt Software (именно так сейчас называется Trolltech), Nokia инвестировала огромные средства в развитие Qt. Естественно, поддержка платформ Symbian и Maemo была одной из поставленных перед ними целей, но это было сделано не за счет других платформ или общего развития Qt в целом. Наоборот - Qt расцвел как никогда. Он не стал менее кросс-платформенным или закрытым. Чего стоит одно появление лицензии LGPL, позволяющей разработчикам бесплатно использовать Qt в коммерческом ПО. Или открытие репозиториев исходного кода Qt для широкой публики.
Сам фреймворк уже давно портирован и на Symbian, и на Maemo и прекрасно работает. Но, так как изначально Qt был ориентирован на десктопные платформы (Windows, Linux, Mac OS), в нем отсутствовал ряд API, специфичных для мобильных устройств. К примеру, API, позволяющие работать с GPS или отправлять SMS. Их добавили в рамках проекта Qt Mobility. Кстати, недавно состоялся релиз Qt Mobility 1.0.1 с гарантиями бинарной совместимости, а значит - эти API уже можно использовать, не боясь будущих изменений.
 |
| Разработка фреймворка не останавливается ни на минуту |
Какие преимущества имеет фреймворк Qt перед теми же нативными приложениями С++?
Здесь стоило бы определиться с платформой. Как известно, на Qt можно создавать приложения для Windows, Windows CE, Linux, Embedded Linux, Mac, Symbian и Maemo 5/MeeGo. Если рассматривать мобильные платформы, то основными преимуществами я могу назвать скорость разработки и возможность создания очень красочного удобного пользовательского интерфейса с поддержкой тем, стилей, эффектов и пр. На YouTube вы можете найти множество роликов, демонстрирующих приложения с фантастическими GUI, созданные при помощи фреймворка Qt.
Будет ли в будущем Qt-приложение приравниваться к нативному (родному) приложению?
Это уже произошло. Технически приложение написанное на Qt, во время компиляции под конкретную платформу использует реализацию своих API, выполненную на "родных" для нее языках. В частности, для Symbian - это Symbian C++ и C++ (POSIX-библиотеки). Таким образом, любое Qt-приложение превращается в нативное и может использовать возможности платформы в полном объеме. Никаких прослоек вроде виртуальных машин, трансляторов и sandbox нет. Более того, в исходный код на Qt можно добавлять код Symbian C++, что очень удобно.
Кроме того, с идеологической точки зрения Nokia также рассматривает Qt-приложения как нативные. Это отражает и недавно обновленный дизайн нашего портала Forum.Nokia.com. Начиная с Symbian^4, написание приложений с GUI будет возможно только на Qt, так как от поддержки устаревшего Avkon решено отказаться. Поэтому мы акцентируем внимание разработчиков на Qt уже сейчас.
В прошлом, да и сейчас, многие начинающие разработчики жалуются, что написание приложения под Symbian OS является очень трудной задачей и занимает очень много времени. Каким образом Qt может исправить это положение?
Действительно, Symbian C++ заслужил славу крайне трудного в изучении и использовании языка. Дело в том, что он изначально проектировался как средство разработки ОС, ее микроядра, и поэтому оптимизирован для получения максимального быстродействия на минимальном объеме памяти. Естественно, в ущерб удобству. Все это выливается в довольно длительные сроки при разработке даже относительно простых приложений. Так что использовать его может лишь подготовленный программист.
Qt меняет эту ситуацию кардинально. Несмотря на то что, как и Symbian C++, Qt является расширением C++, он проектировался как высокоуровневое объектно-ориентированное и кросс-платформенное средство разработки. По простоте использования и скорости разработки приложений я ставлю его в один ряд с .Net, Java или Delphi. А по возможностям он их превосходит. Qt Software предоставляют удобную IDE для Qt, поддерживающую RAD-проектирование GUI и отладку приложений (в том числе и на мобильном устройстве). Кроме того, существуют т. н. language bindings, позволяющие создавать Qt-приложения на языках Python, Java, C#, Perl, PHP и многие другие. Поэтому я могу рекомендовать Qt как новичкам, так и опытным разработчикам приложений.
Планируете ли вы написать книгу по Qt для российских разработчиков?
На данный момент нет, в этом нет необходимости. К счастью, литературы по Qt на русском достаточно. Могу порекомендовать книгу Макса Шлее "Qt 4.5. Профессиональное программирование на C++".
 |
| Qt 4.5. Профессиональное программирование на C++ |
Как вы представляете себе сообщество российских разработчиков под Symbian OS через, скажем, год-полтора?
Я считаю, что количество разработчиков увеличится. Рынок смартфонов растет, и разработка приложений для мобильных устройств перестает быть экзотическим хобби, как это было 3-4 года назад. Да и возможности устройств растут - это позволяет целым новым классам приложений и решений прийти или появиться на мобильных платформах. Вспомните хотя бы появление GPS или акселерометров.
По составу большую часть будут составлять Qt-разработчики. Причем это будут не только новички, но и программисты, уже использовавшие Qt для разработки ПО на ПК. Доля программистов Symbian C++ уменьшиться, так как изменится их роль в проектах. Знания Symbian C++ потребуются лишь для доступа к каким-то низкоуровневым возможностям платформы. Таким образом, специалисты по Symbian C++ будут привлекаться лишь на определенных этапах проекта для выполнения небольшой части работ. Но это потребует высокой компетенции, и навыки Symbian C++ будут все так же высоко оплачиваться.
Что касается J2ME-разработчиков - это в основном создатели игр. Они не выдержат конкуренции с Qt на Symbian и Maemo\MeegGo и по большой части уйдут на S40. Либо им придется перейти на Qt, чтобы остаться в сегменте hi- и middle-end устройств, где самые платежеспособные пользователи. Ожидания пользователей постоянно растут, J2ME не успевает за ними.
Конечно, не все из вышеперечисленного сбудется в точности либо сбудется, но не в полном объеме. Но думаю, что эти тренды сейчас всем очевидны.