阅读更多

14顶
2踩

Web前端
Java FX 1.0的正式发布日期据说确定为12月2日,目前最终发布版本在紧张测试中。Silverlight已经发布2.0版本,Flex 3.0也正式发布了。Sun需要加油了。

JavaFX 技术预览:

Charles Humble 说道:由于Java技术的成功,sun希望在企业平台市场之外也能取得胜利,比如需要跨平台支持的移动开发,安全性和稳定性要求很高的领域,Java也能成为一个优秀的选择。但是某些开发任务从一些特殊定制的语言中获益,由于Java是一个通用语言,反而不那么适用。比如现代GUI用户图形界面设计提出了技术和管理两方面的挑战。

在管理方面,复杂的用户界面典型的需要一系列不同的角色,图形设计师,信息架构师,动画制作和开发。某些人也许同时同时具备这些能力,但是这样的人非常少,更多的情况是不同的人处于不同的角色,因此协调不同的角色工作成为一个大问题。在技术方面,现代UI用户界面设计经常需要高层次的技术知识,一个尖端的工具包类似Swing面对一个开发者解决一些复杂的控制之前,他们需要学习如何创建UI用户界面,界面的响应严重依赖协作。多线程Java开发是非常简洁的,但是结果是许多模板代码不得不管理转换和动画。

作为Adobe Flex和微软Silverlight的竞争对手,Sun JavaFX 是sun针对Java开发者推出的战略。JavaFX目标是提供新的基础平台来创建跨桌面,跨网络,跨移动设备的RIA富互联网应用。它也是Sun在java产品市场战略中重要的改变,sun期望看到用JavaFX创建完整的解决方案,而不是专注于独立底层架构。现在的JavaFX技术预览提供了两个重要组件:Project Nile,这是专注于设计者/开发者工作流,以及JavaFX Script,一个新的declarative language声明式语言,来编写java GUI 应用。

不管是Flex 还是 Silverlight 都是用XML作为声明式语言(MXML 和 个别使用XAML),sun选择开发一个新的脚本语言,JavaFX Script。Sun工程师Joshua Marinacci说道:sun没有计划添加XML语言支持。我们发现很多开发者非常讨厌使用XML,希望一个更加简洁的声明式语言来书写图形化界面。我们想熟悉JavaScript的开发者会发现JavaFX Script非常容易使用。

JavaFX Script是一个声明式,静态,编译的 特殊领域语言Domain Specific Language (DSL),基于Java基础和宏编辑之上来创建用户界面,使用目前的Java包能获得JavaFX环境。它目标是两种不同用户:

1。Java 开发者,已经熟悉Swing和寻找一种快速有效方式创建富界面应用。

2。web开发者,更加熟悉其他脚本语言,比如JavaScript 或 ActionScript。

JavaFX Script 拥有强大的生产力,包含一些方便的描述功能,用来插入和删除操作(比如insert 10 before x[1]),其他常见问题被优雅的解决,绑定UI组件到后台数据非常简单,比如语言通过一个简单的类似监听者结构,支持当变量改变触发一个动作。

Sun特别强调语言的可读性,容易管理开发者的代码。结果之一就是JavaFX Script使用类似BASIC的布尔操作符取代在Java和JavaScript中都使用的C风格的操作符。比如JavaFX Script使用'and'表示&&,'or'表示||,也使用'not'虽然也支持'!'。它对于目标用户的确很容易使用。

JavaFX Script也有其他的惊喜,比如支持使用目前保留的关键字创建变量和函数,另外JavaFX Script也支持多重继承,而不是采用Java的interface接口机制。Marinacci说道:我们发现GUIs的上下文非常简单,在大多数情况下,开发者不会使用任何子类,所以这不会成为一个问题,子类主要提供给组件开发者使用。

