Java的发展趋势向好向坏?

资深评论家Andrew Binstock分析了Java的发展现状与趋势,认为Java虽然存在冗长的问题,但并未衰落。JavaOne大会的规模逐年扩大,参会人数增多。Java8引入了闭包,提升了模块性,而Java9预计将进一步完善模块性。JVM生态系统的健康发展也为Java提供了支持。
ava语言在业界的重要地位不容置疑,但是随着多种新语言的诞生和各种老语言的复兴,也由于Java自身的一些问题,在开发社区中时不时的会有唱衰Java的言论出现,那么事实到底是怎样的?每个人都有自己的看法,资深评论家Andrew Binstock 撰文分析了Java的发展现状和趋势,并看好Java的未来前景。

Andrew承认Java语言是有一些冗长,但并不认为它在衰亡——没有证据支持这一点。他说,Java是有些啰嗦。Java 7在一年半前问世,在此之前,编写一个像写文件这样简单的任务需要冗长的、多步骤的过程,这些过程含有各种“仪式”。针对编程任务普遍冗长这一状况,人们推出了几种脚本语言,旨在帮助开发者从长句法段落得到解脱进而采用简单动作进行交流。这些脚本语言包括NetRexx、Groovy、Scala等。我本人是Groovy的粉丝并将它应用在了我的项目中。但这是因为Groovy的附加功能(可选类型、闭包、方法注入、元编程等)而不是因为它的简洁性。即使是新推出的Java 7,开发者也合理的指出了有些类和方法的名字实在太长了,例如MethodExpressionValueChangeListener这个名字实在是打起来费劲记起来困难。不过,我认为想开发一种有能力支撑企业运算的主平台语言和库,要求它不出现长的、描述性的名字是不大现实的。相对于短小难懂的名字,例如C标准库中的strstr(),我个人更喜欢长的、描述性的名字。简洁并不一定是最好的。尽管冗长,Java仍然可以减少其执行很多任务时所需的“仪式”。

接着,Andrew从另一个角度分析了Java的繁荣程度。JavaOne是Java程序员的年度大会,相比较于前两年,最近的一场大会更大、更好,参与的人也更多。我和展台的供应商交流过,他们和我的观点是一致的(真的没有一个人例外),他们都表示今年的关注度都远高于去年,而去年的也比前年的要好。通常,当某种技术开始衰落时,我们最先在它的展会上发现征兆:供应商不想为参与人数少的展会花钱,开发者也需要把他们的旅行经费花在更有价值的事情上。于是,当一个展会冷清得像墓地时,我们就可以知道这种技术的死期到了。

从技术角度上讲,Andrew认为Java语言在不断地进步。

正如我所提到的,不管是在语言水平还是JVM水平,Java 7 都是一个重要的版本。而预计明年3月问世的Java 8,更值得我们期待。Java 9的一些特性已经发布,并预计在2016年发布。与Sun公司之前对Java的管理方式不同,Oracle公司坚持每24-30个月更新一次Java版本这一目标。Java 8将会加入闭包(也就是lambda 表达式)。闭包减少代码,减少需要的匿名内部类,并促进函数式编程。更好的模块性(这个将在Java 9中进行完善)将帮助有效管理部件,而几项用来简化语句的改进也将出现在这个版本中。

JavaFX仍在不断完善中,并且它比Swing语句简单的多。当今对用户体验的关注给Java带来了很大的发展机会,它的发展甚至可能比我们预期还要好。Oracle敏锐地注意到了Java在小型设备中扮演的角色。据该公司描述,当今有30亿台手持设备在运行Java。Oracle集成了前JavaME与JavaSE版本,并积极地推动Java的发展以迎对即将到来的物联网浪潮。Eric Bruno在IoT的一篇博文描述了一个用来监控JavaOne会议出勤情况的项目。这个项目从前端摄像头到后端实时分析都是用Java语言写的。Java语言既能在小型设备上运行又能支持大量的企业级系统,应用如此广泛的平台和语言并不多。

