Java快要死了的奇怪但流行的断言只能在没有证据的情况下提出,而不是因为它。

在酷孩子闲逛的论坛(Hacker News,Reddit等)中反复出现的偏见与Java语言背道而驰。 人们常常反复感叹 Java冗长而流行。 虽然我接受第一个描述符,但几乎找不到支持后者的证据。

Java当然可以很冗长。 直到一年半之前,当Java 7出现时,诸如写入文件之类的简单任务需要漫长的多步骤过程,其中充满了“仪式”。 为了应对这种普遍的冗长语言,出现了几种脚本语言,这些语言专门设计用于使开发人员摆脱冗长的语法段落来传达简单的动作:NetRexx,Groovy,Scala等。 我是Groovy的粉丝,并在我自己的项目中使用它,但是主要是因为它提供了其他功能(可选的键入,闭包,方法注入,元编程等),而不是其简洁性。

即使在Java 7出现之后,一些开发人员仍然合理地指出长类和方法名,例如MethodExpressionValueChangeListener很难键入且难以记住。 但是,我认为开发一种语言和库来构成企业计算的主要平台几乎是不可能的,而无需偶尔使用冗长的描述性名称。 就个人而言,我喜欢长而描述性的而不是短而不透明的,例如C标准库中的strstr() 。 奉献并不总是一件好事。 尽管如此,Java肯定可以减少许多任务所需的仪式量。

但是当涉及到Java的长期下降时,我几乎看不到任何支持证据。 最近的JavaOne展览明显表明,与过去两年中的任何一个相比,年度Java编码大肆宣传的规模更大,参加人数也更多。 我与之交谈的展位上的供应商一致表示(实际上不是一个例外),与去年相比,访问量,潜在客户和查询量明显增加,这本身比前一年要好。 通常,当技术开始急剧下降时,贸易展览会首先反映出正在瓦解的社区:供应商不想为参加人数减少的展会付费,而不需要参加的开发商开始将差旅预算用于其他活动相关事件。 总是有一段时间,贸易展览/会议感觉像坟墓一样,这是最终死亡螺旋即将来临的确定信号。

从技术上讲,语言在不断发展。 正如我所提到的,Java 7在语言和JVM级别都是重要的发行版,而Java 8有望在三月份发布,它看起来同样有希望。 Java 9的功能已经宣布,计划于2016年推出。与Sun在其Java托管结束时不同,Oracle坚持其每24-30个月发布Java新主要版本的目标。 Java 8将添加闭包(即lambda表达式)。 闭包减少了代码,减少了对匿名内部类的需求,并简化了类似于函数的编码。 更高的模块化(将在Java 9中完成)将有助于有效地管理工件,以及简化该发行版中语法的多项增强功能。

JavaFX继续发展,并且比Swing易于编程。 对UX的关注为增长提供了机会,其发展可能比目前预期的要多。 Oracle非常了解Java在小型设备上的作用。 (据该公司称,今天大约有30亿个手持设备运行Java。)它已将以前的JavaME与Java SE版本进行了集成,并且正在积极开发Java,以应对即将到来的小型物联网(IoT)浪潮。 。 正如Eric Bruno 在IoT上的博客文章所解释的那样,用于监视JavaOne上课情况的整个项目(从摄像头到后端实时分析)都是用Java编写的。 没有多少平台和语言提供如此广泛的范围,它们可以在小型设备上运行并支持大型企业系统。

当您添加本机开发语言为Java的Android生态系统时,很难看到在许多领域(服务器,Web,桌面,移动设备)中如此广泛使用的语言在某种程度上正在下降。

如果我们看一下JVM,则生态系统的良好运行状况就更加明显。 随着该语言的每个主要发行版,这种情况也在继续发展。 在Java 7中添加了新的字节码,包括invokedynamic ,证明了JVM的工作情况。 当Ruby的JVM实现JRuby添加了对该指令的本机支持时,其性能已经超越了基于C的Ruby VM,多年来,它一直是Ruby参考平台。 随着JRuby的性能不断提高,我完全希望它成为参考实现。 当然,它将成为大多数组织首先试用Ruby的工具。

我参加了No Fluff Just Stuff成员最近召开的SpringOne 2GX会议,很明显Groovy社区非常活跃(即使很安静)。 VMware / Pivotal继续依赖Groovy和Grails,并且语言和框架都受益于持续的投资。 我将避免使用其他主要的JVM语言,只是指出当前最受欢迎的Lisp实现是Clojure,它在JVM上运行—三年前不为人所知。

在GitHub上,这是髋关节的项目这些天圣地,Java是在#3插槽去年和今年作为首选项目的语言。 (它在JavaScript和Ruby下面的位置有些历史悠久:gitHub最初是一个主要的Ruby存储库。)在有争议的Tiobe索引上 ,Java保持其整体排名第二的位置,仅次于C。(C和Java来回排名第一)自2002年以来获得两个名额)。 在开放源码社区最大的统计信息门户Ohloh上,Java保留了总提交次数相同的百分比
在过去的七年中一直享受着它。

因此,我所看到的是一种语言,它正在不断完善和发展,拥有一个庞大而活跃的社区,它拥有一个广泛用于新语言的平台。 在我看来,这些都不像是一种衰落的语言。

