现在国外数控编程主要是哪种?
1数控编程及其发展
数控编程是目前CAD/CAPP/CAM系统中最能明显发挥效益的环节之一,其在实现设计加工自动化、提高加工精度和加工质量、缩短产品研制周期等方面发挥着重要作用。在诸如航空工业、汽车工业等领域有着大量的应用。由于生产实际的强烈需求,国内外都对数控编程技术进行了广泛的研究,并取得了丰硕成果。下面就对数控编程及其发展作一些介绍。
1.1数控编程的基本概念
数控编程是从零件图纸到获得数控加工程序的全过程。它的主要任务是计算加工走刀中的刀位点(cutterlocationpoint简称CL点)。刀位点一般取为刀具轴线与刀具表面的交点,多轴加工中还要给出刀轴矢量。
1.2数控编程技术的发展概况
为了解决数控加工中的程序编制问题,50年代,MIT设计了一种专门用于机械零件数控加工程序编制的语言,称为APT(AutomaticallyProgrammedTool)。其后,APT几经发展,形成了诸如APTII、APTIII(立体切削用)、APT(算法改进,增加多坐标曲面加工编程功能)、APTAC(Advancedcontouring)(增加切削数据库管理系统)和APT/SS(SculpturedSurface)(增加雕塑曲面加工编程功能)等先进版。
采用APT语言编制数控程序具有程序简炼,走刀控制灵活等优点,使数控加工编程从面向机床指令的“汇编语言”级,上升到面向几何元素.APT仍有许多不便之处:采用语言定义零件几何形状,难以描述复杂的几何形状,缺乏几何直观性;缺少对零件形状、刀具运动轨迹的直观图形显示和刀具轨迹的验证手段;难以和CAD数据库和CAPP系统有效连接;不容易作到高度的自动化,集成化。
针对APT语言的缺点,1978年,法国达索飞机公司开始开发集三维设计、分析、NC加工一体化的系统,称为为CATIA。随后很快出现了象EUCLID,UGII,INTERGRAPH,Pro/Engineering,MasterCAM及NPU/GNCP等系统,这些系统都有效的解决了几何造型、零件几何形状的显示,交互设计、修改及刀具轨迹生成,走刀过程的仿真显示、验证等问题,推动了CAD和CAM向一体化方向发展。到了80年代,在CAD/CAM一体化概念的基础上,逐步形成了计算机集成制造系统(CIMS)及并行工程(CE)的概念。目前,为了适应CIMS及CE发展的需要,数控编程系统正向集成化和智能化夫发展。
在集成化方面,以开发符合STEP(StandardfortheExchangeofProductModelData)标准的参数化特征造型系统为主,目前已进行了大量卓有成效的工作,是国内外开发的热点;在智能化方面,工作刚刚开始,还有待我们去努力。
2NC刀具轨迹生成方法研究发展现状
数控编程的核心工作是生成刀具轨迹,然后将其离散成刀位点,经后置处理产生数控加工程序。下面就刀具轨迹产生方法作一些介绍。
2.1基于点、线、面和体的NC刀轨生成方法
CAD技术从二维绘图起步,经历了三维线框、曲面和实体造型发展阶段,一直到现在的参数化特征造型。在二维绘图与三维线框阶段,数控加工主要以点、线为驱动对象,如孔加工,轮廓加工,平面区域加工等。这种加工要求操作人员的水平较高,交互复杂。在曲面和实体造型发展阶段,出现了基于实体的加工。实体加工的加工对象是一个实体(一般为CSG和BREP混合表示的),它由一些基本体素经集合运算(并、交、差运算)而得。实体加工不仅可用于零件的粗加工和半精加工,大面积切削掉余量,提高加工效率,而且可用于基于特征的数控编程系统的研究与开发,是特征加工的基础。
实体加工一般有实体轮廓加工和实体区域加工两种。实体加工的实现方法为层切法(SLICE),即用一组水平面去切被加工实体,然后对得到的交线产生等距线作为走刀轨迹。本文从系统需要角度出发,在ACIS几何造型平台上实现了这种基于点、线、面和实体的数控加工。
2.2基于特征的NC刀轨生成方法
参数化特征造型已有了一定的发展时期,但基于特征的刀具轨迹生成方法的研究才刚刚开始。特征加工使数控编程人员不在对那些低层次的几何信息(如:点、线、面、实体)进行操作,而转变为直接对符合工程技术人员习惯的特征进行数控编程,大大提高了编程效率。
W.R.Mail和A.J.Mcleod在他们的研究中给出了一个基于特征的NC代码生成子系统,这个系统的工作原理是:零件的每个加工过程都可以看成对组成该零件的形状特征组进行加工的总和。那么对整个形状特征或形状特征组分别加工后即完成了零件的加工。而每一形状特征或形状特征组的NC代码可自动生成。目前开发的系统只适用于2.5D零件的加工。
LeeandChang开发了一种用虚拟边界的方法自动产生凸自由曲面特征刀具轨迹的系统。这个系统的工作原理是:在凸自由曲面内嵌入一个最小的长方块,这样凸自由曲面特征就被转换成一个凹特征。最小的长方块与最终产品模型的合并就构成了被称为虚拟模型的一种间接产品模型。刀具轨迹的生成方法分成三步完成:(1)、切削多面体特征;(2)、切削自由曲面特征;(3)、切削相交特征。
JongYunJung研究了基于特征的非切削刀具轨迹生成问题。文章把基于特征的加工轨迹分成轮廓加工和内区域加工两类,并定义了这两类加工的切削方向,通过减少切削刀具轨迹达到整体优化刀具轨迹的目的。文章主要针对几种基本特征(孔、内凹、台阶、槽),讨论了这些基本特征的典型走刀路径、刀具选择和加工顺序等,并通过IP(InterProgramming)技术避免重复走刀,以优化非切削刀具轨迹。另外,JongYunJong还在他1991年的博士论文中研究了制造特征提取和基于特征的刀具及刀具路径。
特征加工的基础是实体加工,当然也可认为是更高级的实体加工。但特征加工不同于实体加工,实体加工有它自身的局限性。特征加工与实体加工主要有以下几点不同:
从概念上讲,特征是组成零件的功能要素,符合工程技术人员的操作习惯,为工程技术人员所熟知;实体是低层的几何对象,是经过一系列布尔运算而得到的一个几何体,不带有任何功能语义信息;实体加工往往是对整个零件(实体)的一次性加工。但实际上一个零件不太可能仅用一把刀一次加工完,往往要经过粗加工、半精加工、精加工等一系列工步,零件不同的部位一般要用不同的刀具进行加工;有时一个零件既要用到车削,也要用到铣削。因此实体加工主要用于零件的粗加工及半精加工。而特征加工则从本质上解决了上述问题;特征加工具有更多的智能。对于特定的特征可规定某几种固定的加工方法,特别是那些已在STEP标准规定的特征更是如此。如果我们对所有的标准特征都制定了特定的加工方法,那么对那些由标准特征够成的零件的加工其方便性就可想而知了。倘若CAPP系统能提供相应的工艺特征,那么NCP系统就可以大大减少交互输入,具有更多的智能。而这些实体加工是无法实现的;
特征加工有利于实现从CAD、CAPP、NCP及CNC系统的全面集成,实现信息的双向流动,为CIMS乃至并行工程(CE)奠定良好的基础;而实体加工对这些是无能为力的。
2.3现役几个主要CAD/CAM系统中的NC刀轨生成方法分析
现役CAM的构成及主要功能
目前比较成熟的CAM系统主要以两种形式实现CAD/CAM系统集成:一体化的CAD/CAM系统(如:UGII、Euclid、Pro/ENGINEER等)和相对独立的CAM系统(如:Mastercam、Surfcam等)。前者以内部统一的数据格式直接从CAD系统获取产品几何模型,而后者主要通过中性文件从其它CAD系统获取产品几何模型。然而,无论是哪种形式的CAM系统,都由五个模块组成,即交互工艺参数输入模块、刀具轨迹生成模块、刀具轨迹编辑模块、三维加工动态仿真模块和后置处理模块。下面仅就一些著名的CAD/CAM系统的NC加工方法进行讨论。
UGII加工方法分析
一般认为UGII是业界中最好,最具代表性的数控软件。其最具特点的是其功能强大的刀具轨迹生成方法。包括车削、铣削、线切割等完善的加工方法。其中铣削主要有以下功能:
、PointtoPoint:完成各种孔加工;
、PanarMill:平面铣削。包括单向行切,双向行切,环切以及轮廓加工等;
、FixedContour:固定多轴投影加工。用投影方法控制刀具在单张曲面上或多张曲面上的移动,控制刀具移动的可以是已生成的刀具轨迹,一系列点或一组曲线;
、VariableContour:可变轴投影加工;
、Parameterline:等参数线加工。可对单张曲面或多张曲面连续加工;
、ZigZagSurface:裁剪面加工;
、RoughtoDepth:粗加工。将毛坯粗加工到指定深度;
、CavityMill:多级深度型腔加工。特别适用于凸模和凹模的粗加工;
、SequentialSurface:曲面交加工。按照零件面、导动面和检查面的思路对刀具的移动提供最大程度的控制。
EDSUnigraphics还包括大量的其它方面的功能,这里就不一一列举了。
STRATA加工方法分析
STRATA是一个数控编程系统开发环境,它是建立在ACIS几何建模平台上的。
它为用户提供两种编程开发环境,即NC命令语言接口和NC操作C++类库。它可支持三轴铣削,车削和线切割NC加工,并可支持线框、曲面和实体几何建模。其NC刀具轨迹生成方法是基于实体模型。STRATA基于实体的NC刀具轨迹生成类库提供的加工方法包括:
ProfileToolpath:轮廓加工;
AreaClearToolpath:平面区域加工;
SolidProfileToolpath:实体轮廓加工;
SolidAreaClearToolpath:实体平面区域加工;
SolidFaceToolPath:实体表面加工;
SolidSliceToolPath:实体截平面加工;
LanguagebasedToolpath:基于语言的刀具轨迹生成。
其它的CAD/CAM软件,如Euclid,Cimitron,CV,CATIA等的NC功能各有千秋,但其基本内容大同小异,没有本质区别。
2.4现役CAM系统刀轨生成方法的主要问题
按照传统的CAD/CAM系统和CNC系统的工作方式,CAM系统以直接或间接(通过中性文件)的方式从CAD系统获取产品的几何数据模型。CAM系统以三维几何模型中的点、线、面、或实体为驱动对象,生成加工刀具轨迹,并以刀具定位文件的形式经后置处理,以NC代码的形式提供给CNC机床,在整个CAD/CAM及CNC系统的运行过程中存在以下几方面的问题:
CAM系统只能从CAD系统获取产品的低层几何信息,无法自动捕捉产品的几何形状信息和产品高层的功能和语义信息。因此,整个CAM过程必须在经验丰富的制造工程师的参与下,通过图形交互来完成。如:制造工程师必须选择加工对象(点、线、面或实体)、约束条件(装夹、干涉和碰撞等)、刀具、加工参数(切削方向、切深、进给量、进给速度等)。整个系统的自动化程度较低。
在CAM系统生成的刀具轨迹中,同样也只包含低层的几何信息(直线和圆弧的几何定位信息),以及少量的过程控制信息(如进给率、主轴转速、换刀等)。因此,下游的CNC系统既无法获取更高层的设计要求(如公差、表面光洁度等),也无法得到与生成刀具轨迹有关的加工工艺参数。
CAM系统各个模块之间的产品数据不统一,各模块相对独立。例如刀具定位文件只记录刀具轨迹而不记录相应的加工工艺参数,三维动态仿真只记录刀具轨迹的干涉与碰撞,而不记录与其发生干涉和碰撞的加工对象及相关的加工工艺参数。
CAM系统是一个独立的系统。CAD系统与CAM系统之间没有统一的产品数据模型,即使是在一体化的集成CAD/CAM系统中,信息的共享也只是单向的和单一的。CAM系统不能充分理解和利用CAD系统有关产品的全部信息,尤其是与加工有关的特征信息,同样CAD系统也无法获取CAM系统产生的加工数据信息。这就给并行工程的实施带来了困难。
3数控仿真技术
3.1计算机仿真的概念及应用
从工程的角度来看,仿真就是通过对系统模型的实验去研究一个已有的或设计中的系统。分析复杂的动态对象,仿真是一种有效的方法,可以减少风险,缩短设计和制造的周期,并节约投资。计算机仿真就是借助计算机,利用系统模型对实际系统进行实验研究的过程。它随着计算机技术的发展而迅速地发展,在仿真中占有越来越重要的地位。计算机仿真的过程可通过图1所示的要素间的三个基本活动来描述:
建模活动是通过对实际系统的观测或检测,在忽略次要因素及不可检测变量的基础上,用物理或数学的方法进行描述,从而获得实际系统的简化近似模型。这里的模型同实际系统的功能与参数之间应具有相似性和对应性。
仿真模型是对系统的数学模型(简化模型)进行一定的算法处理,使其成为合适的形式(如将数值积分变为迭代运算模型)之后,成为能被计算机接受的“可计算模型”。仿真模型对实际系统来讲是一个二次简化的模型。
仿真实验是指将系统的仿真模型在计算机上运行的过程。仿真是通过实验来研究实际系统的一种技术,通过仿真技术可以弄清系统内在结构变量和环境条件的影响。
计算机仿真技术的发展趋势主要表现在两个方面:应用领域的扩大和仿真计算机的智能化。计算机仿真技术不仅在传统的工程技术领域(航空、航天、化工等方面)继续发展,而且扩大到社会经济、生物等许多非工程领域,此外,并行处理、人工智能、知识库和专家系统等技术的发展正影响着仿真计算机的发展。
数控加工仿真利用计算机来模拟实际的加工过程,是验证数控加工程序的可靠性和预测切削过程的有力工具,以减少工件的试切,提高生产效率。
3.2数控仿真技术的研究现状
数控机床加工零件是靠数控指令程序控制完成的。为确保数控程序的正确性,防止加工过程中干涉和碰撞的发生,在实际生产中,常采用试切的方法进行检验。但这种方法费工费料,代价昂贵,使生产成本上升,增加了产品加工时间和生产周期。后来又采用轨迹显示法,即以划针或笔代替刀具,以着色板或纸代替工件来仿真刀具运动轨迹的二维图形(也可以显示二维半的加工轨迹),有相当大的局限性。对于工件的三维和多维加工,也有用易切削的材料代替工件(如,石蜡、木料、改性树脂和塑料等)来检验加工的切削轨迹。但是,试切要占用数控机床和加工现场。为此,人们一直在研究能逐步代替试切的计算机仿真方法,并在试切环境的模型化、仿真计算和图形显示等方面取得了重要的进展,目前正向提高模型的精确度、仿真计算实时化和改善图形显示的真实感等方向发展。
从试切环境的模型特点来看,目前NC切削过程仿真分几何仿真和力学仿真两个方面。几何仿真不考虑切削参数、切削力及其它物理因素的影响,只仿真刀具工件几何体的运动,以验证NC程序的正确性。它可以减少或消除因程序错误而导致的机床损伤、夹具破坏或刀具折断、零件报废等问题;同时可以减少从产品设计到制造的时间,降低生产成本。切削过程的力学仿真属于物理仿真范畴,它通过仿真切削过程的动态力学特性来预测刀具破损、刀具振动、控制切削参数,从而达到优化切削过程的目的。
几何仿真技术的发展是随着几何建模技术的发展而发展的,包括定性图形显示和定量干涉验证两方面。目前常用的方法有直接实体造型法,基于图像空间的方法和离散矢量求交法。
3.3直接实体造型法
这种方法是指工件体与刀具运动所形成的包络体进行实体布尔差运算,工件体的三维模型随着切削过程被不断更新。
Sungurtekin和Velcker开发了一个铣床的模拟系统。该系统采用CSG法来记录毛坯的三维模型,利用一些基本图元如长方体、圆柱体、圆锥体等,和集合运算,特别是并运算,将毛坯和一系列刀具扫描过的区域记录下来,然后应用集合差运算从毛坯中顺序除去扫描过的区域。所谓被扫过的区域是指切削刀具沿某一轨迹运动时所走过的区域。在扫描了每段NC代码后显示变化了的毛坯形状。
Kawashima等的接合树法将毛坯和切削区域用接合树(graftree)表示,即除了空和满两种结点,边界结点也作为八叉树(octtree)的叶结点。边界结点包含半空间,结点物体利用在这些半空间上的CSG操作来表示。接合树细分的层次由边界结点允许的半空间个数决定。逐步的切削仿真利用毛坯和切削区域的差运算来实现。毛坯的显示采用了深度缓冲区算法,将毛坯划分为多边形实现毛坯的可视化。
用基于实体造型的方法实现连续更新的毛坯的实时可视化,耗时太长,于是一些基于观察的方法被提出来。
3.4基于图像空间的方法
这种方法用图像空间的消隐算法来实现实体布尔运算。VanHook采用图象空间离散法实现了加工过程的动态图形仿真。他使用类似图形消隐的zbuffer思想,沿视线方向将毛坯和刀具离散,在每个屏幕象素上毛坯和刀具表示为沿z轴的一个长方体,称为Dexel结构。刀具切削毛坯的过程简化为沿视线方向上的一维布尔运算,见图3,切削过程就变成两者Dexel结构的比较:
CASE1:只有毛坯,显示毛坯,break;
CASE2:毛坯完全在刀具之后,显示刀具,break;
CASE3:刀具切削毛坯前部,更新毛坯的dexel结构,显示刀具,break;
CASE4:刀具切削毛坯内部,删除毛坯的dexel结构,显示刀具,break;
CASE5:刀具切削毛坯内部,创建新的毛坯dexel结构,显示毛坯,break;
CASE6:刀具切削毛坯后部,更新毛坯的dexel结构,显示毛坯,break;
CASE7:刀具完全在毛坯之后,显示毛坯,break;
CASE8:只有刀具,显示刀具,break。
这种方法将实体布尔运算和图形显示过程合为一体,使仿真图形显示有很好的实时性。
Hsu和Yang提出了一种有效的三轴铣削的实时仿真方法。他们使用zmap作为基本数据结构,记录一个二维网格的每个方块处的毛坯高度,即z向值。这种数据结构只适用于刀轴z向的三轴铣削仿真。对每个铣削操作通过改变刀具运动每一点的深度值,很容易更新zmap值,并更新工件的图形显示。
3.5离散矢量求交法
由于现有的实体造型技术未涉及公差和曲面的偏置表示,而像素空间布尔运算并不精确,使仿真验证有很大的局限性。为此Chappel提出了一种基于曲面技术的“点矢量”(pointvector)法。这种方法将曲面按一定精度离散,用这些离散点来表示该曲面。以每个离散点的法矢为该点的矢量方向,延长与工件的外表面相交。通过仿真刀具的切削过程,计算各个离散点沿法矢到刀具的距离s。
设sg和sm分别为曲面加工的内、外偏差,如果sg
总体来说,基于实体造型的方法中几何模型的表达与实际加工过程相一致,使得仿真的最终结果与设计产品间的精确比较成为可能;但实体造型的技术要求高,计算量大,在目前的计算机实用环境下较难应用于实时检测和动态模拟。基于图像空间的方法速度快得多,能够实现实时仿真,但由于原始数据都已转化为像素值,不易进行精确的检测。离散矢量求交法基于零件的表面处理,能精确描述零件面的加工误差,主要用于曲面加工的误差检测。
本回答由提问者推荐
java语言的国内外研究现状和发展趋势
下文来自CSDNOracle对Sun的收购引发了人们对Java未来的一丝担心,Oracle能否继续保持Java的开放性,面对Ruby、Python或PHP等一批轻量型语言的崛起,Java能否继续保持其在开发领域的领导地位?14年前,Sun公司的一位营销天才把一门试验性的跨平台语言由象征踏实的Oak(橡树),改名为香气四溢的Java(咖啡)时,可能他没有想到这门语言能有后来的辉煌。事实上,如果现在Sun想为这门语言改名,以准确体现其在计算机行业的地位,似乎Oak更形象。今天,虽然Java语言并非真正意义上的遍地开花,但它已经出现在众多场合和设备中,而且它享有运行稳定、设计精良的美名;Java代码也许无法主导所有计算机或所有平台,但它离成为通用语言已近在咫尺。Java之父詹姆斯戈斯林(JamesGosling)在Oracle主办的OpenWorld大会上登台发言时阐述了这一点。他调出Javafx幻灯片,上面是一连串统计数字:超过8.5亿个具有Java功能的桌面机和大约100亿个具有Java功能的设备。实际上,Java虚拟机在电子设备中司空见惯:电子书阅读器Kindle、蓝光磁盘播放机和智能电话(包括不太智能的手机)等。iPhone(手机上网)应用程序可以在成千上万部iPhone上运行,但Java嵌入在26亿部手机上,从不太智能、20美元就能买到的手机,到最新一代的黑莓和Android手机无一不包。请戈斯林到OpenWorld大会上演讲,只是Oracle掌门人拉里埃利森(LarryEllison)希望向工程师们一再保证这门语言前途光明的手段之一。Oracle想要并购Sun,但它仍得等待欧洲监管部门批准这一决策。美国政府已开了绿灯,但欧洲政府官员由于担心MySQL的发展还没有同意这一起交易。戈斯林和Sun董事长麦克尼利(McNealy)都表示,一旦并购工作完成,Java会从Oracle得到比以往更多的关注和资源。从近期来看,埃利森传达的信号也许不是很重要,因为如今Java已成气候,要改变发展方向也并不容易。当然,也有一些人认为,Oracle的商业模式太不一样了,所以它必然会对Java生态系统的每个部分进行重大变化。总体来说,每拿出一个Java可能变化的理由,就有同样充足的理由表明Oracle可能还是希望保持现状。企业级应用是主战场Java最先在服务器端找到了自己的位置,未来这个领域仍是有望看到Java虚拟机的主要地方。对Oracle的所有产品来说,大型服务器也是主要的安身之处,所以出现这对组合自在情理当中。虽然PHP编程员青睐MySQL,但对数据密集型的企业应用来说,许多最要紧的项目还是使用基于Oracle的架构封装而成的Java,这种情况应该不会很快发生变化。Sun称,GlassFish应用服务器每个月的下载量超过100万人次,Tomcat等比较旧的平台仍然很常见。由于Java这项技术备受推崇、运行速度快、真正跨平台,大型企业(如银行和保险公司)对Java开发人员求之若渴。不过,Java不再被认为是最新最酷的语法。一些编程员对静态类型语言的结构满腹牢骚,纷纷改用更新颖或更简单的语言,比如Ruby、Python或PHP。现在许多较简单的Web应用程序就是用这些语言开发而成的,因为它们编写的代码容易修改,能快速建立原型。然而,这些使用便捷的新语言常常离不开Java:Ruby开发人员常常使用JRuby(基于Java实现的Ruby语言),因为Java虚拟机能够更出色地处理繁重任务、释放多个线程。Jython(基于Java实现的Python语言)也相似。Java现在正在加入一些最新的编程技术,以此遏制这些新语言大举入侵。Grails明显模仿了RubyonRails的许多简单的说明性模式;Grails这种框架利用名为Hibernate的数据库中间件,把Groovy等脚本插件结合起来。Groovy本身添加了众多的动态选项便于代码解释,同时可以直接链接至Java应用编程接口(API)的任何部分。甚至不需要考虑Python或Ruby,因为Groovy凭借一种精巧、现代的语法,让Java编程员可以使用似乎变化无穷的庞大库和底层稳若磐石的虚拟机。走上移动之路Java手机的数量(估计约26亿部)委实惊人,因为市面上许多最简单的手机里面都运行Java平台微型版(JavaME)。这让Wattpad.com等公司得以构建在整个第三世界都能顺畅运行的文档阅读平台。不过,运行Java的智能电话数量相对少一点。iPhone的巨大成功激励许多人重新学习ObjectiveC,这门语言让编程员对于内存使用等一些系统问题提高了控制能力。Java为编程员隐藏了大部分底层问题,这是个优点,但前提是不需要管理内存等资源,因为要是垃圾收集出现一个小失误,有些游戏就运行不了。可遗憾的是,因为电池续航时间是极其重要的一个因素,智能电话需要比几乎其他任何平台更严格的资源管理。不过,Java编程员仍然很吃香,因为黑莓手机在其新平台上继续采用JavaME:它为手机的情景模式(profile)添加了支持触摸屏和方向感应器的功能。而Android存在不可预知的因素。由于谷歌开放了Android的使用,许多手机厂商搭上Android这辆彩车。谷歌的Android建立在开源ApacheHarmony及其类上,而不是建立在Sun开发的Java开发工具包(JDK)和JavaME上。对使用Eclipse编写代码的人来说,它们看上去几乎一模一样。在其他许多情况下也无关紧要,因为Android开发使用了很多XML表单,但如果这两套开发框架离对方渐行渐远,这种分裂可能会变成大问题。收复桌面阵地大多数人仍然认为Java在桌面端从来没有取得成功,这是过去。如今,Java正在缓慢而稳步地渗入到现代操作系统的各个角落。虽然用Swing编写的标准应用程序因试图定位在每个平台的最基本部分而继续遭殃,但是有了像JavaFX和WebStart这些比较新的开发平台和框架,就有可能通过Web有效地部署软件。本地平台可处理Java归档(JAR)的所有缓存工作。只要点击链接,有时偶尔随后点击几下授予权限的对话框,软件就可以安装及更新,还可以随时运行。JavaFX仍然是一个名副其实的未知因素。图形功能现在可与Adobe的Flash相竞争;计算引擎可支持大部分的JavaAPI,但这门语言是一门奇怪的混合语言,融合了正宗Java、JavaScript及其他的一些标记语言。其代码比正规的Java简单,所以Java编程员又要学习新的东西。不过,对极具互动性的桌面工具而言,新的动画类也许值得花时间学习。WebStart正在继续慢慢改进通过浏览器直接把软件部署到桌面的功能。抢占嵌入式领域Java还在人们最预料不到的地方茁壮成长。虽然C编程人员可能从来不会承认Java虚拟机巧妙处理存储区、快速运行的功能,但Java在非智能手机、机顶盒、嵌入式芯片、Kindle及其他低功耗设备取得的成功表明:Java虚拟机完全有能力在嵌入式应用方面一展身手。Java的普及性还帮助编程人员从大平台迁移到小平台。虽然为大型机开发企业级应用软件改成开发小型嵌入式代码并不简单,但Java标准大大简化了这种转变,这让其他许多工具自叹弗如。Java程序包也在变得越来越小巧。戈斯林用尘埃来形容一台硬币大小、能够识别Java的计算机。Javacard是面向这类小型程序包的一种虚拟机和API,它即将迎来3.0版,这个里程碑式版本将增添网络连接功能。尽管这些小不点还没有小得足以放入到人的眼睛中,但直接与互联网通话的功能却让它们显得极具诱惑力。合作伙伴会分道扬镳?所有开发人员的最大担心是:要是Oracle收购Sun的交易尘埃落定,会出现什么样的利益冲突变化?Oracle是靠收取大笔的软件许可费成长壮大,其软件可运行在客户想要购买的任何硬件上。而另一方面,Sun通常是免费赠送软件,然后通过销售服务器赚到一些钱。这些经销策略也许不会立即发生变化,因为惯性实在太太了,但谁也不知道将来Oracle会做出怎样的决策。一些人认为,Oracle过去在收取大笔许可费方面屡试不爽,只会鼓励埃利森对Sun采取类似的手法。也许Oracle的销售团队眼下就在垂涎这个机会:针对Java以前免费的地方开始逐步提高许可费。为了避免重新编写Java平台企业版(JavaEE)应用软件,许多企业很可能宁可支付每个CPU100美元、200美元甚至100万美元的费用。批评人士指出,Oracle很容易开发出新版Java虚拟机,针对不同的市场推出不同的性能级别。桌面虚拟机可能保持免费,Oracle甚至可能会掏钱请电脑厂商来推销Java和JavaFX,而处理极限多线程方面的性能改进可能会收取非常高的费用。从用户身上捞钱有好多法子,许可费相比之下往往便宜得多:要是让拒不服从的编程员先学习一门新语言,然后重新编写代码库,那成本高多了。但也有人认为,Oracle也许不会采用这一招。一名接近Sleepycat(这家开源数据库公司在2006年被Oracle收购)的消息人士表示,Oracle已把技术队伍的规模扩大了约一倍,而所有双许可模式原封不动。软件仍然采用开源或商业许可证这两种形式。如果Oracle像Sleepycat那样对待Java,社区许可及其他方案仍然会跟以前一样免费、随处可得,同时有更多的工程师来改进代码。与其他各大Java合作伙伴的长期关系方面仍存在更深层的问题。谷歌继续支持ApacheHarmony,这个代码超过125万行的项目似乎一心要破坏Sun作为世界中心的地位。IBM输掉了争夺Sun的竞标战,现在发现竞争对手Oracle的实力更强劲了。IBM设计了Eclipse开发工具,可能也会开始把Java平台带往另一个方向。其他合作伙伴的态度比较激烈。SAP公司首席技术官VishalSikka一再要求Sun发布Java社区进程(JCP),着重提到了Oracle在2007年提出的方案:将控制权交由一家开放、独立、与厂商中立的标准组织,标准组织的所有成员在机会均等的前提下参与。虽然Oracle对相关细节基本保持缄默,但可以认为,这家公司会因为从Sun承袭过来的一些观点而重新赢得尊重。但是,尽管其他合作伙伴可能会参与恫吓的举动,但他们可能会考虑度的问题,因为大家其实是相互牵制的,任何过激的行为都极可能会被阻止,因为大家都认识到一次编写、到处运行理念具有的优势。如果为Android手机编写的代码无法很容易地迁移至索尼蓝光播放机或Glassfish服务器,另一门语言就有机会应运而生。实际上已经有多家公司在编写工具包,让用户可以在iPhone上轻松运行RubyonRails或Python软件。另外,许多这些比较新的语言可能会成为不可小觑的竞争对手,而暗斗过多只会帮助它们攻城掠地。现在有几十种非常好、知名度小一点的开源程序包,只要忠实的爱好者稍加转换,通常就能把它们移植到每个平台上。比如,Python已经是一些科学领域的主要语言,谷歌选择Python、而不是Java作为其应用引擎(AppEngine)支持的第一种语言。虽然IBM、Oracle和谷歌在争夺主导权的竞争中可能会相互排挤,但它们必须认识到:所有人都受益于标准化,而不是垄断。要是谁敢过于排挤别人、企图一手控制Java,其他厂商可能会奔向其竞争对手。Java也开应用程序商店?Java代码库仍相当有凝聚力、相对标准化,这个事实惹得众人猜测:Sun(如果合并案完成,还有Oracle)到底会怎样利用Java的普及性来大发其财,又不提高许可费、挤压每个人?如果有人开发出一种面向整个Java生态系统的应用程序商店(AppStore),从而像销售面向iPhone的应用程序那样销售用Java编写的小组件(widget)它们可以在桌面、手机、蓝光播放机或可以使用Java的其他任何平台上运行,将会怎么样?最近已经有了面向Android手机的一批数量可观的应用程序,Sun也在谋划一家Java商店,好让人们只需把应用程序拖到桌面上,或者只要再编一点代码,就可以把各应用程序结合起来,从而让它们可以在Java世界的几乎每个角落里运行。不过,处理截然不同的屏幕和用户界面还是个挑战。设想一下这种场景有多吸引人:开发人员编写的某个应用程序在Android手机上运行着,他在办公桌面上处理任务,回到家后在客厅的蓝光播放机上顺畅运行。把Java应用程序带到坐沙发的人面前甚至有点出人意料,因为Java这门语言在被叫做Oak的早期阶段,本意就是运行在机顶盒上。这种远景将依赖于Java平台的最大优点:普及性和跨平台的稳定性,也许这些优点会帮助Java给其发明者带来滚滚收入。
新西兰留学计算机专业就业前途怎么样?
javascript学好了有什么好的发展前景?
你应该先搞清楚javascript是什么!在网页中嵌用JavaScript语言!在客户端实现一些操作减轻服务器后台负担…………他的本质是一门语言!!仅此而已!!!