Wireshark 正在使用 Qt 进行重写 已翻译 100%

oschina 投递于 2013/10/18 09:06 (共 5 段, 翻译完成于 10-18)
阅读 10692
收藏 30
4
加载中

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

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

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

Garfielt
Garfielt
翻译于 2013/10/18 09:25
1

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

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

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

Garfielt
Garfielt
翻译于 2013/10/18 09:43
1

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

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

Garfielt
Garfielt
翻译于 2013/10/18 10:17
1

这对用户意味着什么

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

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

这对开发者意味着什么?

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

Garfielt
Garfielt
翻译于 2013/10/18 10:28
2

什么可用?

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

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

你可以编辑参数设置。

你可以追踪流会话。

你可以查看TCP流图表。

什么不可用?

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

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

P.S. 依旧支持Solaris。

Garfielt
Garfielt
翻译于 2013/10/18 10:35
1
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
加载中

评论(37)

邓宏才
邓宏才

引用来自“pendows”的评论

引用来自“eechen”的评论

引用来自“pendows”的评论

引用来自“eechen”的评论

引用来自“pendows”的评论

引用来自“eechen”的评论

引用来自“pendows”的评论

引用来自“eechen”的评论

引用来自“Jbryan”的评论

qt 体积一直就很大

再大也不比要安装.Net Framework麻烦吧?
用户最关注的是你的程序好不好用。
如果老要拿编译个Hello World空窗体做对比,那真没什么好说的,你的应用做得足够强大,那些所谓的“体积”真的无所谓,比如Qt Creator、WPS、VirtualBox、VLC Player、SMPlayer、Google Earth、Mathematica、Autodesk Maya、Skype、KDE等等,谁又怎么这些应用大一点呢?

QT应当说是压缩包是10MB,还是非常大的。
的确有些软件不在乎体积,但这只是极少数的软件,
一是这些软件本身体积就比较大,对于一只大象背上加个小包当然不算什么,
二是这些软件以跨平台为主,除了QT也没得更好的选择,QQ、360之流WIN桌面软件是不会用QT去做的。

找个下载站随便看看,大于10MB的只是少数,小于10MB的是大多数设若程序本身只有几MB,却要带个10MB的库就比较难以接受了。

随便举个例子,去看看 uTorrent 几百KB的BT下载软件,比他体积大的全死了,网络共享软件的体积不是没人在乎,用户会非常在乎。

YY是个纯Win的桌面语音软件吧,也用到了Qt,总不至于说安装包才17M的YY是“大象”吧?

个例去说明问题难免以偏概全 WIN桌面软件没有使用QT的就更多了,QT本身还是非常不错的,有一些软件适合使用QT,并选择使用QT一点也不奇怪, 但一个17MB的软件,其中10MB是QT的运行库,这可不是什么值得盲目模仿的优点。

看了YY里的Qt库,大概就3个文件
QtCore4.dll(1.5M)
QtGui4.dll(4.4M)
QtScript4.dll(756K)
用7Zip压了下,也就2.1。
2M的东西相对17M的安装包不算大吧?

QtGui4.dll 就近10MB了,他这个精简过了,如果真的完全不在乎体积的话就没必要去搞精简了,使用一个界面库本来是为了享受其强大功能,结果为了精简体积要带来一堆麻烦就不好说了。当然比起 .Net Framework之类并不算大,但也的确算不上小,可以完全不在乎。

就算不精简,我刚才去用7zip压了WPS近13M的libQtGui.so.4.7.4,压缩后大小也就3.5M。
这些都是我们常用的应用,一个20M左右的安装包难道连这3.5M的东西也带不起?
下面是常用的一些软件的安装包大小:
QQ 57M
Chrome 35M
Sougou Pinyin 31M
PPTV 25M

你写了几个WPS? 不是每个人都用来写WPS.
你举的例子都是几十MB的东西,前面说了任何一个下载站去统计一下这些软件只是一小部份,这一小部份里用了QT的就更少。
反复强调你用7zip压缩,可是你忘记了一件事,7zip用VC6编译的,并没有用QT, 7Zip压缩率是挺高,这关QT啥事啊?!你以为全世界只有7z这一种压缩格式?

你所例举的不在乎体积的QT软件却在努力的精简体积这不是自相矛盾吗?
你在这里争几MB的体积,十MB你不在乎,几MB你就很在乎,还要用7zip压缩来的?!
几十MB不在乎体积的QQ人家恰恰没有用QT, 而且你所提的这些都只是QT的一个子集,加上QTWEBKIT你多大?
C++的东西只要他有时间删掉不需要的东西当然可以编译的更小。问题不是每一个人有这种精力。有精力的就自己写UI库去了。

