阅读更多

26顶
2踩

编程语言

原创新闻 你看好Java桌面吗?

2008-07-22 09:11 by 见习编辑 Eastsun 评论(48) 有18750人浏览
  提到Desktop Java,不得不说这是Java开发之痛。从一开始引入JAVA平台的AWT(Abstract Windowing Toolkit)“一次编译,到处调试”给人留下了很糟糕的印象;在Java1.2加入的Swing后,虽然解决了AWT中的很多问题,但似乎也没让人对其产生多少好感,而且普遍认为Swing的速度慢,开发效率低下。
  不过最近几年SUN又开始大力支持Desktop Java的发展,从Java6中加入诸多Desktop Java新特性,以及对Swing性能有了很大的提高;并且特别针对Desktop Java创造了一个新的语言JavaFX……
  这一切,是否能改变Desktop Java的命运呢?
  最近,《Thinging in Java》的作者 Bruce Eckel 在其博客上发表了一篇题为:Does Anyone Really Care About Desktop Java? 文章。他认为,Desktop Java从设计之初到现在一直走在错误的路线上:
引用
  The history of Java UI is littered with disastrous decisions, starting with the AWT (Abstract Windowing Toolkit), which was created at the last second, because (no surprise) the language designers hadn't considered UI as an important paradigm for Java. Rumor has it that AWT was one month from conception to completion, which certainly fits. The results of AWT -- buggy and equally mediocre on all platforms -- destroyed everyone's faith in Java UI, for so long that Swing, which has been baking for years and years, is only just getting back some of the lost mojo. Users, who have a long memory of first impressions, still equate Java with crappy user interfaces, so to them the steaming coffee cup looks like something else that steams.

  此文发出后,在论坛上引起强烈的反响。支持者不少,强烈反对的也很多。你是否认同他的观点呢?
来自: http://www.artima.com
26
2
评论 共 48 条 请登录后发表评论
48 楼 xuyao 2008-08-25 10:02
我觉得只要是写出有用的软件,都不错,java写桌面程序也不是不可以,谁说java一定要写bs
47 楼 eserver220 2008-08-20 16:30
我看好JAVA DESKTOP. 不是因为SWING/SWT的功能怎样。 而是因为

Java作为排名第一编程语言,会有大量的潜在程序员会使用JAVA的桌面开发。

还有一个原因是目前BORLAND的退出IDE市场。微软阵营的开发如果采用VC++,

会面临 MFC/.NET 2.0/.NET3.0 等多个API。其实,采用微软VC++进行桌面

开发的最大障碍就是目前其技术变化太快。

   而J2SE吸引人的地方除了其本身外,支持J2EE/J2ME的广阔市场,也是

目前JAVA就业培训班“火”的原因。
46 楼 evancess 2008-08-16 11:01
比较喜欢 flex
45 楼 servlet 2008-08-08 16:29
java的强项就不在桌面,它的那个ActionListener事件侦听类,和一些个组件侦听类,必须已内部类和匿名类的形式实现,那么岂不是一个事件类,就会是如此的巨大,每当程序出现bug时,一个类,就可以将程序员看的焦头烂额。

   试问如果一个类,有2M或3M。那有多少行。
44 楼 fxbird 2008-07-27 14:05
我以多次使用swing的经验来看,swing使用起来很麻烦,很多在其它语言中很平常的功能都没有,比如说jlist就没有一个阻止行焦点改变的监听器,很多时候不得不看jdk的代码去学一点东西,而且源代码中还调用了一些jdk源码中没有的类,比如SwingUtils2.
43 楼 icewubin 2008-07-24 22:51
Java的GUI编程模型还可以,只是在桌面这一块的工作做的不够
一些界面模型也抽象的不够好,比如treetable,官方的例子,几乎是用一种hack的方式实现的。最近在看了一下Qt的编程模型,跟java很相似,也借鉴了一些java的概念,但确实比java专业多了


这仅仅说明Java缺少一个较好的UI库,仅此而已吧,JavaFX也是为了解决这个问题的。例如Swing没有坐标的概念,做动画就非常困难,用JavaFX就很简单了。JavaFX也可以做桌面应用的。
42 楼 codekook 2008-07-24 22:29
Java的GUI编程模型还可以,只是在桌面这一块的工作做的不够
一些界面模型也抽象的不够好,比如treetable,官方的例子,几乎是用一种hack的方式实现的。最近在看了一下Qt的编程模型,跟java很相似,也借鉴了一些java的概念,但确实比java专业多了
41 楼 Allen 2008-07-24 22:28
RCP的似乎也是很多大型企业押宝的一个方向。

