当前位置:首页 > > 充电吧
[导读]Java没死,事实上它拥有足够的能量让你的应用跑起来。那些对Java吹毛求疵人频繁地聚焦在一些小众问题上,总是和其他技术或者语言做些不公平的对比,这些语言并没有像Java一样得到广泛应用及长远的历史。现在的小孩都

Java没死,事实上它拥有足够的能量让你的应用跑起来。那些对Java吹毛求疵人频繁地聚焦在一些小众问题上,总是和其他技术或者语言做些不公平的对比,这些语言并没有像Java一样得到广泛应用及长远的历史。

现在的小孩都能学Java,它在Web和企业开发中广泛被采用,特别是近些年更是有了些让人惊讶的改善,一些新特性正在筹备中。即使抛开这些最新的特性,Java仍然很酷,应用的广泛性、JVM平台背后卓越的设计、清晰的语法、拥有丰富的工具和库文件构成的生态系统。Oracle说有超过9,000,000 Java 开发者(亿万的应用和设备用户),所以为什么我会听到诸如“Java正在被淘汰中”,2007年开始,Java就已经沦为“21世纪的Cobol语言”的言论?

Java平台是工程师的梦想

首先就是Java平台的存在,HotSpot JVM 是一项非凡的设计,CLR(公共语言运行库)有了大量的优化,Java应用在性能上甚至可以与C相媲美,当然还有其他可选的虚拟机供可用(如:JRockit,Zing),应你的环境有特殊的需求而定。

再者,多种基于JVM的语言使得这个平台更奇妙,如:Groovy,Jython,JavaFX,Scala,当然还不局限于以上流行的语言。Java现在包含有字节码指令:invokedynamic和java.lang.invoke包,使得JVM构建动态语言更简单,现在已经有超过50中基于JVM的语言。其中最有意思的一个是php.reboot,它的目标是保持php的哲学理念,但是移除了其中一些缺陷,而且它同样能在Android中运行。

Java是一门成熟的语言,并不适合“老人”

Java成为被批评,抱怨,诅咒的靶子,我说这门语言还没死,恰恰相反当有人抱怨Java的时候正是推广Java时机。人们总会做些奇怪的对比,好像仍然以为Java还是停留在1.4的版本,用记事本编写、需要EJB2的支持、只能用来写写简单的留言板,然后把这些用来与一个高端框架甚至是CMS来对比。

作为Java程序员,这种对比对我来说没有任何意义。更为明智的方法对比Java就得理智地选择竞争对手,看看Java vs PHP、Python 或者Ruby,或者用框架Play 对比 Ruby on Rails,SpringMVC vs Zend Framework,有鉴于此,我觉得Java似乎根本就不适合老人。

Java 冗长吗?当然

人们常说Java太啰嗦了,减缓了运行速度。批评者矛头通常指向Java的强类型静态语言特性,缺乏前沿技术在语言中,然而,我认为他们是经过深思熟虑的,而且这正是Java良好的特性。动态语言在启动一个小项目时开始会觉得很受欢迎,但是可以考虑一下,在时髦框架及合适的工具(如:考虑用IDE代替记事本)下创建一个“Hello 留言板”类型的应用,Java很简单,只是10分钟的事情,如果你想做个试验的话,使用Spring Roo 再准备一个秒表,如果有需要的话。现在就可以开始繁琐的CRUD了。

想象一下,你正为移动运营商搭建一个系统,运行客户登陆网站,你不得不在后台调用各种子系统收集大量的数据,Cool框架通常分解你的程序模块而不需要匹配任何用户模型。要更多的了解建议你看看Joel Spolsky发表的一篇文章。

Java是一门强类型静态语言

强类型静态语言有很多好处,我喜欢它简单的视觉外观,我可以粗略看一段代码就知道是做什么的,它就像是可视化的用英语反馈,语言非常易读,字母混合成单词仍然可读。其它的一些好处是有强大的IDE支持,动态语言在这点一直是弊端,大项目中有强大的IDE和工具支持是无价的。