JavaFX翻修了一系列与Java类似的定义,一个注意的地方就是JavaFXDoc 相当于Javadoc,JavaFXDoc使用XML取代HTML作为输出格式。目前提供的XHTML 1.0格式还支持输出PDF格式文件或者进入数据库创建知识中心。新的输出格式不使用frames,容易通过CSS定义,也允许一些基本的过滤创建档案。这里是一个例子:here。JavaFXDoc 面向产品化,还支持inline exapmles通过@examples标签。在自动生成的时候提供Example代码的语法高亮。文档工具编译运行example,并生成截屏,进入自动生成的文档,而且在代码修改后,能保持同步更新最新的截屏。基于Java 7的JavaFXDoc还将会提供更强大的搜索功能。

JavaFX Script能从任何现存的java包中获取,包括新的APIs,两个核心部分是media 媒体APIs(目前提供作为本地库,在version 1正式发布时,未来将被 On2 TrueMotion video codecs 取代 )以及scene graph 场景图形API。scene graph API是以前Swing提供GUI后台支持的升级部分,这里GUI作为视觉节点层创建场景和应答用户界面。scene graph模块支持效果,自由变形(放大缩小和旋转),以及动画。scene graph保留graphics object图形对象和在场景中画下它们,如果刷新事件发生,处理重画细节,缓存和许多其他类似即时模式比如Java2D。这个抽象层也允许API处理所有自动优化比如重载纹理和图形卡的元素。scene graph API和JavaFX紧密关联,但是你也可以在普通Java应用中使用它们。Sun分隔了APIs为三部分,其中两个现在已经可以使用:common profile通用部分在每个设备上对于所有的API都是可用的,包括scene graph API 和 media components媒体组件,desktop profile桌面部分代表更加类似于Swing的组件,第三个是mobile profile移动部分将在2009年发布,使得JavaFX成为一个完整的解决方案。

这里有两个明显的common API遗漏,比如这里没有Table, TabbedPane, TextArea, 和 BookPanel组件在JavaFX 预览版本中的类似替代。新的版本应该会更加完整和稳定。Marinacci说道:我们计划移动更多Swing组件到子类节点,所以你能自由混合Swing组件和图形节点,而不需要使用修改类。成为高级类(比如tree和table)只有存在于Desktop桌面中。决定开发一个新的语言,而不是跟随Adboe的领导是一个大胆的决定,但是我认为这是一个好的决定。

JavaFX Script是一个使用起来很舒服的语言,在目前应用之外也许还有其他用处,比如JavaFX数据格式(JavaFX data format FXD), project Nile的重要部分,使用JavaFX Script的子集申明格式来代表图形资源。

对于Silverlight,微软使用自己的工具包(Expression suite),直接取代Adobe的Creative Suite 工具包所提供的功能。Sun也在开发自己的工具,希望明年能够发布,可以使用Project Nile作为第一个专注点来支持流行的用Adobe的Illustrator 和 Photoshop 现存工具开发的资源。

操作系统方面,同时支持OS X和Windows,project Nile包括Adobe Illustrator 和 Photoshop CS3 插件和 SVG转换器,和一个JavaFX数据格式(JavaFX data format FXD)浏览器。一个设计者使用任何一个Adobe工具创建他们的图形资源,能够导入文件到FXD中。浏览器工具允许用户查看图形文件确认文件正确。在JavaFX script语言中,开发者能够使用多层独立的层来形成一个单一的图形资源文件。这个功能对于图形文件资源非常有用,但是对于提供用户基本组件方面仍然有些问题。Sun试图通过CSS和使用CSS的skin Swing组件来解决问题,这部分也将在JavaFX 1中正式发布。

支撑所有这一切的是Java 6 Update 10,最新的JRE,提升了部署,性能,内存使用和界面(使用新的Nimbus),所有这些帮助Swing作为桌面开发平台更加强大。不幸的是,对于开发者仍然有限制。Sun让update 10在Linux和Solaris平台上的支持和Windows一样好,而且不同版本关键性的实现比如applet quickstarter快速启动, kernel installer核心安装, 和 direct3D pipleine 管道等只在windows平台有限制。此外,Apple选择 在任何64位Intel Macs的OSX 10.5平台限制Java 6。Marinacci着重强调sun已经和Apple一起为提升Java和JavaFX在OSX上的支持而努力,但是没有提供更多细节。(Apple对Java一向不太友好,这种状况什么时候改变?)

