【编者按】本文作者为资深码农 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

的确,Java存在缺陷。但是……相关推荐

  1. Java代码缺陷自动分析工具介绍

    Java代码缺陷自动分析工具介绍                                                                                     ...

  2. java 区分缺陷Defects/感染Infections/失败Failure

    java 区分缺陷Defects/感染Infections/失败Failure 缺陷Defects 软件故障总是从代码中一个或多个缺陷的执行开始. 缺陷只是一段有缺陷.不正确的代码. 缺陷可能是程序语 ...

  3. java applet 缺陷_Java Applet在最新JRE上的奇怪性能行为(7.55)

    我们使用来自签名提供商的一些专有小程序来签署一些 XML.当我们使用JRE 6u37 applet运行没有问题 – 运行速度非常快,从不冻结.但是当我们将JRE更新为7u55或更新时,它经常开始挂起. ...

  4. JAVA random 缺陷_Random在高并发下的缺陷以及JUC对其的优化

    Random可以说是每个开发都知道,而且都用的很6的类,如果你说,你没有用过Random,也不知道Random是什么鬼,那么你也不会来到这个技术类型的社区,也看不到我的博客了.但并不是每个人都知道Ra ...

  5. java设计缺陷_多个常见代码设计缺陷

    0.前言 在软件设计开发中,代码的设计都体现在:子系统与子系统.模块与模块.函数与函数之间的关系,设计越糟糕的软件,维护成本越高,质量也往往难以达标和称赞. 好的设计必定是:层次关系简洁.清晰.易维护 ...

  6. 《Thinking in Java》Fourth Edition中文版笔记

    第5章 初始化与清理 在Java(和C++)里,构造器是强制重载方法名的另一个原因.既然构造器的名字已经由类名所决定,就只能有一个构造器名. 如果传入的数据类型(实际参数类型)小于方法中声明的形式参数 ...

  7. Java异常机制的最佳实践

    文章目录 1 异常概念 1.1 历史中所谓的"异常" 解决方案 2 基本异常 简单的例子 抛出异常后 抛出异常的简单例子 异常模型的观点 异常参数 3 异常捕获 3.1 try 块 ...

  8. 认识Java Core和Heap Dump

    什么是Java Core和Heap Dump Java程序运行时,有时会产生Java Core及Heap Dump文件,它一般发生于Java程序遇到致命问题的情况下. 发生致命问题后,Java进程有时 ...

  9. Java长存!12个Java长久占居主要地位的原因

    我们很容易就会遗忘那些曾经在猿群中大热而又被各种新技术掩盖直至堙灭的技术的价值.就拿COBOL这个老猿们当年所用的神器来说,就跟条死鱼一样被现代猿基本这么形容:没价值,腥臭,过时了,对你没好处.Jav ...

最新文章

  1. Redis客户端JetCache的单机版和集群版的配置
  2. Python学习心得(二) 字典Dictionary
  3. Matlab---傅里叶变换---通俗理解(一)
  4. Fiori里前后台ETAG处理
  5. AppleScript: Handler
  6. 挤拥城市游戏android,拥挤城市crowdcity
  7. 解决方案-CMake error: error in configuration process, project files may be invalid(WindowsVS可参考)
  8. Android Service(一)概述、作用、生命周期
  9. Cisco IOS镜像文件的下载地址
  10. vue 如何对两个文本比较
  11. 练习java文档Matcher
  12. 包装设计实战案例教学
  13. 炉石传说 疯狂爆破者空场炸死2个精灵龙的概率
  14. 【C++】Clang-Format:代码自动格式化(看这一篇就够了)
  15. DBU时崩溃提示occcnt.cpp第925出错的问题解决办法
  16. DMA方式、中断方式的传输速率比较
  17. 插件化中Activity的加载
  18. java计算机毕业设计综合众筹网站源码+mysql数据库+系统+lw文档+部署
  19. 通过自定义Gradle插件修改编译后的class文件
  20. css在ios和安卓上的兼容问题(持续更新)

热门文章

  1. 一线互联网架构师筑基必备技能之Java篇,一招彻底弄懂!
  2. 专家系统 - CLIPS学习(2)depth strategy 各种指令 变量与通配符
  3. 影视剪辑副业真的可以月入过万吗?
  4. IEEE Transactions on Instrumentation and Measurement(IEEE TIM)投稿记录
  5. 防止系统内存溢出触发OOM的一个内核参数
  6. 普通人理财,掌握12个原则让你变成有钱人
  7. UNIAPP中H5微信登录
  8. react-router v6
  9. 2019款苹果一体机/笔记本安装/恢复macOS Catalina图文详解
  10. k-means+matlab 之辣鸡学算法