文档章节

的确,Java存在缺陷。但是……

OneAPM蓝海讯通
 OneAPM蓝海讯通
发布于 2016/05/06 14:50
字数 1283
阅读 40
收藏 0

【编者按】本文作者为资深码农 Tim Spann,主要讲述 Java 让人无法抗拒的众多优点以及一些些缺陷。本文系国内 ITOM 管理平台 OneAPM 编译呈现,以下为正文。

早在90年代中期,笔者在E&Y工作时,就开始使用Java编程,那是我使用的还是Java 1.0版本。HotJava是当时唯一的书,而且只有语言规范。当时,Java是秘密的流行语言。非常前卫,比C的语法更进步,比C++更安全。可以在UNIX,Windows,Linux,Mac或set-top中运行,非常惊人。它足够强大,许多公司都使用Java编写浏览器,服务器,引擎,规则引擎,库,框架。当时的Java可谓风靡一时。现在,它的增长变缓。但是,围绕Java的开发环境(Eclipse),服务器(Hadoop生态系统),大数据,以及库的数量与规模,都是相当惊人的。

Java仍然在Android中使用(未来可能被Swift取代,但不是现在)。

JVM是强大的,运行着各种几近实时/大数据和大型的网站。数量庞大的公司仍然在企业级和Web应用中使用它。 AOL已经推出了一个非常不错的Java 8库。Spring Boot是一个很棒的快速开发Java的库。

尽管笔者所有的Spark编码都在Scala中完成,但我仍然需要Java Maven资源库。数以万计的Java库是惊人的。它们适用于Scala和JVM上的其他语言。此外,还有很多来自Lightbend 和Pivotal,强大且精简,贯彻12要素理念的微服务以及轻量级的库。

并且,很多供应商都提供Java支持:Oracle,IBM,HPE,EMC,VMWare,Hortonworks和Cloudera。新的库和出色的工具每天都在出现。如果你在GitHub搜索新的Java库和项目,你会发现很多不错的选择,涵盖了方方面面的内容。

如果你想开发物联网,Java语言到处都是。

成千上万的开发人员,数以百计的咨询公司,全球2000强中的大多数企业,都在进行Java开发,并拥有大量的Java资产。

它是拥有最新特性的最酷的语言吗?不是,但是每个Java版本都汇聚了现有语言的精髓。我喜欢Scala,Go 和Node.JS。但是,当我想写一个人人都可以阅读,能在每一个平台运行的(例如,无处不在的Tomcat)程序时,我会选用Java进行编写。每种云,每种PaaS(平台即服务),包括AWS,Google,CloudFoundry, Heroku,都支持Java。在虚拟机,服务器,笔记本电脑,Docker或Rocket容器上安装并运行Java服务器是非常简单的。使用Spring Boot,SparkJava,DropWizard,Ninja,Play等框架,你就可以编写简洁的微服务和优秀的代码。

Java是冗长的,但很容易阅读。而维护代码是编程时最重要的事情,即使你所编写的代码最终会被取代。测试代码为下一次迭代或应用发版,提供了良好的参考文档。

Java会步Cobol后尘吗?有可能,但Cobol仍在使用中。而Java至少将在企业中再流行20年。

我会使用Scala和Go,或者其他一些语言吗?当然会。Java会消失或失宠吗?短期内不会。如果Java消失了,那Android,Hadoop,IoT就得跟着消失。而实际上,你只需要一种广泛应用的语言以及会用这种语言编程的人,就够了。也许Node.JS更适合前端,Go更适合网络服务器, Scala更适合Spark。但是,对于企业而已,Java是更不容易出错的选择。虽然,的确有许多糟糕的程序员,许多混乱的代码,你甚至会指责Java没有迫使人们编写更好的代码(Scala在这方面做得更好)。但是,Java就是自由的象征。Java可以在任何平台自由运行,做任何事情,使用任何你想要的库,编写任何项目。Java仍然是大学里教授的主要语言,并且存在于很多优秀的库中,比如Stanford NLP。

笔者期待积极的讨论

Java的确存在缺陷,但这些缺陷并不妨碍它在世界上最主要的公司和系统内全天候地完成工作。

