Java最大的优势真的在于英超新闻_虎扑足球吗♬♪♩♭♪の?

以下讨论只针对PC端和移动端♧♡♂♀♠♣♥❤☜。

Java最大的优势真的在于英超新闻_虎扑足球吗♬♪♩♭♪の?以前是☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,但现在已经不是了♧♡♂♀♠♣♥❤☜。

Java最大的优势真的在于英超新闻_虎扑足球吗♬♪♩♭♪の?

有英超新闻_虎扑足球需求的仅仅是客户端应用☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,而不是服务端♧♡♂♀♠♣♥❤☜。例如桌面应用☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,你的客户可能是Windows用户☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,也可能是Linux用户☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,这时候如果不想多投入成本对各个平台进行适配☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,那么Java所谓的”Write once, run everywhere”就显得异常光彩♧♡♂♀♠♣♥❤☜。然而今天☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,整个软件世界都在向B/S应用倾倒(嵌入式除外)☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,即使要做客户端英超新闻_虎扑足球☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,QT等第三方框架远远比Swing更强大☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,Java在桌面应用领域基本被淘汰已经是不争的事实了☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,而当初Java引以为豪的Applet也早已销声匿迹♧♡♂♀♠♣♥❤☜。如果说客户端Java还有一点优秀的话☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,那只有Android了♧♡♂♀♠♣♥❤☜。Android最初确实靠JVM屏蔽了不同硬件设备之间的区别并取得了巨大的成功☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,但在今天☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,Android L中ART模式的出现也即将颠覆这一情况☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,况且Google还可能会想用自家的Go语言取代Java成为Android平台的第一语言♧♡♂♀♠♣♥❤☜。所以在客户端☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,Java几乎完败♧♡♂♀♠♣♥❤☜。

服务端应用不需要英超新闻_虎扑足球♧♡♂♀♠♣♥❤☜。做一个Web服务器☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,我想没有哪家公司今天用Linux☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,下个月就换Windows吧♬♪♩♭♪の?如果仅仅是更换Linux发行版☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,如从Debian到Fedora☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,本质上讲其Linux内核是不变的☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,因此像C++这样纯编译类型的语言已经没什么问题♧♡♂♀♠♣♥❤☜。如果做游戏服务器☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,我想几乎都会选择Linux而不是Win平台♧♡♂♀♠♣♥❤☜。Java的英超新闻_虎扑足球优势的实用性其实已经被大大弱化了☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,可以说在实际应用中并不明显☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,在一般情况下几乎感知不出Java还能英超新闻_虎扑足球这个特性♧♡♂♀♠♣♥❤☜。作为三大商用JVM之一的JRockets是只有编译器的JVM☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,即应用启动时会将字节码全部编译为本地机器码☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,这其实就很大程度上摒弃了英超新闻_虎扑足球☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,而追求性能♧♡♂♀♠♣♥❤☜。

今天☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,Java最大的优势在于其庞大而完善的生态系统♧♡♂♀♠♣♥❤☜。 一门编程语言是否能流行☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,主要是由其生态系统决定的♧♡♂♀♠♣♥❤☜。Java生态系统的完善性主要体现在以下几个方面:

Java拥有世界上数量最多的程序员♧♡♂♀♠♣♥❤☜。你说他们是农民也好☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,但数量放在那里☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,最明显的效果就是公司招人的时候会比较容易地招到Java程序员♧♡♂♀♠♣♥❤☜。试想如果你想要做一套软件☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,你有一个很棒的技术方案需要用C++☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,Scala或Ruby等语言实现☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,但招不到足够的人手☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,那么计划多半泡汤♧♡♂♀♠♣♥❤☜。这时候你的应用Java也能做到☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,并且很轻松就能招到足够的人☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,那么你选择Java的可能性就要大一些♧♡♂♀♠♣♥❤☜。

