dolphin2000 2008-1-21 08:56
永中能否尝试用 swt 开发一个试用版?
这几天研究了一下 swt,发现它的内存消耗和运行速度确实有独到之处,至少在 windows 平台上被充分优化过,速度是相当快的。在 linux 下能够直接使用 gtk+2.0 本地资源,对比swing,swt 的响应速度比 swing 要快一些,内存资源消耗比 swing 小,对于字体的使用和渲染效果和操作系统一致,非常方便,永中能否用 swt 开发一个试用版?可以做个对比?
dolphin2000 2008-1-22 16:19
swing 的字体渲染是采用 java 自己的 t2k font rasterizer,具体实现是一个 native code 的调用,java2D 也是采用的 t2k rasterizer 实现 antialias 抗锯齿等效果,是带有专利和许可的,在字体的渲染上并不是使用本地操作系统的渲染,所以 java swing 的字体呈现效果在任何一个平台上都尽可能保持一致,但是丧失了本地化风格。尤其是 java swing 目前的 true type 字体的 antialias 抗锯齿渲染比 freetype 差不少,甚至连 windows xp 自带的字体渲染器效果都差,但是又无法自定义。open jdk 项目已经将 freetype 做为字体 java 字体渲染的后端,以取代 java 自带的 t2k font rasterizer。swt 在这方面比较好,直接使用操作系统提供的字体渲染功能,比较省心了。
dolphin2000 2008-5-4 11:52
这短时间发现永中因为擦用java swing和linux下面的xcb、3d桌面等冲突蛮厉害,笔记本一运行swing的程序风扇就狂转,内存消耗也很大,本来很不错的软件,因为swing天生的效率问题拖累,太可惜了。我觉得永中的研发团队内部用swt做一个评估测试版,和现有的swing版本比较一下完全是可以做到的,难道文本渲染、图形、表格这些,非swing才能实现吗?看看swing的字体渲染多么丑陋,效率多么低下,所带有的一系列和本地操作系统冲突相关的bug,头疼!
dolphin2000 2008-5-5 11:30
换一个核心确实工作量很大,但是我想这里面涉及到的很多排版、文字渲染等核心部分代码逻辑上应该是通用的,至少不是说非要绑定到 swing 上才能实现的吧?关键一点是 swing 消耗内存实在是蛮厉害,速度慢,而且运行效率需要不断依靠 java vm 的升级来提升,但是 java vm 的每次升级改版,不可能要求永中都发布一次补丁?或者让用户及时升级 java vm?而且 java vm 每次升级也会带来不少新的 bug,比如说在 linux 下面因为 java awt/swing 和 xcb 的冲突,造成永中无法使用的例子,因为 java awt/swing 和 3d 桌面的冲突导致所有基于 awt/swing 的程序都无法正常显示,永中不也一样被拖累了吗?而且关键一点是 swing 的字体渲染效果比较差,java 5 就不提了,到了 java 6 虽然勉强在字体渲染引擎里面增加类似 cleartype 的技术,但是效果很差,和本地操作系统的原生效果比差异太大,这在国外已经被老外诟病了不少,更何况汉字的渲染更加需要高质量的次像素平滑,java swing 的效果在这方面比 swt 差了很多。
sleetdrop 2008-5-9 01:00
[url]http://symphony.lotus.com/software/lotus/symphony/home.jspa[/url]
ibm在搞这个东西了,你可以体验一下。没觉得就好到哪里去。
swing虽然不算令人完全满意,但至少现在永中的可用性已经相当不错了。
swt是可以说是一种方言。是否每个人都会喜欢也是个未知数。
swing构建的好东西也不少,netbeans, intellij idea. 没觉得比swt的eclipse慢。
fanguanqun 2008-6-16 23:43
java选择swing方式是有他的取舍的。采用swing方式可以不改如何代码变成Applet程序,直接在浏览器上运行。而swt取不支持。java在一开始就是定位internet方向发展。
gydoesit 2008-7-31 11:37
上面说的太高深,不懂.我只要求:解决和3D桌面冲突的问题,没有3D桌面,太不酷了.永中尚有一些其他显示问题,也希望解决.
bigpens 2008-8-29 14:24
开发和运营WEB版。不过需要技术积累和转型。缺的还是资金和人才呀。
hantsy 2008-9-8 17:30
SWT只不过是IBM的公关工具,在windows 表面的确不错,但在linux 下,swt 的表形比windows 下差了一大截。
Eclipse 在linux下的稳定性比windows差很远,我的eclipse 3.4 在fedora 9总是莫名的死掉。在开启3d特效之后,swt 程序全部受影响,性能大打折扣,swing却没有这样问题。
再说用户界面,自己打开Eclipse 和任何一个GTK程序,就可以看出swt 并不能做到和原生的gtk 界面一致,甚至表现得比最新swing 程序(jdk 6默认在linux下使用GTK)还要差,这在我blog上有描述([url=http://blog.chinaunix.net/u/1096/showart_1009044.html]http://blog.chinaunix.net/u/1096/showart_1009044.html[/url])。