Marinacci给出了最新的下载细节:

引用
我们每个月都有4千万到5千万的JRE下载,有几个月甚至超过一亿。95%以上下载都是JavaSE 6。


Flash和Silverlight 都完全关闭了自身所有工具的源代码,以保证开发者转换的竞争壁垒。此外,Adobe提供的很多重要的Flash代码,比如音频和视频编译码器,都是第三方版权代码,所以Adobe很难象Sun开放Java一样开放平台。虽然没有最终发布,Sun已经承诺JavaFX将作为开源软件,在GPL v.2 license许可下发布和编译scene graph APIs。这对于吸引开发者转换平台很有好处,但是JavaFX希望成为一个强大的竞争对手,还需要更多努力。
来自: infoq.com
14
2
评论 共 10 条 请登录后发表评论
10 楼 panlw 2008-11-16 12:31
绝对支持SUN!
9 楼 xgene 2008-11-16 09:47
如果运行javaFX要下载这么大的JRE,我宁可不用
8 楼 小白·菜 2008-11-16 05:15
银光?貌似微软自己都没有像样用过。
7 楼 Lemuel 2008-11-15 13:19
微软的什么东西,
好用吗?
反正我是没用过哦,
还是sun的好
6 楼 hantsy 2008-11-15 11:50
Customer JRE (java 6 update 10,大部分用户只要下载此jre 就行了,开发用户才需要下载jdk)体积和flash player 差不多。
性能方面已经没有话,web中嵌入的applet的加载速度已经不亚于flash。一些网站有swingset2 的 applet 演示,速度已经相当满意。
java 6 update 10中 applet 可以直接拖出浏览器,在桌面运行。

现在万事俱备只欠东风了,java fx 发布,将给java 注入一种新的血液。但不得不说的java fx 要加强工具开发才行,要提供可视开发工具才行,和Netbeans的GUI开发一样。

至于ms那个鸟东西,不知道有谁在用,不了解。
5 楼 sunnymoon 2008-11-14 23:53
上面提到的问题现在已经从技术层面上解决了。作为一个Java使用者或是爱好者应该知道Java update10作出了什么样的改进。
些外推广的程序不太理想,加油JAVA
4 楼 justry 2008-11-14 23:07
jre不减小的话别的都没用。要是jre能做成flash播放器那么大,别说javafx,swing也早就火了。

有道理,但是前提太多。

不如现在的模式好,不过压缩体积有必要。
3 楼 ouspec 2008-11-14 14:50
wolfbrood 写道

jre不减小的话别的都没用。要是jre能做成flash播放器那么大,别说javafx,swing也早就火了。


在java6 update 10中,Sun改进了发布,Java在线核心安装让首次使用Java的用户运行applets和Java web Start应用更快,不需要等待整个Java平台下载完成,核心kernel只有4-5MB大小下载完成就可以运行。
2 楼 wolfbrood 2008-11-14 14:45
jre不减小的话别的都没用。要是jre能做成flash播放器那么大,别说javafx,swing也早就火了。
1 楼 superdandy 2008-11-14 14:42
不太了解,现在JavaFX在客户端不需要JVM支持了么? 如果需要的话,估计下场会和applet一样的……

发表评论

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