批判者的观点在Java在读文件、转换xml或迭代集合的时候缺乏表达力,但是你可以总是创建一个方法去处理这些常用的事例,或者是用FileUtils.readLines(),java语言上表达力的缺点有很多库对其支持。在Java7中能看到一些优雅的加强型功能,如自动关闭资源、siwtch语句支持String、数字类型支持下划线(强烈建议读Coin 项目)。Java8承诺了更多的东西(最有意思的应该是闭包)。Java是不是在任何方面都是那么的完美无缺呢?当然不是,这就是Java8、Java9在准备阶段的原因。我个人也不喜欢那些不太优雅的核心API.是否的确将更多的事情留给平台而不是语言本身?java核心包括API进阶设计跨度长达20年,API的更新会破坏向后兼容性,有些设计太抽象,但有些还不够抽象,有些太零碎,有些根本不可思议。看看其竞争对手.NET,核心API做的很好,比如统一的通信API。Java8在Jigsaw项目的帮助下,会有所改变。

所以你值得拥有Java,正确地使用它,它是一门很棒的语言。堪比Klingon语言,它将继续改善并不会很快消失。不应把努力放在取代Java上,而是和其他JVM语言结合使用,这是最明智的,但是对我的下一个Pet Clinic 还是坚持使用Java。
 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

作为新成立的企业,Proximus Global首次亮相魔力象限报告即获“远见者”称号,彰显了其在 CPaaS 领域的全球规模优势及完整战略愿景

关键字: 电信 AI API

- 全球人工智能数据中心基础设施领导者Zettabyte获Lam Capital战略投资 Lam Capital与Foxconn、Pegatron和Wistron携手参与...

关键字: API TE AI 人工智能

7月20日消息,在东京举行的2025年AtCoder世界巡回赛总决赛(AWTF)中,来自波兰格丁尼亚的42岁程序员Psyho创造了历史,击败了OpenAI的定制AI模型,赢得了这场比赛。

关键字: AI 程序员

7月18日,一则“微信安卓安装包出现5处fxxk”的话题,迅速登上微博热搜,吸引了众多网友的热议和关注。

关键字: 代码 程序员

7月17日消息,据媒体报道,在AI领域动辄数十亿美元的交易中,以色列云计算巨头Wix以8000万美元现金收购单人初创公司Base44的故事,堪称一则快速致富的时代寓言。

关键字: AI 程序员

玩美 AI API:助力中国品牌无缝对接全球市场的 AI美妆 与 AI图像增强利器 上海 2025年7月14日 /美通社/ -- 全球领先的增强现实(AR)和人工智能(AI)美妆科技领导者——玩美移动(纽交所代码...

关键字: API 移动 生成式AI 开发者

数秒内实现逼真的全身穿搭换装,提升消费者购买信心并推动线上转化 上海 2025年7月1日 /美通社/ -- 全球领先的增强现实(AR)和人工智能(AI)美妆科技领导者 —— 玩美移动(纽交所代码:PERF)宣布推...

关键字: API 移动 RF 生成式AI

M5Stack PaperS3是创建能够显示来自各种类型传感器数据的信息面板的绝佳选择。但它也可以可视化从互联网上的多个来源提取的内容,如天气信息和预报,股票价格,新闻,和许多其他有用的(有时只是有趣的)数据。

关键字: M5Stack PaperS3 传感器 API

n8n是一个连接API、数据库和服务的开源工作流自动化平台。实际上,它允许非程序员使用可视化界面构建复杂的系统,同时为开发人员提供强大且可扩展的自动化设计方法。它是部署AI代理、结合触发器、语言模型(llm)和外部工具的...

关键字: n8n API 数据库 ESP32

北京 2025年6月17日 /美通社/ -- 当前,人工智能正经历从"知识库辅助"向"自主决策执行"的范式升级。早期依赖检索增强生成(RAG)的大模型方案虽能解释问题,却难以闭环...

关键字: 智能体 AI 模型 API
关闭