的确关于你提的几个软件我没有一个个的下载来分析,我没你那么闲。
QT是不错,但QT体积大不是我一个人在说,众所周知的一个东西你跟我争废话有毛用啊。不要用一个东西就听不得别人说一句缺点。

7Zip的压缩率和VC6有关吗?
为什么要用VC6编译?是为了兼容XP以前的系统,不是每个人都有最新的VC Runtime的
Qt作为跨平台支持最好的GUI库,你这样说它有意思?你写过没?
此号作废
此号作废

引用来自“pendows”的评论

引用来自“eechen”的评论

引用来自“pendows”的评论

引用来自“eechen”的评论

引用来自“Jbryan”的评论

qt 体积一直就很大

再大也不比要安装.Net Framework麻烦吧?
用户最关注的是你的程序好不好用。
如果老要拿编译个Hello World空窗体做对比,那真没什么好说的,你的应用做得足够强大,那些所谓的“体积”真的无所谓,比如Qt Creator、WPS、VirtualBox、VLC Player、SMPlayer、Google Earth、Mathematica、Autodesk Maya、Skype、KDE等等,谁又怎么这些应用大一点呢?

QT应当说是压缩包是10MB,还是非常大的。
的确有些软件不在乎体积,但这只是极少数的软件,
一是这些软件本身体积就比较大,对于一只大象背上加个小包当然不算什么,
二是这些软件以跨平台为主,除了QT也没得更好的选择,QQ、360之流WIN桌面软件是不会用QT去做的。

找个下载站随便看看,大于10MB的只是少数,小于10MB的是大多数设若程序本身只有几MB,却要带个10MB的库就比较难以接受了。

随便举个例子,去看看 uTorrent 几百KB的BT下载软件,比他体积大的全死了,网络共享软件的体积不是没人在乎,用户会非常在乎。

YY是个纯Win的桌面语音软件吧,也用到了Qt,总不至于说安装包才17M的YY是“大象”吧?

个例去说明问题难免以偏概全 WIN桌面软件没有使用QT的就更多了,QT本身还是非常不错的,有一些软件适合使用QT,并选择使用QT一点也不奇怪, 但一个17MB的软件,其中10MB是QT的运行库,这可不是什么值得盲目模仿的优点。

牛逼什么,不爽自己开发个库
r
rozen
想体积小的花钱呀,人家给你静态链接。一堆家伙拿着没有加过压缩壳的Qt dll和可能加过壳的比,甚至还有用Qt整个框架来和一个软件比的。。。
说实话,桌面开发的前提下以现在的硬盘空间条件竟然还有人抱着Qt库体积过大的想法。。。无法理解
hooluupog
hooluupog

引用来自“zhaowenwei”的评论

说实话 qt的设计 比gtk+ 优秀得多

恰好相反,gtk设计比qt优秀,尤其是模块化上,就像llvm一开始就是模块化的结构便于扩展和灵活的组合,而gcc则是一个宏结构,qt也是如此,虽然已经有很多组件模块化了,但qt内核层面依然模块化的不够,一个小小的程序动辄就得几十M.
GTK的问题是现在没人支持,开发进度太慢,几乎是半死不活状态,而且gtk写UI的语言一开始是c吓坏了不少人(尽管后来有了vala)。
所以:QT内核不重写,依然是治标不治本,就像llvm发展壮大,gcc现在也在考虑5.0要不要花大力气重构一下。gtk如今发展越来越弱,给qt造成的压力会变小,不知道qt还有没有动力去改进qt内核。
这个不只是在硬盘上占体积大小的问题,还牵扯到性能以及大量的包依赖问题,开发者会很头疼。
f
fireco007

引用来自“pendows”的评论

引用来自“eechen”的评论

引用来自“pendows”的评论

引用来自“eechen”的评论

引用来自“pendows”的评论

引用来自“eechen”的评论

引用来自“Jbryan”的评论

qt 体积一直就很大

再大也不比要安装.Net Framework麻烦吧?
用户最关注的是你的程序好不好用。
如果老要拿编译个Hello World空窗体做对比,那真没什么好说的,你的应用做得足够强大,那些所谓的“体积”真的无所谓,比如Qt Creator、WPS、VirtualBox、VLC Player、SMPlayer、Google Earth、Mathematica、Autodesk Maya、Skype、KDE等等,谁又怎么这些应用大一点呢?

