为什么说javafx曾经过期了? (为什么说java语言是平台无关的)
本文目录导航:
为什么说javafx曾经过期了?-程序员良许的回答
JavaFX虽开展至第9版,其成熟度无须置疑。
但是,中国软件开发畛域少数关注的是小型系统,此时B/S架构或更为适宜。
但是,关于企业级大型运行,特意是那些Web技术不可波及的畛域,如机器互联、标签打印、HMI、嵌入式运行等,JavaFX、WPF、Qt等框架则施展了关键作用。
以Oracle的EBS为例,它并不适宜驳回SSH这种Web框架来开发。
未来,估量Spring框架将关键用于开发服务端API,而客户端开发则将由Angular、JavaFX、Qt等框架独特承当。
您的担心反映出对JavaFX长处的洞察,倡导安心经常使用。
若面临求职应战,无妨思考添加咱们公司。
咱们是环球500强企业,欢迎您的添加。
经常使用JavaFX Mobile与UI的状况做奋斗(一)
本文提供了JavaFX Mobile开发的初学者指南 但是由于一切的JavaFX开发都是依赖于相反的SDK和工具 所以也很容易大体上了解JavaFX JavaFX SDK 和它的开发工具为开发JavaFX Mobile运行程序提供了移动模拟 而不是提供了一个独自的JavaFX Mobile SDK 来自Sun的Java Swing小组的Joshua Marinacci在他最近所写的博客中提到 There is no JavaFX Mobile There is only JavaFX
Java在移动设备上的普遍存在性让 write once run anywhere (WORA)前提很难在随之而来的成千盈百的移动设备屏幕上遵守 随着JavaFX Mobile 的颁布 Java社区就有了一种工具来打击这种设备UI支离破碎的状况
JavaFX的语法及与Java的配合
JavaFX 是由JavaFX Script和JavaFX Mobile组成的一种产品构架 JavaFX Script(简称JavaFX)是一种脚本言语旨在提供了愈加丰盛的用户界面 而且望文生义 JavaFX Mobile是 JavaFX 移动平台
JavaFX Script经常使用了相似JavaScript 和 Scalar Vector Graphics (SVG)一种申明语法 例如 这里有JavaFX 代码(没有 imports)是为了创立一个小的 hello world 类型的窗口 如Figure Figure Figure 所示
title: Cool Running
scene: Scene {
content: Text {
font: Font {
fill: Color GREEN
content: JavaFX is cool
如你所看到的 JavaFX与Java和/或JavaScript有相似之处 但也不尽相反
JavaFX的申明格调对比于Java Swing的编程格调是十分显著的 以下的Swing代码(还是没有imports)创立和以上JavaFX例子相反的 hello world 窗口
public class Main {
public static void main(String[] args) {
JFrame aFrame = new JFrame( Cool Running );
aFrame setSize( );
JPanel content = new JPanel();
content setLayout(new BorderLayout( ));
content setBackground(Color WHITE);
JLabel aLabel = new JLabel( Swing is cool );
aLabel setFont(new Font(null Font PLAIN ));
aLabel setForeground(Color GREEN);
content add(aLabel BorderLayout CENTER);
aFrame setContentPane(content);
aFrame setVisible(true);
setDefaultCloseOperation(JFrame EXIT_ON_CLOSE);
留意Swing的必要特色(如一行一行的陈说 控制流) 这些事用于传统的Java UI开发 Figure 显示了Java Swing代码的结果
如上所述 JavaFX既不是Java也不是JavaScript 但是JavaFX脚本可以调用Java类或是被Java类调用 例如 在接上去的选择窗口大小的JavaFX 脚本 Stage对象的大小经常使用规范的Java Math类从新写入了
title: Cool Running
width: java lang Math max(i j)
scene: Scene {
Sun公司宣称JavaFX扭转现有的Java代码的才干是与其余RIA技术 如Adobe Flex 相比之下的长处之一 另外 JavaFX Script为构建任何运行程序提供了一个平台 它被Sun公司定义的目标是用在UI开发而不是用在商业或是后端组件JavaFX Mobile构架
JavaFX运行程序依赖于运转在Java Virtual Machine (JVM)之上的JavaFX runtime 关于移动运行程序 JavaFX运转在Java ME JVM(参见Figure 和 Figure )上
目前的JavaFX API被分红两类的API元素 mon 和desktop 这些类别叫做profiles 而且它们所蕴含的元素可以在他们的profile中允许各种各样的UI需求敌对台才干 Common profile提供了很多同时允许桌面和移动设备的类 换句话说 它为一切运转在JVM(Java ME或Java SE JVM)上的平台提供了最低的个别规范的UI Desktop profile提供了更先进的才干以允许更大性能更丰盛的平台
要创立须要一切方式的要素的运行程序 开发者应该保管mon profile 要方案部署一个桌面平台或是一个个别的桌面阅读器的开发者 可以选择用desktop profile提供的API来增强他们的运行程序
设备允许和运行程序性能
所以哪些设备允许JavaFX Mobile并且怎样让你的运行程序来部署这些设备呢?目前市场上没有运行JavaFX的产品 但是 在JavaFX Mobile推出的时刻 Sun公司向很多设备制造商(包括LG Sprint Sony Ericcson)宣称曾经努力于在不久的未来提供JavaFX性能的产品
只管在详细JavaFX设备的细节上的疑问此刻还很含糊 但是Sun公司曾经明白示意JavaFX不是为一切移动设备提供的 由于一个允许Java ME的MIDP/CLDC设备并不象征着它最后也允许JavaFX JavaFX是针对那些契合Mobile Service Architecture (MSA) 平台规格(JSR )的设备 这就象征着 除了MIDP/CLDC JavaFX设备必定允许有自动手机个性的APIs 这些包括团体消息治理(PIM) 无线通信 D图形和移动多媒体
至于JavaFX 运行程序如何部署到设备上 实质上有两种选择 都是Java ME开发者经常出现的
把它嵌入到设备上
把它( over the air )发送到设备上
由于JavaFX在有MSA 的移动设备上的JavaME之上运转 各种机构应该充沛应用现有的Java ME基础设备和部署机制
构建一个JavaFX Mobile 运行程序
如今你知道什么是JavaFX Mobile了 那么你怎样构建一个JavaFX Mobile运行程序呢?这一节将说到JavaFX Mobile开发的初学者指南 它将解释如何取得所需的技术 如何去建设一个环境 还有如何开发并运转Hello World运行程序(以上所显示的)
JavaFX程序可以正式构建在Windows和Mac OS 平台上 Sun公司没有提供Linux产品 但是开发者曾经找到一个方法在Linux用NetBeans Plugin来开发 JavaFX 程序 这次讨论的最关键的就是 JavaFX Mobile运转期间和模拟器这次只为Windows 平台提供
无关Windows和Mac OS 的系统需求的详细细节可以参看 site 你必定有一个相对较新的JDK(Windows至少须要版本 降级 而Mac OS至少须要的是版本 降级 的)
除了基本的Java环境 你还须要JavaFX SDK(装置指南参看) 下载装置程序关于Windows版本大概是 MB而Mac OS是 MB 当装置SDK时 假设相应的Java SDK环境不可找到 该装置可以是你经过一些步骤来装置Java SDK(参见Figure 看一下在Windows栏上的JavaFX SDK装置)
用JavaFX上班
JavaFX SDK提供了一系列的命令行工具来启动编译 运转和测试JavaFX 程序 也为运转和测试JavaFX Mobile程序提供了一个带有SDK的移动设备模拟器
Javafxc工具与规范的javac exe工具用法相反 编译器取得JavaFX 源代码(代码保管在 fx文件中)并且把它们编译到在类( class files)中的Java 字节代码 Figure 显示了如何编译先前讨论的Hello World JavaFX 代码——之后它被保管在叫Test fx的文件中——经常使用javafxc exe 而Figure 显示了如何经常使用javafx exe口头它
在bin目录中提供的是JavaFX包和文件工具 packaging tool (javafxpackager exe)是移动开发者比拟感兴味的 由于它提供了创立一个为部署移动设备或是模拟器的mobile ready package的方法 但是 packaging tool也能用于创立browser ready或是Web Start程序 经过JavaFX代码
为了给移动设备或是模拟器部署创立Java Application Descriptor (JAD)和JAR文件 你必定至少给javafxpackager工具提供 fx文件源代码的位置(它没有被编译为 class文件)和关键类的名字或是为程序启动point class
自动状况下 javafxpackager为阅读器或是Web Start部署创立了一套部署文件 为了创立移动部署的JAD和JAR文件 你必定也要在命令行需求中经常使用–p mobile选项 –p代表 profile 而且你可以再移动或是桌面选项上显示此开关
这里是整个的来自Test fx 文件(本例子中的位置在c:\jfx 文件夹)的javafxpackager命令来创立一个mobile ready程序
javafxpackager src c:\jfx appClass Test p mobile d c:\jfx\dist
接上去 没有–p mobile选项(或是经过指定的–p desktop) javafxpackager制造了HTML JAR和JNLP文件经常使用于browser 或是Web Start口头 如Figure 所示
随着Windows版本的JavaFX SDK是一个模拟器来测试程序 你可以在位于JavaFX SDK装置目录中的 /emulator/bin次文件夹中的找到一个emulator exe 为了测试javafxpackager制造的JavaFX JAD/JAR文件 在仿真器工具上调用JAD文件 经常使用–Xdescriptor:选项来指定JAD文件来口头 见Figure
lishixinzhi/Article/program/Java/JSP//Java务工怎样样?过气了吗?
近些年的技术圈,单以计算机言语界来说,稳坐第一把太师椅的Java“或将被取代”、迎接转机点、Java名目工程师风景不再等舆论不绝于耳。
在焦虑的大环境下,一切人似乎都看起来很焦虑不安。
针对这类“唱衰论”,也不难了解。
不只,基于Java技术自身来讲,Oracle为此前版本三番五次地“晚到”,最后下信心会以六个月为期限减速Java的上架频率,可是针对开发人员来讲,做为开发环境降级速率太快,不利消费环境,也会为开发设计形成许多的兼容疑问,有形之中平白被增多了休息量,没有开发人员会快乐。
同时,新版本OracleJDK的不能收费商用疑问也让Java失去原来的许多允许用户。
据此,许多开发人员甚至用“作死”一词来形容Oracle的专制。
除开外部要素,从外界来说,2018年随之人工自动技术大火的Python、2017年谷歌宣布申明将做为Android开发一级言语的Kotlin、2016年因前端开发而变成最火爆言语的JavaScript等等均向传统式计算机言语Java介入了应战。
但与其说言语遭受了应战,说究竟还是不同言语所运行的畛域吸引的人才相互碰撞。
说究竟的唱衰论,征引一名网友的见地来道破其实质,「当今环球只要俩种计算机言语,一种是每天挨训的,一种是没有人用的。
」那么,在该观念后边实在的Java运行现况终究怎样?仿徨于Java围城之外的开发者们该怎样尽快掌握Java无关的技术?下一步,咱们将从Java开发者最宽泛的考查报告中一窥终究,希冀对大家有所裨益。
介入该考查报告的有来自环球名的Java开发者。
一、Java开发者常会运用的JDK?
截至现阶段,Java中JDK最大的赢家妇孺皆知指的是OracleJDK和OpenJDK。
不过随之JDK8和JDK11中容许和允许的变化,下一次性的Java调研统计数据或许会发生很大变化。
二、开发者经常使用的JDK占比
不过依据该汇报的数据考查报告,其中,令人隐晦的是,很难搞清楚1%的Java开发者是怎样在“无JDK”的状况下启动Java编程的。
三、首要驳回的JavaEE版本是啥?
依照数据考查报告,有38%的Java开发人员基本不运用JavaEE。
估量不少都经常使用了SpringFramework。
不过或许也有一些Swing和JavaFX开发人员。
四、首要驳回什么JVM言语?
只管如文章伊始提到的,2017年,谷歌将Kotlin当做Android官网网编程言语,“Java将被取代”观念也随之而来。
但是依据考查钻研报告结果显示,在这一疑问中,Java依然占主导位置。
而Kotlin只是2.42%的受访者表白当今将其当做工程名目开发设计的首要言语。
除此之外,它虽说超出了Scala的应用率,但依然落后于Clojure。
五、哪几个IDEJava开发人员罕用?
针对这一疑问,一名网名为program9的软件工程师示意:“IntelliJIDEA是我驳回过最好的IDE。
以前我用过Eclipse和NetBeans,可是自从我尝试了IntelliJ,我再也不会回过头来。
这样的话我感觉代表,我不青睐vi/vim编辑器。
实践上,我青睐用他们来迅速编写文件或撰写bash脚本。
我感觉一切开发者都应当具备运用vim和bash脚本的一些基础常识。
”
依照报告显示,有45%的开发人员以IntelliJIDEA为开发Java名目标IDE。
次之各自有38%的开发者驳回全收费的Eclipse和11%的受访者经常使用NetBeans。
六、首要驳回哪几种构建工具?
许多开发人员在他们的名目中经常使用不同的构建工具,因此值得留意的是,考查中的疑问是要求开发者选择经常使用的关键构建工具。
而绝大局部工程名目所有都是驳回maven构建的。
七、Java开发人员驳回哪几种CI工具?
似乎大部离开发者所等候的那般,Jenkins以高达57%的市场占有率取得CI主机工具。
此外,也有21%的开发人员尚未驳回一切别的的CI工具。
八、开发设计团队首要驳回哪些源代码治理工具?
针对有74%的受访者选择Git,契合道理也属于道理之中。
但令人惊讶的是,竟有16%的开发人员仍在驳回Subversion()。
九、首要运行哪几个测试技术?
出名软件工程巨匠在他关于软件开发专业化的讨论中曾表白道:“咱们(软件工程师)对企业系统相等于医生对人的心脏手术。
咱们都是企业挣钱或亏钱的基本要素......咱们都是掌握企业命运线的人“。
殊不知,10%的开发者回应说他们都没有驳回其余测试技术。嗯,在此祝愿岁月静好!
诚恳说,希冀这些在往常开发设计中都没有测试代码习气的10%的介入者仅仅自学的开发人员或是仍未添加上班的大在校生。
十、Java程序员会驳回哪几个非JVM言语?
如今有许多的Java运行程序前端所有都是用JavaScript编辑。
依照考查钻研报告结果显示,57%的受访者表白驳回JavaScript言语,但并不清楚他们最后驳回的是纯JavaScript还是别的其余相近TypeScript的语法超集。
次之,有56%的程序员选择SQL,也有8%的受访者表白尚未工程名目中经常使用任何别的非JVM言语。
十一、哪几个Web框架是Java开发人员的最青睐?
有40%的受访者筛选了SpringBoot架构,有36%的开发人员选取了SpringMVC,两者之间应用率差距不大。
十二、开发者驳回哪几个ORM架构?
注:该选项为多选,因此总量不等于100%。
依照汇报显示,有高于一半的开发者运用了Hibernate。
次之有23%的受访者选取了JDBC。
但严厉意义上而言,JDBC并非ORM框架,因此说选取None这一选项的开发者也有将会驳回JDBC。
十三、Java开发者驳回哪种数据库?
Oracle占有率27%,稳居榜首,随后是MySQL和PostgreSQL。
只要9%的Java开发人员驳回了MicrosoftSQL,这并不奇异,是由于这是C#的利基。
MongoDB是NoSQL数据库产品中最抢手的一种,经常使用的人数是IBMDb2数据库的5倍。
十四、哪几个运行主机开发者最经常常使用?
毫无不懂,Tomcat以41%的占比稳居第一。
十五、Java开发者多久颁布一次性新版本的代码?
令人惊叹的是,7%的开发者示意每天屡次颁布名目降级代码。
十六、Java开发者的天文位置散布?
依据考查显示,大少数的开发者位于欧洲。
十七、经常使用Java的开发者年龄散布?
最为已有二十几年历史的Java,其经常使用者大多是随同其开展生长起来的人,依据报告显示,有38%的软件开发人员年龄为30-40岁。
十八、程序员如何取得及学习无关Java技术?
关于这个疑问,这里的最大赢家应该是Google,很多程序员都会经过Google去搜查关系消息。
而碰巧大少数答案都可以在StackOverflow中找到。
十九、Java开发者为开源奉献了多少?
不论是国际还是海外的一些开发人员在空余期间都会自己构建小名目,但是全体而言,想要找到更多的期间去保养开源名目其实并不容易,依照前文的数据结果显示,38%的Java开发者年龄处于30-40岁之间,此时,日常上班以及家庭占据了他们大少数期间,很难再抽出闲暇期间。
这也是为什么有55%的人从未开源过名目。