OneAPM 能为您提供端到端的 Java 应用性能解决方案,我们支持所有常见的 Java 框架及应用服务器,助您快速发现系统瓶颈,定位异常根本原因。分钟级部署,即刻体验,Java 监控从来没有如此简单。想阅读更多技术文章,请访问 OneAPM 官方技术博客

本文转自 OneAPM 官方博客

原文地址:https://dzone.com/articles/java-and-the-superfriends-stronger-than-one

© 著作权归作者所有

OneAPM蓝海讯通
粉丝 94
博文 631
码字总数 1266889
作品 0
海淀
私信 提问
java程序员为什么使用Groovy

一直听说java世界里有个Groovy,但是一直没时间去了解它究竟是一个怎么样子的。我们现在的项目里放了很多开源包,而且项目中做流程的时候,规则就是用Groovy实现的。近来闲来无事,于是开始认...

supperman
2012/11/16
25.6K
24
国外大神总结的10个Java编程技巧!总计的非常全面

这是一个国外大神20多年的经验总结出来的…… “任何可能出错的事情,最后都会出错。” 这就是人们为什么喜欢进行“防错性程序设计”的原因。偏执的习惯有时很有意义,有时则不够清晰也不够聪...

我爱编程学习
2018/05/23
0
0
My java——JVM(内存)二

续 My java——JVM(java 虚拟机)一 http://my.oschina.net/mynote/blog/113572 这里继续对java做深入的理解。 从(一)中说明了JVM就等同于操作系统,我们在学习操作系统的时候就会理解内存...

tngou
2013/03/14
485
0
Xmemcached 1.2.6.1 发布

开源Java Memcached客户端Xmemcached 1.2.6.1正式发布,这个版本的主要是做bug fix以及一些细节改进,主要变动如下: 1、修复BUG,包括: Issue 85: 当存在多个MemcachedClient的时候,JMX的...

鉴客
2010/10/18
300
0
杂谈J2EE

在开发中Php真的很快,为什么?Php的编写速度快、还有最主要的是他有丰富的开源插件支持。无论小到验证码模块还是整个文件库管理功能都有着很好的开源软件支持。Php的无论从功能到界面都是十...

胡晋
2011/10/18
4.1K
66

没有更多内容

加载失败,请刷新页面

加载更多

学习记录(day05-标签操作、属性绑定、语句控制、数据绑定、事件绑定、案例用户登录)

[TOC] 1.1.1标签操作v-text&v-html v-text:会把data中绑定的数据值原样输出。 v-html:会把data中值输出,且会自动解析html代码 <!--可以将指定的内容显示到标签体中--><标签 v-text=""></......

庭前云落
25分钟前
3
0
支撑微博亿级社交平台,小白也能玩转Redis集群(实战篇)

上篇文章《支撑微博亿级社交平台,小白也能玩转Redis集群(原理篇)》介绍了Redis集群相关原理,这篇文章将介绍Redis Cluster集群的搭建、配置,运维、扩容等具体操作 集群搭建 2018年10月 Re...

分布式系统架构
26分钟前
5
0
JVM -- 垃圾回收算法及分代垃圾收集器

Hello,今天记录下 Java虚拟机中的其中一个重点知识 --> 垃圾回收算法及分代垃圾收集器。 一起学习,一起进步。继续沉淀,慢慢强大。希望这文章对您有帮助。若有写的不好的地方,欢迎评论给建...

猫狗熊
39分钟前
3
0
ERC-777以太坊新代币标准解读

ERC777是一个新的高级代币标准,可以视为ERC20的升级版本,因此它解决了ERC20以及ERC223存在的一些问题,开发者可以根据自己的具体需求进行选型。 1、使用ERC820进行合约注册 有别于ERC20的自...

汇智网教程
今天
8
0
代理模式之JDK动态代理 — “JDK Dynamic Proxy“

动态代理的原理是什么? 所谓的动态代理,他是一个代理机制,代理机制可以看作是对调用目标的一个包装,这样我们对目标代码的调用不是直接发生的,而是通过代理完成,通过代理可以有效的让调...

code-ortaerc
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部