安卓的本地开发语言是Java语言,因此当我们把Android生态系统列入考虑范围后,我们更难去说这门在多领域广泛应用的语言——应用在服务器、网络、桌面、移动设备——正在处于衰落阶段。 

同时,JVM的生态系统很健康,这是证明Java没有在衰退的更有力的证据。JVM也在随着语言版本的更新而更新。Java 7中新加入的字节码(包括invokedynamic),这体现了JVM表现的有多优秀。当JVM中增加了实现Ruby、JRuby指令的本地支持后,它的性能已经远远超越了基于C的Ruby VM。而基于C的Ruby VM多年来一直是Ruby的参考平台。

Andrew最近参加了由“No Fluff Just Stuff”组织的SpringOne 2GX大会,而这个大会展现了Groovy社区有多活跃(尽管它很安静)。VMware/Pivotal 依旧依赖于Groovy和Grails,并且语言和框架都从持续的投资中受益。

在这里我不再谈其他主要的JVM语言,我只想说一点——今天最流行的Lisp实现是Clojure,它是运行在JVM上的,并且三年前它还是不为人知的。

GitHub是人们今天保存项目的“圣地”,来自GitHub的数据显示,在去年和今年的项目所选编程语言排行榜中,Java均名列第三。(它排在JavaScript和Ruby后面也是有一定历史原因的:GitHub最初主要是用来存储Ruby语言的工程的。)在较有争议的Tiobe索引中,Java排在第二,位列C之后。(自从2002年以来C和Java交替占据着一二名的位置。)Ohloh是开源社区中最大统计门户网站,过去的七年Java始终在Ohloh中保持同样的比例。

因此,Andrew认为,他所看到的是一门在不断改进和发展的语言,它有一个规模庞大并且活跃的社区,它拥有一个广泛应用新语言的平台。从这之中看不到任何这门语言在衰落的迹象。不过,受困于连续出现的安全问题,Java 8发布时间推迟到2014年。Oracle的Java平台组首席架构师Mark Reinhhold在其博客上宣布,Oracle决定将Java 8的发布时间推迟4-6个月。Reinhold提到,Oracle正在全力解决近来引发公众关注的这一波安全漏洞问题, Java 8项目组不可避免地被抽调走了很多工程师。他说,“维护Java平台的安全性,其优先级总是比开发新功能要高,所以这些工作不免会抽调一些正在进行Java 8开发的工程师。”此外他还强调,为改进代码质量并减少缺陷,Oracle“升级”了开发流程。看起来Java 8 GA(General Availability)版本的发布时间会从原计划的2013年9月推迟到2014年第一季度。这已经是该版本的第二次跳票了。Java 8最初计划于2012年底发布,后来受Java 7开发延期的影响,被推迟到了2013年9月,并且放弃了Jigsaw项目。目前这次延期也会波及到JDK 9,我们预计JDK 8将于2014年第一季度发布,而JDK 9则从2015年推迟到2016年初。InfoQ去年7月曾报道过,Java 8放弃了Jigsaw项目,而且Reinhold否定了该项目再次进入Java 8的可能性。