相关推荐

  • 远程脚本加载器「Remote Script Loader」-crx插件

    Chrome扩展程序为特定网站运行远程JS脚本。 扩展为特定网站加载远程JS添加到功能。 支持语言:English

  • 在vue组件中引用js文件 封装remote-script

    引用remote-script示例 // An highlighted block Vue.component('remote-script', { render: function (createElement) { var self = this return createElement('script', { attrs: { type: 'text/javascript', src: this.src }, o

  • Remote Scripting技术的实现

    Remote Scripting (RS)老早以前我就一直在说这个技术名词了, 它到底是个什么东东了,其实RS是一种远程调用你的ASP页面 (当然是调用你指定的URL中的ASP页面了)中的某个函数或者方法 的技术。 该技术主要有三大优点: I。你能够优化你每次从客户端到服务端的一个来回数据流程 II。你能够在不同的ASP页面中重用(就是多次使用)同一个函数或则方法 III。当你连接到

  • vue自定义script标签

    Vue.component(‘remote-script’, { render: function (createElement) { var self = this; return createElement(‘script’, { attrs: { type: ‘text/javascript’, src: this.src }, on: { load: function (event) { self.KaTeX parse error: Expected 'EOF', got '}' at posit

  • 可以近视替代remote script的代码

    这个资料是以前收集的,希望能对你有所帮助。 1、page1.htm       First Name:     Last Name:       1.   2.   3.   4.       //YOU CAN EITHER USE JAVASCRIPT OR VBSCRIPT...  //YOU CAN ALSO CALL AN ASP OR HT

  • NET 世界中的远程脚本

    NET 世界中的远程脚本 Andrew ClinickMicrosoft Corporation 2001年11月12日 查看示例 service_vb.htm(英文)查看示例 service_jscript.htm(英文)查看 clsWeatherVB.asmx 的代码(英文)查看 clsWeatherJScript.asmx 的代码(英文)2000 年 3 月,我写了一篇文章,介绍

  • vue使用javascript动态创建script - 动态引入外部js文件

    // 创建script标签,引入外部文件 let script = document.createElement('script') script.type = 'text/javascript' script.src = 'http://xxx.xxx.js' document.getElementsByTagName('head')[0].appendChild(script) // 创建s...

  • zabbix remote script

    52 ### Option: EnableRemoteCommands  53 #   Whether remote commands from Zabbix server are allowed.  54 #   0 - not allowed  55 #   1 - allowed  56 #  57 # Mandatory: no  58 # Default:  59 # En

  • vs code 编辑 remote script

    vs code 编辑 remote script vs code远程编辑文件 https://blog.csdn.net/HouszChina/article/details/79850644 posted on 2018-10-16 14:51 攻城狮科学家 阅读(...)...

  • vue动态引入js

    一、先建立一个js文件

  • 在vue中引入多个script标签

    注意:vue是单文件,只能直接引入一个script标签,其他的需要去创建。 1.可以在index.html中引入,在HTML文件中可以引入多个script标签。 <head> <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=lOOL1od96eckPqskoI...

  • Remote Scripting进阶教程---调用 Remote Scripting 方法异步

    调用 Remote Scripting 方法异步 Remote scripting 向您提供了异步调用服务器方法的选择 ──当执行服务器方法时,用户的客户脚本继续运行。异步调用 remote scripting 方法使得您可以避免应用程序用户接口速度的减慢,因为您可以在执行服务器脚本的同时继续工作。 注意 如果您的应用程序需要,那么也可以同步调用服务器方法。有关详细信息,请参阅同步调用 Rem

  • Remote Scripting进阶教程---远程执行服务器脚本

    Remote Scripting进阶教程---远程执行服务器脚本  转载请尊重原创、保留相关链接本文来自多宝平台 :http://www.mbodb.com  远程执行服务器脚本 复杂的 Web 应用程序既调用客户脚本又调用服务器脚本。客户脚本经常用于对应用程序的用户接口进行编程──例如,为了动态改变 Web 页文本,对用户动作,比如双击作出反应,并执行诸如验证这样的面向客户的任务。

  • RS.GetString ()的用法

    许多ASP程序员都有过执行数据库查询,然后将查询结果用HTML表格的形式显示出来的经历吧. 通常我们是这么做的: Create connection / recordset Populate data into recordset object % > ... Loop % > 如果查询结果很多,服务器解释你的ASP script将花费大量的时间,因为有许多的Resp

  • ASP远程脚本调用

    远程脚本调用技术(Remote Scripting)的最大特点是:客户端脚本调用服务器脚本时无需刷新整个页面。一般情况  下,Web页面需要与服务器交互时必须提交表单数据,刷新整个页面。这不仅不利于改善浏览效果,也不利于提高服务器效  率。利用远程脚本调用技术(Remote Scripting),客户端脚本可以像调用本地函数一样调用远程脚本函数,从而极大地  方便了交互式Web应用的开发。使

Global site tag (gtag.js) - Google Analytics