Wireshark正在使用Qt进行重写

今天我发布了Wireshark的下一个开发版本 1.11.0。这标志着该项目方向的一个重大变化。我们将用户界面库由GTK+切换到了Qt。这两个库都便于开发者编写应用程序,且跨平台时时无需重写大量代码。在Wireshark的外观效果发展及普及的道路上GTK+起了很大的作用,但对我们使用的平台它支持地不是那么高效,而且随着时间的推移这个情况变得更糟。

做如此大的改变是一个很艰难的决定。这意味着将重写了成千上万行需要精心设计的代码。我们可能是做这种转变最大的独立应用(下面随时纠正我哦)。然而,我认为这是值得的,它对项目的长期发展是有益的。归根结底它回到一件事情上来:

Wireshark的工作是告诉你你的网络上发生了什么。如果它不能在你的系统上运行的话它什么都不是。

如果你使用的是Windows、Mac OS X和Linux Mint,我们需要相应地支持这些系统。如果你使用iPad或Galaxy Note我们会给你一个幽深、不解和困惑的凝视,但同时也在想是不是应该支持iOS和Android。

我刚开始写Ethereal时(wireshark原来的名字)它看起来像这样:

 

看起来它像是在Linux和Solaris上。它没有其他的样子因为当时我们仅支持这两个平台。我之所以选择GTK+这个用户界面工具库是觉得它最有感觉。相比其他当时的可选项它有许多优点。它很小巧,轻量级的,很容易上手,有活跃的开发团队,有一个兼容的授权。不久之后我们增加了对Windows的支持。GTK+起初在Windows上有些兼容性问题,但随着时间的推移情况好起来了。

从那时起平台的境况发生了变化,但不幸的是GTK+没有随之变化。最明显的是Mac OS X已经得到普及,人们开始索取适配他们系统的Wireshark版本。GTK+支持OS X,但定义它为二类平台,且在OS X上很难安装和使用。我们需要在使用X11(如Inkscape)或使用一个实验版的GTK+(比如Gimp)上选择。但无论哪种方式都需要开发者付出大量精力且产出的还不算是个用户的合格品。使用GTK+的Wireshark在外观及表现上都不像是个Mac OS X应用:

 

相反Qt则对我们支持的所有平台提供了一个好且干净的用户体验。如果你安装了64位版本的话,它现在的效果如下:

这对用户意味着什么? 

如果你是一个高级用户你应该继续使用GTK+风格一段时间。你还应该不时地试一下Qt版本,来看看你的工作流程如何改变。在Windows和Linux上这两个版本都会默认安装。

如果你正在运行OS X你应该使用Qt版本。对常规工作来说它有一个更好的工作流程。再次,如果它没有的话我们的工作就算白做。

这对开发者意味着什么? 

如果你正在使用GTK+开发新特性你应该停下。你很可能在浪费你的时间。如果你想帮助迁移代码的话那一起开发吧。

什么可用? 

在“文件”和“编辑”菜单里的都可用。

你可以捕获、过滤或检查流量。

你可以编辑参数设置。

你可以追踪流会话。

你可以查看TCP流图表。

什么不可用? 

剩下的功能。捕获选项、I/O图表、流图表、Voip分析等都不能用。我们还有大量的工作要做。

切换到Qt是一个长期而艰苦的过程,但我对未来感到兴奋。

P.S. 依旧支持Solaris。