链接: http //www.drdobbs.com/jvm/if-java-is-dying-it-sure-looks-awfully-h/240162390

参考: 如果Java快死了,那么来自Lviv博客Java用户组的 JCG合作伙伴 Andriy Andrunevchyn 肯定看起来非常健康 。

翻译自: https://www.javacodegeeks.com/2013/10/if-java-is-dying-it-sure-looks-awfully-healthy.html

如果Java快死了,那么它肯定看起来非常健康相关推荐

  1. java 快死了_如果Java快死了,那么它肯定看起来非常健康

    java 快死了 Java快要死了的奇怪但流行的断言只能在没有证据的情况下提出,而不是因为它. 在酷孩子闲逛的论坛(Hacker News,Reddit等)中反复出现的偏见与Java语言背道而驰. 人 ...

  2. 解析Java横死之谜,气定神闲看花开花落

    Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 原创:小姐姐味道(微信公众号ID:xjjdog),欢 ...

  3. java快排算法解读,java 快排的思路与算法

    java 快排的思路与算法 有时候面试的时候的会问道Arrays.sort()是怎么实现的,我以前根本不知道是什么东西,最近点进去看了一下.直接吓傻, //看到这个时候还是比较淡定的,可怕的事情来了. ...

  4. C++的速度比Java快2.1%:来自计算100万以内质数的实验数据对比

    为了验证C++到底比Java快多少分别用两种语言计算100万以内的质数,并记录时间 C++的程序是 clock_t start,ends; start=clock(); int i, j; for(i ...

  5. Java 已死?听听这些重量级大咖是怎么说的

    Java 已死?听听这些重量级大咖是怎么说的 在 Java 的世界发生了什么事?事实上,很多.Java 9 在 9 月将会来临,Jigsaw 终于获批,而 Java 大咖正在给我们提供关于这一编程语言 ...

  6. java比go难学_为什么Go比Java快这么多?看完这个例子就懂

    一,前言 本次小测试并不是试图说明Go是java的替代,Go lang和Java本就不是实现相同类型任务的语言 :Java是企业开发语言,而Go是系统编程语言.为什么Go比Java快这么多?看完这个例 ...

  7. java快排原理_Java数据结构与算法——快速排序

    声明:码字不易,转载请注明出处,欢迎文章下方讨论交流. 前言:Java数据结构与算法专题会不定时更新,欢迎各位读者监督.本篇文章介绍排序算法中最常用也是面试中最容易考到的排序算法--快排,包括快排的思 ...

  8. go比java快多少_Java 11快多少?

    go比java快多少 尽管大多数开发人员仍然使用Java 8 ,但Java 11还是在不久前发布的. 让我们看看其中哪个对OptaPlanner更快. 找出答案的最佳方法当然是运行OptaPlanne ...

  9. Java已死?九百万程序员说不

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

最新文章

  1. [翻译]SQL Server 2005 Analysis Services性能指南
  2. 【下载】RSA1024及RSA2048加密算法漏洞CVE-2017-7526 问题出在GnuPG加密库
  3. 线程阻塞和挂起(网络收集)
  4. 语句的输入和输出 数据类型 运算符
  5. listview嵌套gridview
  6. 神经网络与深度学习——TensorFlow2.0实战(笔记)(五)(NumPy科学计算库<矩阵和随机数>python)
  7. 这个关系国计民生的“黑盒子” 我们造出来了
  8. 高效数据序列化的工具 FlatBuffers 的初体验
  9. 使用C#和Excel进行报表开发(5)
  10. 12_python基础—函数基础(参数、返回值、调用)
  11. 【Computer Organization笔记05】运算器基本功能,定点运算器,Am2901的组成与功能,VHDL硬件描述语言
  12. node mysql sequlize_玩转Node.js-Sequelize基础
  13. 《Entity Framework 6 Recipes》中文翻译系列 (11) -----第三章 查询之异步查询 (转)...
  14. 我国5G现状:今年底或发放5G牌照
  15. 材料力学:使用matlab绘制铰支梁在多个集中力、集中力偶矩作用下的挠曲线
  16. 登录微软账户后远程桌面连接提示用户名错误
  17. FI凭证冲销(蓝冲、红冲)和反记账后台配置
  18. vrchat模型保存_VRchat下载别人的模型
  19. TD源链:让技术回归本质
  20. 如何用C#创建Windows Service

热门文章

  1. c mysql 编码_mysql编码转换 mysql编码设置详解
  2. 微型计算机使用键盘上的alt键称为,微型计算机使用的键盘上的Alt键称为_____。...
  3. 转-Redis AOF 持久化详解
  4. 公有云 私有云 混合云_混合云的承诺,收益和产品
  5. kafka数据到flume_大数据摄取:Flume,Kafka和NiFi
  6. hazelcast 使用_使用HazelCast进行Hibernate缓存:JPA缓存基础知识
  7. ios 静音模式_静音设计模式
  8. spicy命令_Spicy Spring:动态创建自己的BeanDefinition
  9. jconsole 使用_我的Wiki:使用JConsole对WildFly(或JBoss AS7)进行远程JMX访问
  10. 赞扬精心设计:基于属性的测试如何帮助我成为更好的开发人员