代码转载自:https://pan.quark.cn/s/8ce4326d996e 对于在 CentOS 7 系统中修改网卡配置文件后无法使设置生效的情况,经过实践验证,可以通过使用 nmcli 命令来进行调整。完成修改之后,需要重新启动虚拟机以使更改生效,这样操作流程即告完成。如果设置仍然无法生效,则表明虚拟机在启动过程中所获取的 IP 地址配置并非针对 eth0,此时可以对其它网卡的配置文件进行修改或将其移除。在 CentOS 7 系统中,网络配置的管理机制与早期版本存在差异,主要体现为采用了 Network Manager 服务来负责网络接口的管理。在某些情形下,尽管修改了 `/etc/sysconfig/network-scripts` 目录下的 `ifcfg-eth0` 文件,但网络配置却未能即时生效。此类问题的发生通常源于 CentOS 7 采用了不同于以往的配置读取方法。接下来将具体阐述如何借助 nmcli 命令来处理这一挑战。 以 root 用户身份登录系统并打开终端界面。nmcli 是 Network Manager 提供的命令行界面工具,它支持在命令行环境下执行网络连接的建立、编辑、查询及管理任务。针对修改 eth0 网卡配置的需求,可以遵循以下步骤进行操作: 1. 导航至 `/etc/sysconfig/network-scripts` 目录: ``` cd /etc/sysconfig/network-scripts ``` 2. 检查该目录内是否存在 `ifcfg-eth0.bak` 文件,该备份文件可能是先前调整配置时遗留下来的,若存在可能造成冲突。若发现该文件,可以选择将其删除: ``` [root@localhost netw...
代码转载自:https://pan.quark.cn/s/46fd08fb879c 网管教程 从入门到精通软件篇 ★一。★详尽的xp修复控制台指令及其应用!!! 放入xp(2000)的光盘,安装时选择R,执行修复! Windows XP(涵盖 Windows 2000)的控制台指令是在系统遭遇某些意外状况时的一种极具效用的诊断、检测以及恢复系统功能的工具。笔者确实一直期望能够将这方面的指令进行归纳,此次由老范辛苦整理了这份极具价值的秘籍。 Bootcfg bootcfg 命令用于启动配置与故障恢复(对大多数计算机而言,即 boot.ini 文件)。 带有特定参数的 bootcfg 命令仅在运用故障恢复控制台时方可使用。能够在命令行界面下运用带有不同参数的 bootcfg 命令。 用法: bootcfg /default 设定默认引导选项。 bootcfg /add 向引导清单中增添 Windows 安装。 bootcfg /rebuild 重复整个 Windows 安装流程并让用户选择需添加的项目。 注意:运用 bootcfg /rebuild 之前,应先借助 bootcfg /copy 命令备份 boot.ini 文件。 bootcfg /scan 探查用于 Windows 安装的全部磁盘并展示结果。 注意:这些结果被静态存储,并用于当前会话。若在当前会话期间磁盘配置发生变动,为获取更新的探查结果,必须先重启计算机,然后再次探查磁盘。 bootcfg /list 列示引导清单中已有的项目。 bootcfg /disableredirect 在启动引导程序中禁用重定向。 bootcfg /redirect [ PortBaudRrate] |[ useBio...
代码下载链接: https://pan.quark.cn/s/fc524f791b68 AA制程,即Active Alignment,被理解为主动对准,是一种用于确定零部件装配中相对位置的方法。在摄像头封装阶段,涉及图像传感器、镜座、马达、镜头、线路板等多个部件的重复组装,而传统的封装设备如CSP及COB等,均是依据设备设定的参数进行零部件的移动装配,因而零部件的叠加误差会逐渐增大,最终在摄像头上表现为拍照最清晰的位置可能偏离画面中心、四边清晰度不均等现象。伴随智能手机和其他高端电子产品的普及,摄像头模组的性能正日益受到重视。高分辨率、卓越的低光表现以及稳定视频输出是现代用户所期望的。在摄像头模组的制造环节,各部件的精准定位对成像质量具有决定性作用。因此,一种名为“AA制程”(Active Alignment)的前沿技术被开发出来,成为摄像头精密对准的核心技术。 AA制程,即Active Alignment,是一种在摄像头封装过程中应用的主动对准方法。该方法在多个组件装配阶段发挥作用,涵盖图像传感器、镜座、马达、镜头和线路板等部件。传统的封装方式,例如CSP(Chip Scale Package)和COB(Chip On Board),依赖于设备预设的参数进行组装,但随着组件数量的增加,误差也会累积,最终影响摄像头的表现。例如在成像质量上可能出现中心位置偏移、四角清晰度不一致等问题。 AA制程技术的核心在于实时监测与主动调整。在组装过程中,它借助先进的检测设备持续监控半成品的状态,并根据实时信息对组装部件进行精确修正,从而显著降低装配误差。通过这种技术,能够确保摄像头模组中各组件的相对位置准确无误,从而使得最终的成像效果更加稳定,特别是在中心区域和四角的清晰度上...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值