QT应当说是压缩包是10MB,还是非常大的。
的确有些软件不在乎体积,但这只是极少数的软件,
一是这些软件本身体积就比较大,对于一只大象背上加个小包当然不算什么,
二是这些软件以跨平台为主,除了QT也没得更好的选择,QQ、360之流WIN桌面软件是不会用QT去做的。

找个下载站随便看看,大于10MB的只是少数,小于10MB的是大多数设若程序本身只有几MB,却要带个10MB的库就比较难以接受了。

随便举个例子,去看看 uTorrent 几百KB的BT下载软件,比他体积大的全死了,网络共享软件的体积不是没人在乎,用户会非常在乎。

YY是个纯Win的桌面语音软件吧,也用到了Qt,总不至于说安装包才17M的YY是“大象”吧?

个例去说明问题难免以偏概全 WIN桌面软件没有使用QT的就更多了,QT本身还是非常不错的,有一些软件适合使用QT,并选择使用QT一点也不奇怪, 但一个17MB的软件,其中10MB是QT的运行库,这可不是什么值得盲目模仿的优点。

看了YY里的Qt库,大概就3个文件
QtCore4.dll(1.5M)
QtGui4.dll(4.4M)
QtScript4.dll(756K)
用7Zip压了下,也就2.1。
2M的东西相对17M的安装包不算大吧?

QtGui4.dll 就近10MB了,他这个精简过了,如果真的完全不在乎体积的话就没必要去搞精简了,使用一个界面库本来是为了享受其强大功能,结果为了精简体积要带来一堆麻烦就不好说了。当然比起 .Net Framework之类并不算大,但也的确算不上小,可以完全不在乎。

看了下自己装的Qt5.1 ,里面QtGui.dll大小是4M
jason_wzhy
jason_wzhy
祝你们Qt之路,一路荆棘...
toby520
toby520

引用来自“Pupa”的评论

我只希望那些争论半天的人能明白,是Qt,不是QT,也不是qt。名字都拼写不对,只能说明不怎么用它,那么讨论它好不好也是没什么意义的

我表示严重同意,大家嘴里一直喊Qt,其实没有几个人在发表言论的时候是使用正确的Qt,呵呵
PynixWang
PynixWang
gtk界面在mac和windows下不忍直视。。。。。

linux 下的话 adwaita主题还不错。。。。。
壮哉我大东北
壮哉我大东北

引用来自“pendows”的评论

引用来自“eechen”的评论

引用来自“pendows”的评论

引用来自“eechen”的评论

引用来自“pendows”的评论

引用来自“eechen”的评论

引用来自“pendows”的评论

引用来自“eechen”的评论

引用来自“pendows”的评论

引用来自“eechen”的评论

引用来自“pendows”的评论

引用来自“eechen”的评论

引用来自“Jbryan”的评论

qt 体积一直就很大

再大也不比要安装.Net Framework麻烦吧?
用户最关注的是你的程序好不好用。
如果老要拿编译个Hello World空窗体做对比,那真没什么好说的,你的应用做得足够强大,那些所谓的“体积”真的无所谓,比如Qt Creator、WPS、VirtualBox、VLC Player、SMPlayer、Google Earth、Mathematica、Autodesk Maya、Skype、KDE等等,谁又怎么这些应用大一点呢?

QT应当说是压缩包是10MB,还是非常大的。
的确有些软件不在乎体积,但这只是极少数的软件,
一是这些软件本身体积就比较大,对于一只大象背上加个小包当然不算什么,
二是这些软件以跨平台为主,除了QT也没得更好的选择,QQ、360之流WIN桌面软件是不会用QT去做的。

找个下载站随便看看,大于10MB的只是少数,小于10MB的是大多数设若程序本身只有几MB,却要带个10MB的库就比较难以接受了。

随便举个例子,去看看 uTorrent 几百KB的BT下载软件,比他体积大的全死了,网络共享软件的体积不是没人在乎,用户会非常在乎。

YY是个纯Win的桌面语音软件吧,也用到了Qt,总不至于说安装包才17M的YY是“大象”吧?

个例去说明问题难免以偏概全 WIN桌面软件没有使用QT的就更多了,QT本身还是非常不错的,有一些软件适合使用QT,并选择使用QT一点也不奇怪, 但一个17MB的软件,其中10MB是QT的运行库,这可不是什么值得盲目模仿的优点。

看了YY里的Qt库,大概就3个文件
QtCore4.dll(1.5M)
QtGui4.dll(4.4M)
QtScript4.dll(756K)
用7Zip压了下,也就2.1。
2M的东西相对17M的安装包不算大吧?

