锁定老帖子 主题:Swing为什么不受重视
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-04-27
cxp108 写道 仅用过Swing写过一般桌面应用(也就是用用窗口、按钮、图片、声音视频等组件)的程序员如果你们说Swing慢,只能证明你们对Swing的理解还只是皮毛而已,你们对自己写的程序要求仅仅是“能跑就行”。
除非你使用过Swing写过类似PhotoShop,或者某种对图形渲染要求极高的程序,再来举证Swing慢才有可信度。 我曾经接手过Swing一个程序,我改动不到200行,用户体验从极其抵制,到欣然接受, 就是因为一个程序员在Swing线程中,统计数据库记录。这一操作足足要花5分钟,用户 感觉和死机无异。用户还抱怨我们程序带病毒呢.... 某楼说的一点的确要肯定:垃圾程序员用什么语言都只能写出垃圾程序。 要在这里喊一句:不善多线程者还是离Swing远点吧 这句说的太好了,确实有这感觉 |
|
返回顶楼 | |
发表时间:2009-04-27
说一下我的看法:
1 曾经做过一个项目,将SWING写的录音、混音、网络上下传的CS程序转成SWT的,速度嘛,能接受,不慢。 2 SWING对多线程也没有那么多的要求,基本上就是会用SWING WORKER就行了。 3 SWING的教程就是Java Tutorial里的GUI教程,名字总在变,但一直在那里。多好的教程啊,简洁明了,很专业,适合专业新手学习。 |
|
返回顶楼 | |
发表时间:2009-04-28
whaosoft 写道 cs 我会用 vb c# c++ flex 做
java的 swing~ 其实我就是感觉过于难看 而其没用很好的 可视化ide~~ 多用用Netbean,然后注意更新JDK版本。 新版本速度快多了。 还有,你可能没有看过Swing做出来的漂亮的东西吧,多找找看看。 Swing是好东西,不过如果是新手用,估计也好看不到哪里。 还有,说java慢,那是因为你的机器太老了。现在随便一个机器,跑个Netbean还能有多慢呢? |
|
返回顶楼 | |
发表时间:2009-04-28
slaser 写道 cxp108 写道 仅用过Swing写过一般桌面应用(也就是用用窗口、按钮、图片、声音视频等组件)的程序员如果你们说Swing慢,只能证明你们对Swing的理解还只是皮毛而已,你们对自己写的程序要求仅仅是“能跑就行”。
除非你使用过Swing写过类似PhotoShop,或者某种对图形渲染要求极高的程序,再来举证Swing慢才有可信度。 我曾经接手过Swing一个程序,我改动不到200行,用户体验从极其抵制,到欣然接受, 就是因为一个程序员在Swing线程中,统计数据库记录。这一操作足足要花5分钟,用户 感觉和死机无异。用户还抱怨我们程序带病毒呢.... 某楼说的一点的确要肯定:垃圾程序员用什么语言都只能写出垃圾程序。 要在这里喊一句:不善多线程者还是离Swing远点吧 你不觉得门槛高是语言本身的缺点么? 垃圾程序员也能用得好的语言才是成功的语言,如当年的VB。 这也就是为什么swing流行不起来的原因。 并不是门槛高的问题,而是有没有认真思考,研究。 我说的垃圾程序员是指那些对自己程序要求极低的程序员,他们的要求仅是“能跑就好了”或是“能 跑一下示例就表示我学会了”。 |
|
返回顶楼 | |
发表时间:2009-04-28
要想Swing快,用jdk6吧
多线程是一门非常高深的课题,但是做web就不会有多线程? 只要有逻辑的地方就有可能出现多线程。 |
|
返回顶楼 | |
发表时间:2009-04-28
AllenZhang 写道 要想Swing快,用jdk6吧
多线程是一门非常高深的课题,但是做web就不会有多线程? 只要有逻辑的地方就有可能出现多线程。 web容器和各种框架,帮你包装了大部分的多线程操作。web的项目,业务逻辑的开发大大多于程序逻辑的开发。 其实这也是件非常好的事。至少大家能集中精力在业务逻辑上。 |
|
返回顶楼 | |
发表时间:2009-04-28
任何的语言都有他适合的环境。
WEB游戏的流行会不会让JAVA界面编程有用武之地? |
|
返回顶楼 | |
发表时间:2009-04-28
最后修改:2009-04-28
swing 里类似下面这两种结构令人很难受:
button1.addListener(new XXListener(){ public void ActionPerformed(ActionEvent e){ ... } }); class MyXXListener implements XXListener { public void ActionPerformed(ActionEvent e){ ... } } ... button1.addListener(new MyXXListener()); 如果能学习一下它们的写法就好了: button1.onclick = function(e){...} button1.addListener(function(e){...}) button1.onclick = function1; GUI 总是有大量事件触发的,由类包装过的函数指针,非常影响性能。 就算是 C++ delegate,都会有性能问题…… http://www.codeproject.com/KB/cpp/FastDelegate.aspx 希望日后改进的硬件、VM 和编译器可以解决这个问题吧。 |
|
返回顶楼 | |
发表时间:2009-04-28
night_stalker 写道 swing 里类似下面这两种结构令人很难受:
button1.addListener(new XXListener{ public void ActionPerformed(ActionEvent e){ ... } }); class MyXXListener implements XXListener { public void ActionPerformed(ActionEvent e){ ... } } ... button1.addListener(new MyXXListener); 如果能学习一下它们的写法就好了: button1.onclick = function(e){...} button1.addListener(function(e){...}) button1.onclick = function1; GUI 总是有大量事件触发的,由类包装过的函数指针,非常影响性能。 就算是 C++ delegate,都会有性能问题…… http://www.codeproject.com/KB/cpp/FastDelegate.aspx 希望日后改进的硬件、VM 和编译器可以解决这个问题吧。 你可以用注解啊,netbean开发时支持这个类库 为什么一定要和win类似呢? |
|
返回顶楼 | |
发表时间:2009-04-28
最后修改:2009-04-28
shiren1118 写道 你可以用注解啊,netbean开发时支持这个类库
为什么一定要和win类似呢? Annotation 对性能有影响吧…… 尤其是启动速度,每慢一秒都会失去很多很多用户 哪里看出“要和 win 类似了”…… |
|
返回顶楼 | |