15 октября вышла новая версия популярного пакетного снифера и анализатора трафика Wireshark 1.11.0 (версия для разработчиков). Она стала первой, в которой пользовательский интерфейс перевели с привычной библиотеки GTK+ на Qt. Оба этих инструментария позволяют писать кросс-платформенный код без необходимости многое переписывать для каждой платформы.
GTK+ во многом повлиял на то, как выглядела программа Wireshark и почему она полюбилась пользователям. Все привыкли к этому интерфейсу. Хакеры со стажем помнят, как выглядела программа Ethereal (старое название Wireshark) в прежние годы на обеих поддерживаемых платформах Linux и Solaris.
Это была маленькая легковесная утилита. Вскоре ее портировали на Windows, а после — на Mac OS X, и вот здесь уже возникли серьезные проблемы с GTK+, который не обеспечивал нативного интерфейса для OS X.
Qt обеспечивает гораздо более чистый и приятный интерфейс на всех платформах. Для сравнения, вот как выглядит 64-битная версия под OS X.
Очень жаль, но сейчас инструментарий GTK+ уже не обеспечивает необходимого уровня кросс-платформенности, и ситуация становится все хуже, пишет Джеральд Комбс (Gerald Combs), один из основных разработчиков Wireshark. В конце концов, пора задумываться не только об OS X, но и о поддержке Android и iOS.
«Решиться на такое значительное изменение было непросто, — говорит Комбс. — Пришлось переписать тысячи строк кода и тщательно подойти к проектированию программы. Наверное, Wireshark — самое большое отдельное приложение, которое осуществило такую миграцию. Тем не менее, я думаю, что это правильное решение, важное для долговременного развития проекта». С этими словами можно согласиться. В конце концов, главная функциональность Wireshark заключается вовсе не в графическом интерфейсе, а в четкой работе анализатора трафика, и здесь ничего не должно было измениться с переходом на Qt.
Профессиональным пользователям Wireshark, которые привыкли к старому интерфейсу под Windows и Linux, разработчики рекомендуют пока не отказываться от него, хотя и можно посмотреть на интерфейс Qt для ознакомления. Но вот пользователям OS X рекомендуют уже переключаться на новую версию, пусть даже на Qt переписаны еще не все функции. Этот процесс очень долгий: как упоминалось выше, Wireshark — самая большая программа, которая вообще решилась на такую миграцию.