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。