现在大家似乎都觉得是时候恢复桌面应用的光辉岁月了,但是桌面应用到底会以怎样的面目回归,却没人有把握断定。
40 楼 鹤惊昆仑 2008-07-24 13:21
Qt是老大
39 楼 Eastsun 2008-07-24 12:59
刚才看了下原文的回帖,其中 Rob Ross    的回复很有意思:
引用
The title was clearly designed to be provocative, presumably to increase the number of eyeballs viewing this article and thus increase ad revenue.

他认为该文属于“标题党”,是为了吸引眼球增加网站的点击量从而提高网站的广告收益。
看来,外国也有“标题党”一说,不过貌似没有像中国一样有个专有名词来形容。
38 楼 icewubin 2008-07-24 09:22
昨晚看了详细介绍,Java Swing已经开始对DirectX进行调用以提高性能,包括3D的调用。还有OpenGL的硬件加速的支持也已经开始。

还有个大问题就是,安全性,SL目前还没暴出什么漏洞,但是只要SLR暴出漏洞,SL逃也逃不掉。现在Flash病毒已经开始满天飞了,如果Adobe应对不力,一般客户封杀flash,形势马上就会对Adobe极为不利。

37 楼 icewubin 2008-07-24 09:18
引用
取决于客户端的部署优势
去除linux,在windows平台,应该
sl>flex>javafx
当年的applet就是一个例子


以目前的下载量,结合当年(2000年)的网速来看,SL和Flex在当年推出都是一个下场。
36 楼 supercode 2008-07-24 09:14
取决于客户端的部署优势
去除linux,在windows平台,应该
sl>flex>javafx
当年的applet就是一个例子
35 楼 geminiyellow 2008-07-24 08:44
加油加油,兄弟们加油啊
34 楼 chanball 2008-07-23 23:57
有sun做后盾,总有一天Desktop Java会出头的
33 楼 cph8066 2008-07-23 23:48
我反而比较看好Flex,在UI方面与用户视觉感受方面,Flex是没得说的,现在是老大,但Flex确实在某些方面对比JavaGUI有些不足,在于运行效率方面,安全性等等。Flex是基于Flash的,走了这么多年,在Macromedia时代就很出色了,嫁给Adobe后更有飞跃的势头,跟本无视MS的SL,在前端UI主面,流媒体方面,网络交互方面都慢慢成熟强大了。虽然Java也可以追赶,但在追赶的同时,别人也在上进,我想信Adobe的能力,自从AIR的发布,就更可看出Adobe的决心了!而ActionScript3才刚刚冒起,还有很大的改进空间,还有FlashPlayer在硬件方面的支持与性能优化都有很大的空间,我相信Adobe也清楚这点,所以我很有信心未来的前端技术将会是Flex的天下!
32 楼 icewubin 2008-07-23 22:17
引用

4.硬件加速的支持,引进了一个完整的基于微软的Direct3D 9 api的硬件加速图形通道(hardware accelerated graphics pipeline),使得swing应用添加了半透明,不规则图形等特性和其他先进的2d特性。