Java拥有大量的第三方类库♧♡♂♀♠♣♥❤☜。假如你想解析HTML☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,用C/C++这类语言恐怕多半只能自己编写解析算法库了☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,而如果是Java☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,你可以非常轻松地在Github上找到JSoup☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,使用Maven导入依赖后分分钟就搞定HTML♧♡♂♀♠♣♥❤☜。为此还有一句讽刺Java的话是:“我们不生产代码☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,我们只是Github的搬运工♧♡♂♀♠♣♥❤☜。”这句话从字面上看是很有道理的☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,但却忽略了对软件生产效率的提升所带来的巨大价值♧♡♂♀♠♣♥❤☜。对于软件的开发☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,公司的唯一成本其实就是“人头费”☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,每减少一个月开发时间☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,就能帮助公司节省几十万几千万的研发成本♧♡♂♀♠♣♥❤☜。

Java拥有功能强大的IDE♧♡♂♀♠♣♥❤☜。 Eclipse☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,通过插件几乎可以满足你开发的任何需求♧♡♂♀♠♣♥❤☜。它虽然有些慢☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,但你可以通过JVM调优来提高程序的流畅度☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,千万不要使用默认的JVM参数♧♡♂♀♠♣♥❤☜。不过☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,IntelliJ Idea已经完全超越Eclipse了☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,Idea的智能程度几乎可以媲美Win平台下的VS♧♡♂♀♠♣♥❤☜。我是那类离了Vim就活不下去的人☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,在这两款IDE中都有Vim插件从而让我愉快地存活下去♧♡♂♀♠♣♥❤☜。

Java拥有很多杀手级应用♧♡♂♀♠♣♥❤☜。 不必多说☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,Spring, Struts, Hibernate, Hadoop, Tomcat, JBoss等等♧♡♂♀♠♣♥❤☜。

Java的语法特性很少♧♡♂♀♠♣♥❤☜。对☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,这也是一项优点♧♡♂♀♠♣♥❤☜。C++相比C添加了大量特性☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,学起来费事不说☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,用起来还会降低代码可读性☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,其实是费了工夫不讨好♧♡♂♀♠♣♥❤☜。当今世界对编程语言的要求是语法简单☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,代码可读☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,对性能已经是退而求其次了☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,因此才诞生了Python, Ruby这样的编程语言♧♡♂♀♠♣♥❤☜。有很多人批评Java语法写起来很臃肿☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,我承认这一点☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,但事实是☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,编程语言从来都不是因为语法臃肿而被淘汰的☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,决定其生死的是生态系统♧♡♂♀♠♣♥❤☜。对于批评者☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,引用知乎的一句话:”动态类型一时爽☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,代码重构火葬场”

Java的性能已经足够高了♧♡♂♀♠♣♥❤☜。 Sun/Oracle的HotSpot JVM内置的JIT编译器在运行时对字节码已经做出了非常大的优化努力☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,服务端应用启动后对JVM进行足够的”预热”☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,并给出合理的启动参数即可♧♡♂♀♠♣♥❤☜。如果不是对性能十分敏感的系统类应用☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,Java已经足够快了♧♡♂♀♠♣♥❤☜。有一种简单可行的方法可以形象地看出这点☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,在JVM启动参数中添加+XX:PrintCompilation可以看到JIT编译器的忙碌♧♡♂♀♠♣♥❤☜。当今世界对软件的需求量越来越大☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,在性能可接受的情况下☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,开发效率才是第一位的☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,这也是Python这类动态脚本语言流行的主要原因♧♡♂♀♠♣♥❤☜。

以上仅做客观分析☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,并不想引起语言战争♧♡♂♀♠♣♥❤☜。毕竟☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,没有最好的语言☂ ☃ ☄ ★◀ ◁ ☀ ☁ ,只有最适合某种项目的语言♧♡♂♀♠♣♥❤☜。引用黑格尔的一句话:”存在即合理♧♡♂♀♠♣♥❤☜。”


上一篇: 程序员:为什么选择Java♬♪♩♭♪の?

下一篇: 清明,共同缅怀牺牲的扶贫人

分享到: 更多