LXF117:Interview

Материал из Linuxformat.

Версия от 07:48, 29 октября 2011; Ewgen (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Наш человек в Nokia

Астроном-любитель и KDE-хакер Грэм Моррисон встретился с астрономом-любителем и Qt-хакером Бенуа Шиллингсом.

Бенуа Шиллингс

Успокойтесь, KDE-фанаты, мы не участвуем в заговоре против вас! Бенуа Шиллингс [Benoit Schillings] — технический директор Qt Software. именно он решает, каким функциям быть, а каким не быть в Qt, а значит, и в KDE. Мы расспросивать в Qt и почему Greenphone «не смог» ни отправить, ни принять ни одного телефонного вызова.

Linux Format: В чем ваша роль в Qt Software?

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

LXF: изменилась ли ваша роль после вхождения в Nokia?

БШ: Пока рано судить об изменении моей роли. Но я увидел: Nokia мыслит примерно в тех же рамках – ближайшая перспектива, среднесрочные и долгосрочные планы. А ещё, компания накопила массу разнообразных знаний, и здесь есть немало интереснейшей пищи для ума. Какая роль отведена Qt в Nokia – тоже интересный вопрос, я сам заинтригован.

LXF: Значит, можно ожидать развития в строну встраиваемых устройств?

БШ: Знаете, я бы так не сказал. Мне кажется, что делить рынок на «встраиваемое» и «невстраиваемое» даже опасно. Частично из-за того, что возможности и архитектура устройств всё более выравниваются, частично из-за стремления людей применять свои навыки и опыт к целому ряду устройств.

Люди хотят изучить Qt и пользоваться им на встраиваемых устройствах, мобильных телефонах, ПК – для разработчиков это очень интересно. Им незачем тратить слишком много усилий на приобретение всех этих навыков по отдельности. Другой аспект той же проблемы: мы не рвёмся приобретать новые устройства, если они не интегрируются с тем, что у нас уже есть. В смысле, кому нужно брать «на попечение» ещё одну систему или осваивать ещё один пакет инструментов настройки? Поэтому я считаю, что чем больше мобильных устройств появляется в жизни конечного пользователя, тем больше нужда в унификации. И здесь кроссплатформенная среда разработки может сыграть решающую роль. Все причитают о сближении, но практически никто ничего для этого не делает. А по-моему, необходима кроссплатформенная среда разработки вкупе со стандартизацией.

LXF: Должно быть, такому развитому инструментарию, как Qt, поддерживать должную производительность на встраиваемых устройствах весьма непросто, в отличие от мощного компьютера.

БШ: Да, мы всегда помним об этом. Приходится балансировать. Встраиваемые устройства всегда сопровождаются ограничениями: экран маленький, и графические возможности в большинстве случаев ему под стать, проявить индивидуальность особо негде. Кроме того, в любой среде разработки возможен продукт, не способный одинаково хорошо работать на всех устройствах. Думаю, наша главная задача – максимально облегчить экспериментаторство.

Возьмём рендеринг в Qt: вы можете сами решить, включить экранное сглаживание или нет. Вот вам простой пример. На мощной современной машине сглаживание шрифтов вполне приемлемо, пусть и за счёт лишних циклов процессора. Перейдя на компьютер попроще, вы отключите сглаживание; и чем слабее ваша техника, тем больше подобных альтернатив, в частности, разрешение фото или растровой графики придётся установить поскромнее. Мне кажется, Qt именно и обладает гибкостью масштабирования с учётом возможностей различных устройств.

LXF: У меня был известный вам Greenphone, с которым я не мог ни отправить, ни принять ни одного звонка.

БШ: Правда? А вы не пробовали изменить код, чтобы телефон заработал? Greenphone ведь для этого и задуман!

LXF: Я создал для него несколько пользовательских приложений и написал статью-учебник по его программированию. Это было на стороне Qt. А вот на уровне ядра разобраться не удалось.

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

LXF: Вообще-то это был один из заготовленных для вас вопросов. Прошло столько времени, а программировать не стало проще. Почему?

БШ: Мне кажется, программированию вообще присуща сложность: в большинстве языков программирования единственная ошибка означает кончину программы. Срабатывает эффект «слабого звена»: просчёты недопустимы. А языки программирования пока не настолько развиты, чтобы указать вам это «слабое звено».

LXF: логика существует в голове, а перенос её в программу сложен и трудоёмок. Я замечал, что, работая в Qt (особенно эпизодически, в свободное время), очень трудно «держаться в теме», много времени уходит на то, чтобы правильно настроить процесс мышления. Может быть, у тех, кто изучил весь инструментарий, или зарабатывает на жизнь программированием, по-другому?

БШ: Я бы не назвал себя великим Qt-программистом, ведь это не основное моё занятие. Но, сравнивая Qt с другими платформами, с которыми я раньше работал, скажу, что я нашёл здесь иные уровни абстракции, используемые при программировании.

Мне кажется, мы пытаемся вложить в Qt некоторое исходное понимание, достаточно простое, но и не лишённое глубины, а вот стиль программирования и способ применения инструмента у каждого свои, в зависимости от менталитета, опыта и свободного времени.

LXF: Что бы вы порекомендовали начинающим изучать Qt?

БШ: Я думаю, лучший способ понять Qt – взять одно из существующих приложений и основательно его изучить. Да, учебников написано великое множество, но моя точка зрения остаётся неизменной (и она относится как к языкам программирования, так и библиотекам) – нет ничего более наглядного, чем рассмотрение действующей, проверенной временем программы.

Должен признаться, что частенько, сталкиваясь с проблемой в программировании с Qt, я не рылся в документации, а просто брал кусок кода, выполняющего нужную мне функцию, и тут же видел: «Ага, вот как это делается!». По-моему, изучение конкретных примеров – часто лучший способ постижения системы. В случае Qt, в Сети доступно такое изобилие кода (только зайдите на Google!), и мы приводим столько примеров, прилагаемых к самому Qt, что учиться очень легко. LXF

Личные инструменты
  • Купить электронную версию
  • Подписаться на бумажную версию