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

java 快死了

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 快死了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/346106.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python函数调用时所提供的参数可以是变量吗_Python函数一章,关于变量参数调用(何时使用*)记录,pytho,章节,可变,的,什么,时候...

关于可变参数调用def bmi(*person):for list_person in person:for item in list_person:…这个,调用时,不需要带*bmi(list1,list2…)def bmi(*person):for item in person:…这个调用时,需要带*bmi(*list1,*list2)注:…

使用这些先进的GC技术提高应用程序性能

应用程序性能是我们的首要考虑因素,垃圾收集优化是取得小而有意义的进步的好地方 自动化垃圾收集(与JIT HotSpot编译器一起)是JVM中最先进,最有价值的组件之一,但是许多开发人员和工程师对垃圾收集(GC&a…

2mysql_2.Mysql常用命令行大全

7.1 一个建库和建表的实例1drop database if exists school; //如果存在SCHOOL则删除create database school; //建立库SCHOOLuse school; //打开库SCHOOLcreate table teacher //建立表TEACHER(id int(3) auto_increment not null primary key,name char(10) not null,address…

JDK 11的一般可用性

按照计划, 今天宣布将发布 JDK 11 ,以实现一般可用性 。 本周初,Iris Clark宣布了“ JSR 384(Java SE 11)最终发行版 ”,并且在同一封邮件中引用了JSR 384的最终发行版,并引用了“ Java SE 11&a…

mysql中lead_SqlServer2012中LEAD函数简单分析_MySQL

LEAD函数简单点说,就是把下一行的某列数据提取到当前行来显示,看示例更能解释清楚,先看测试用脚本DECLARE TestData TABLE(ID INT IDENTITY(1,1),Department VARCHAR(20),LastName VARCHAR(20),Rate FLOAT)INSERT INTO TestData(Department,L…

堆栈溢出回答了我们不知道的Java首要问题

您不应该错过的堆栈溢出问题集合: 这不是秘密; 我们都使用堆栈溢出。 它掌握了生命,宇宙以及几乎所有与代码相关的内容的答案。 该平台为开发人员,工程师和其他人员提供了一个找到他们所面临问题的答案的地方,或者至少…

sequelize连接mysql_node.js通过Sequelize 连接MySQL

node.js通过Sequelize 连接MySQL一.通过koa2脚手架构建项目1.1 安装koa-generator在终端输入:$ npm install -g koa-generator11.2 使用koa-generator生成koa2项目$ koa2 HelloKoa21成功创建项目后,进入项目目录,并执行npm install命令$ cd H…

杀java_java怎么杀掉java进程

展开全部java中有调用外部程序的e69da5e887aa62616964757a686964616f31333337623431类,Runtime.getRuntime().exec("./**.exe");此函数返回的是一个Process 对象,该对象在创建后,可以对它进行 destroy () 杀掉子进程、 waitFor () …

高级java开发_我最喜欢的Java高级开发人员书籍

高级java开发我上一篇博客文章 (我对高级Java开发人员的十个最喜欢的在线资源)的想法,是由Xiaoran Wang发表的“面向高级Java开发人员的十大网站”的启发。 Wang还写了一篇名为“面向Java高级开发人员的十大书籍”的文章。 就像关于高级Java开…

Optional.isEmpty()在JDK 11 EA构建中可用

我最近发布的问题“ Optional.isEmpty()即将加入Java吗? ”是由名为“ RFR:8184693 :(选择)添加Optional.isEmpty ”的core-libs-dev邮件列表帖子提示的。 当前的JDK 11 Early Access构建 &…

camera.swf java_java调用摄像头保存图片上传功能

在项目中要用到jsp页面实现网页采集摄像头图像,并实现上传的功能,页面主要js调用的,所以可以使用多种语言php,asp等都可以使用,而且是跨浏览器的。可以整合的到SSH项目中和struts1或者struts2项目中使用方法1:下载 pri…

java list 字段去重_如何实现java8 list按照元素的某个字段去重

list 按照元素的某个字段去重DataAllArgsConstructorNoArgsConstructorpublic class Student {private Integer age;private String name;}测试数据List studentList Lists.newArrayList();studentList.add(new Student(28, "river"));studentList.add(new Student(…

cassandra使用心得_使用Cassandra和Nutch爬网

cassandra使用心得因此,您想从互联网上收集大量数据吗? 有什么比Cassandra更好的存储机制? 使用Nutch可以轻松做到这一点。 人们经常在Nutch后面使用Hbase。 这可行,但是如果您是(或想成为)Cassandra商店&…

java 北理工 教材_北理工《Java技术与应用》在线作业

北理工《Java技术与应用》在线作业可以代做所有奥鹏平台的作业、小论文、毕业论文、离线作业、考核作业、在线作业、在线测试,有需要的请联系本人一、单选题(共 20 道试题,共 40 分。)V1. Socket对象中____函数获取远程端口。A. getPort( )B. getLocalPo…

占用内存的Enum.values()方法

我是Java 枚举的忠实拥护者 。 似乎我们一直在等待获得它,但是当我们最终获得它( J2SE 5 )时,该枚举比C和C 提供的枚举要好得多,在我看来,这“ 值得等待” 。 与Java enum一样好,它也不是没有问…

Apache Spark Job的剖析

Apache Spark是通用的大规模数据处理框架。 了解spark如何执行作业对于获取大部分作业非常重要。 关于Spark评估范式的简短回顾:Spark使用的是惰性评估范式,在该范式中,Spark应用程序在驱动程序调用“ Action”之前不会执行任何操作。 惰性…

scala本地调试_如何编写自己的Java / Scala调试器

scala本地调试在本文中,我们将探讨Java / Scala调试器的编写和工作方式。 诸如Windows的WinDbg或Linux / Unix的gdb之类的本机调试器通过操作系统直接提供给它们的钩子来获取其功能,以监视和操纵外部进程的状态。 JVM充当OS之上的抽象层,它提…

java content()_Java contentEquals() 方法

全屏Java contentEquals() 方法contentEquals() 方法用于将将此字符串与指定的 StringBuffer 比较。语法public boolean contentEquals(StringBuffer sb)参数sb -- 要与字符串比较的 StringBuffer。返回值如字符串与指定 StringBuffer 表示相同的字符序列,则返回 tr…

java 加法 溢出_StackOverflow热帖:Java整数相加溢出怎么办?Java8一步搞定~

阅读本文大概需要 2 分钟。作者:Aaron_涛问题在之前刷题的时候遇见一个问题,需要解决int相加后怎么判断是否溢出,如果溢出就返回Integer.MAX_VALUE解决方案JDK8已经帮我们实现了Math下,不得不说这个方法是在StackOverflow找到了的…

通过这5个简单的技巧减少GC开销

编写代码的五种简单方法,可提高内存效率,而无需花费更多时间或降低代码可读性 垃圾回收会为您的应用程序增加多少开销? 您可能不知道确切的数字,但您确实知道总有改进的余地。 尽管自动GC是最有效的过程,但是如果它过…