个人认为这个很强,如果能加快3D的硬件调用,就暴强了。
31 楼 caoyi1983 2008-07-23 21:59
java 6 update 10,以前称为java 6 update n 包含了一些为增强用户用户体验而增加的新面貌:
1.增强的java安装体验,用户不必下载完整的jre,只需要下载一个内核就可以满足大部分applet/application的需要。其他需要的类库可以由内核在用到的时候再下载。这种安装机制使用户启动和运行java应用的速度显著提高。
2.jre的更新也变得更快、更可靠,更新的版本将不再在Windows的“添加或删除程序”中被列为单独项目。
3.快速启动,在启动计算机时将预先把jre的一部分缓存到内存中,可以很大的提高jre的启动速度。
4.硬件加速的支持,引进了一个完整的基于微软的Direct3D 9 api的硬件加速图形通道(hardware accelerated graphics pipeline),使得swing应用添加了半透明,不规则图形等特性和其他先进的2d特性。
5.一个新的跨平台的外观(lookandfeel),代号为nimbus。对'Metal' 和'Ocean'外观进行了更新。
6.下一代Java插件,改进了java插件的可靠性,并对applet提供长期的支持,能够指定java堆的大小,能够选择为特定的applet选择不同版本的jre。改进与javascript的互操作性,在vista上更好的支持applet的签名。
7.统一的浏览器和桌面体验,新的可拖动的功能,你可以从浏览器拖动applet到你的桌面上,同时程序继续运行。同时拖动会创建一个快捷方式,快捷方式依赖Java Web Start技术运行,并允许用户不打开浏览器来运行applet。
30 楼 香克斯 2008-07-23 21:22
我更喜欢python来写,呵呵.
足够简单强大跨平台
29 楼 sp42 2008-07-23 19:35
都是大公司、大财团的玩物
只有ajax是非营利性组织的技术,
好处是 十年 才更新一次 ,不用老绕着大款转啊

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Visual Basic 语言功能

    下列主题介绍并讨论面向对象的编程语言 Visual Basic 的基本组件。 使用窗体和控件为您的应用程序创建用户界面后,还需要编写定义应用程序行为的代码。 与任何现代编程语言一样,Visual Basic 支持许多通用编程构造和语言元素。 若已经使用过其他语言编程,那么您可能熟悉本节中包含的很多资料。 尽管多数构造与其他语言中的构造类似,但 Visual Basic 的事件驱动特性还是引入了一些细微的差别。 如果您是编程新手,本节中的资料可作为编写代码的基本构造块的入门介绍。 理解了基础知识以后,您就

  • Visual Basic学习笔记##对口升学##可用,持续更新~~

    工具栏属性窗口。

  • C++基础教程面向对象(学习笔记(94))

    std :: string和std :: wstring 标准库包含许多有用的类,但最有用的可能是std :: string。std :: string(和std :: wstring)是一个字符串类,它提供许多操作来分配,比较和修改字符串。在本章中,我们将深入研究这些字符串类。 注意:C风格的字符串将被称为“C风格的字符串”,而std :: strings(和std :: wstring)将简称...

  • JavaBasic 类的封装

    为了数据操作的”安全“性 数据的格式 使用范围 规范性。一个对象在调用自己类中的属性时 可以使用this指针。2: 在类中创建一个唯一的对象 关键字:static。若书写了一个含参的构造函数,则空构造函数无法使用。修饰属性 变量时 在内存中只会创建一次且一个。限制代码可以被使用调用的“范围”private:只能在本类中使用。格式:get属性名/set属性名。格式:以调用名为函数名的初始函数。每个类自带一个隐式的空构造函数。3: 在类之外可使用类名调用。”范围“:项目的结构目录。指代调用这部分代码的对象。

  • 【转】VB6.0中用户类和数据源类的设计和使用技术

    本文转自:http://www.pcworld.com.cn/99/script/9907/072601b.asp 摘要:用户自定义类(Class)是Visual Basic 6.0中实现软件重用的最基本方法,也是设计和使用Active X EXE/DLL部件的技术基础。在VB6.0中除了可定义一般功能的类外,还可以定义从外部源获取数据的数据源类(包括ODBC 源、ADO,或者任何 OLE...

  • Visual Basic的类对于面向对象的支持

    VB最为人垢病的是它的面向对象特性。实际上VB是一种基于对象的开发工具。在VB中 建立的类是支持继承的。下面是范例: 首先建立一个新工程,然后添加一个新的类模块(Class Module),类名称设定为BaseClass。 然后在BaseClass中加入以下代码: Public Sub BaseSub() 虚拟特性,BaseSub在子类中实现 End Sub 然后添加两个类模块,类名称分别设定为

  • Class 语句 (Visual Basic)

    VB.net教程https://www.xin3721.com/eschool/vbnetxin3721/ 声明类的名称,并引入构成该类的变量、属性、事件和过程的定义。 复制 [<attributelist>] [accessmodifier] [Shadows] [MustInherit|NotInheritable] [Partial] _ Classname [(Oftypelist)] [Inherits classname] ...

  • 关于Visual Basic 6.0类开发(下)

     在Visual Basic 6.0类的技术与应用(上)(以下简称上文)中,我们讨论了类的理论、类的创建和类的方法的编程实践,实际上,类之所以能够在软件工程中广泛应用,最主要的一点是它可以非常方便的封装许多编程需要的属性,这不仅使程序员在一定程度上克服控件(ocx)和链接库(dll)设计和调试中的复杂性,而且能够提高程序代码的简洁和高效性??本文将讨论完整的类的编程,包括方法、属性和基本事件。

  • Visual Basic 集合类

    “集合”是一种将一组相关项组合在一起的方法。 存在许多不同类型的集合。 出于多种目的,Visual Basic 应用程序中使用了预定义集合,例如Form上的Control.ControlCollection,它由窗体的Controls属性返回。 也可以创建自己的集合以组织和操作对象。 对于应用程序可能需要动态创建和销毁的对象,使用集合进行跟踪是一个不错的方法。 下面的代码片段演示如何使用 Visual BasicCollection对象的Add方法保持用户所创建的 widget 对象的列...

  • visual basic(2) 类和对象

    VB中,每个按钮控件都代表一个类,将这些控件添加到窗体上是就创建了一个对象。由同一个类创建的对象具有类定义的公共属性、方法和事件 一、对象的属性 1、属性设置 (1)可以在单击对象后,右侧弹窗中设置对应选项 (2)也可以在程序运行中更改对象的属性,属于动态修改 [对象名.] 属性名 = 属性值 如:command1.Caption="确定" ‘设置命令按钮的标题 Text1.Text="VB程序设计” 2,对象的通用属性 (1)Name属性:对象的名称。在建立对象时,系统会为该对象...

  • vb中的类与对象

    vb的对象与类。vb,一个不是完全面向对象的编程语言,相对于其它高级编程语言来说,在它上面,基于对象的编程应用更为泛。对于对象,只不过是类的实例化罢了,而类,是众多对象的抽象的一个庞大集合。类实例化对象,对象抽象成类

  • [Basic]面向对象之信息隐藏(一)

    开博之语 开技术博客,始源于与本科毕设老师的一次交谈。在那次交谈中,老师针对毕设期间对我的了解,给我提出了几点建议。针对我如今的技术实践能力强于文档写作这一环节,老师提出的建议就是写技术博客。于是在本科毕设结束后,我采纳了老师的建议,最终开设了这个技术博客。开设这个技术博客,一则对自己的写作有所提高,而更大的意义则在于能与更多的人进行交流,交流可以促进你我的共同进步,不是吗?所以我乐于、渴望于倾

  • 类和面向对象

    面向对象 面向对象(Object Oriented, OO)的程序设计的思路和人们日 常生活中处理问题的思路是相似的。在自然世界和社会生活 中,一个复杂的事物总是由许多部分组成的。 面向对象的程序设计的基本思路:使用现实世界的概念抽象地思考问题从而自然地解决问题。 类和对象的定义 ·对象: 对象是人们要进行研究的任何事物,是现实世界中的一个实体。 任何对象都拥有一组数据和操作。 对象所拥有的数据...

  • Ubuntu 安装与使用 Visual Studio Code

    1.Visual Studio Code简介 1.1.什么是Visual Studio Code? Visual Studio Code是微软推出的一个运行于 Mac OS X、Windows和 Linux 之上的,针对于编写现代 Web 和云应用的跨平台源代码编辑器。 1.2.主要功能 集成了所有一款现代编辑器所应该具备的特性,包括语法高亮(syntax high lighting),可定制的热...

  • Visual Basic6.0零基础教学(2)—vb中类的介绍和基本控件的属性

    大家好,昨天我们学习了vb的简单介绍和和布局,今天我们来详细学习一下,vb中类的概念和我们昨天提到过的属性栏,每一个基本控件的属性.今天我们学习了VB中的类与对象的概念,还有基本控件中属性栏中属性的学习,相信通过编写一个小案例我们会更好的理解属性栏的使用!讲的不好,多多见谅,我们下次再见!更多优质文章点这里。

  • Visual Basic .NET 已不再支持的 Visual Basic 6.0 功能

    google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//<script type="text/javascript"

  • Visual Basic 使用对象编程:使用类(一)—— 什么是类?

    一.类的定义       对于我们初学者来说,编程就是把控件从工具箱拖动到窗体上,然而要想提高编程技能,现在开始必须引入面向对象编程的概念,让我们首先从掌握类开始。简单的说,“类”就是对象的表示形式,一个类可以用于创建对象的多个副本。       尽管我们没有在代码中编写过类,但实际上我们已经在使用类了。例如,当我们将一个 TextBox 控件拖动到窗体上时,实际上就是在创建 Te

Global site tag (gtag.js) - Google Analytics