QtGui4.dll 就近10MB了,他这个精简过了,如果真的完全不在乎体积的话就没必要去搞精简了,使用一个界面库本来是为了享受其强大功能,结果为了精简体积要带来一堆麻烦就不好说了。当然比起 .Net Framework之类并不算大,但也的确算不上小,可以完全不在乎。

就算不精简,我刚才去用7zip压了WPS近13M的libQtGui.so.4.7.4,压缩后大小也就3.5M。
这些都是我们常用的应用,一个20M左右的安装包难道连这3.5M的东西也带不起?
下面是常用的一些软件的安装包大小:
QQ 57M
Chrome 35M
Sougou Pinyin 31M
PPTV 25M

你写了几个WPS? 不是每个人都用来写WPS.
你举的例子都是几十MB的东西,前面说了任何一个下载站去统计一下这些软件只是一小部份,这一小部份里用了QT的就更少。
反复强调你用7zip压缩,可是你忘记了一件事,7zip用VC6编译的,并没有用QT, 7Zip压缩率是挺高,这关QT啥事啊?!你以为全世界只有7z这一种压缩格式?

你所例举的不在乎体积的QT软件却在努力的精简体积这不是自相矛盾吗?
你在这里争几MB的体积,十MB你不在乎,几MB你就很在乎,还要用7zip压缩来的?!
几十MB不在乎体积的QQ人家恰恰没有用QT, 而且你所提的这些都只是QT的一个子集,加上QTWEBKIT你多大?
C++的东西只要他有时间删掉不需要的东西当然可以编译的更小。问题不是每一个人有这种精力。有精力的就自己写UI库去了。

的确关于你提的几个软件我没有一个个的下载来分析,我没你那么闲。
QT是不错,但QT体积大不是我一个人在说,众所周知的一个东西你跟我争废话有毛用啊。不要用一个东西就听不得别人说一句缺点。

我不是Qt开发者,我是从用户角度看待Qt写的应用,而你却一直在纠结那压缩后Qt多出的那几M的库,并且坚持认为这时一个很严重的缺点。

我这边能用7zip,所以我用7zip压,你用WinRAR压也没人说你。

我可没一个个下载,都是些我以前下载的程序,现在没删。

就算使用MSVC编译出的程序也存在依赖vcredist.exe的情况,只是很多Ghost系统都安装了罢了。

又不是所有Qt程序都用qt-webkit,有假如你的程序如果要用到MFC、DX库,难道你用VS就不用引入这些库?

可能我不该提.Net Framework,可能这点刺激到了你。

我从来没有坚持认为这是一个严重的缺点。
QT体积太大,一直被诟病,自己动手去搜搜看争这些没意义。

QT不是大,而是太大,QT不是只有这几个DLL,
而且动态链接库还依赖C++的运行库,这带来的问题不仅仅是大,而且部署不方便。
QT还受LGPL协议所限只得动态链接,这都是他的缺点,有缺点没有关系,任何东西都有缺点。

其次我更没有认为这是很严重的一个缺点,我压根就没有认为QT不好啥的。
仅仅是认为不应当以偏概全,具体情况具体对待,几十MB的软件确实不必在乎这点体积。
但是小于10MB的桌面软件更多,很反感你那种把自己的想法强加于全世界的态度,还有大了1MB鬼叫的很响的多了去了。

不要说别的什么什么也很大,这就好象别人说你胖,你就争辩说那个谁谁更胖,嘴上不在乎你已经是在在乎。
你怎么不跟更小的比,人家uTorrent几百KB一样牛逼。

我没有用什么.Net Framework,看到你空间是QT的博文,到处死吹QT,然后在这里连自己是QT开发者也不承认了。
即然你连QT都不会,还盲目跟风胡乱吹?!

不是Qt开发者,但我是Qt应用的用户,站在用户的角度就不能发言吗?
敢问这位大侠又开发了哪些赶超Qt应用的桌面应用,拿出来晾晾,别跟我这个Web开发者叫板啊!

你想多了,没有人要赶超你,叫板你,要拿出来晾晾啥的,就算你天下无敌别人也可以说下在某种情况下体积要考虑一下不能完全不在乎,如果你不了解QT,那咱们少说几句好了,最鄙视那些用都不会用的家伙,看到什么就会跟风瞎逼乱吹。

这个eechen特别喜欢当老师
Pupa
Pupa
我只希望那些争论半天的人能明白,是Qt,不是QT,也不是qt。名字都拼写不对,只能说明不怎么用它,那么讨论它好不好也是没什么意义的
返回顶部
顶部