在曾经的一封邮件中,我指出在众多改变中,最明显的一个就是:在java领地上的JVM上使用其它流行的语言的发展变得越来越快。一些老的和新的创建的基于JVM的语言---JRuby 和 Jython ,Java风格的语言---Groovy 和Scala 和brand ,新语言---Clojure 和 Kotlin,这些语言为我们提供了选择------得到JVM的性能和可靠性却能够使用一种不同的语法。

在一个理想的世界里全部的开发人员都能够自己选择的自己的语言。

现实情况是,作为开发人员,我们被适合(我们的)语言和支持这个工具的公司实际上使用什么语言所约束。首先。你选择的适合你的领域的语言---能让你的工作高速easy,更重要的是对于你们的非功能化需求比如:性能能够变得高速easy。其次,没人愿意成为使用简单的编辑器来处理编码过程-苦力(码农)。是的,我知道,我们都能够使用Vim和Emacs或者流行的IDE比方IntelliJ或Eclipse等,来easy和迅速地完毕大片代码的重构(你好TDD!

)。第三。现实的情况是,在我们的位置上(职位上)非常少能指导(决定)我们的雇主选择什么语言。

学习一种不断上升人气的语言意味着你在未来有很多其它的就业机会,但是雇主却决定着语言的选择权。

其实。很多公司夸耀他们使用最新的语言,由于它使他们更具吸引力来招聘他人。

你差点儿不能不关注微博和推特上的人们在大喊大叫“我们的公司已经被新的语言改变了开发流程”但是这个场面是真的么?

在Indeed.com上有一个实用的业界认可的我们能够继续工作的趋势图。在Tiobe爷爷辈的语言图中,但是在以下两点上却没实用。a) 
它没有提供足够的信息 b)它是简单的游戏。—是的我们知道是Delphi干的(yes
Delphi dudes)。如今。在你抱怨之前,我知道使用这种(处理方式)从完美和科学的角度是远远不够的还有非常长一段路要走。但除非你想做一个纵向研究。询问全部的公司。他们使用的是什么?相信他们的答案都是真实的而不是营销的上的噱头,来说明它可能是足够好来解释(语言的流行)

那么,这能告诉我们关于行业怎样看JVM的主要语言:Java。Groovy。Scala。Clojure。Jython和JRuby *。当我们一览(关注)全部在工作中涉及到的语言所占比例的时候会发生什么呢?

嗯,好……非常明显,在业界虽然关于其它语言有的喧嚣之声不绝,Java仍然是大量存在。在就业市场上差点儿占有3.5%的工作都对Java的知识有要求。我们都知道。Java是一个行业重量级的,但有点惊讶,相比其它语言是一个难以分辨的线。

总计都近0线,他们就须要一些大量的,指数性增长才干開始威胁到Java。

当你拿走Java会发生什么情况

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvanVzdGluX2JrZHJvbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

这是一个有趣的多。首先,Jython是比其它Java真的接受了JVM上的第一语言。Groovy開始回升2007,非常快成为替代语言第一,毫无疑问。而由Grails,Clojure和JRuby从来没有得到太多的支持。虽然在过去18个月左右開始的上升。我认为最有趣的一点是,在Scala的接受近期有所添加。

眼下排Jython后排第三,梯度表明,它将非常快进入第二。把Scala和Groovy置于一个相相应的基准,来比較他们的增长速率。我们就会看到例如以下。

于是我们能够看到,Scala最终超越了Groovy的增长率。于是我们能够说,当你想温习一下旧的Groovy课本也许看了一眼Scala, 但你能做的最好的事情就是保持你的Java水平(在这些语言中)顶层的位置。

业内人士关心的是Java是JVM语言的老大什么时候到头呢?只是看起来是在路上(被代替的路上)。

Scala, Groovy, Clojure, Jython, JRuby and Java ----我们的工作语言的更多相关文章

  1. Java 下一代: 函数式编码风格——Groovy、Scala 和 Clojure 共享的函数结构及其优势

    原文地址 本文内容 命令式处理 函数式处理 函数式编程的优势 所有 Java 下一代语言都包括函数式编程结构,让您可以从一个更高的抽象层面来思考问题.然而,语言间术语的不同使得难以看到类似的结构.本期 ...

  2. [转载] 详述三种现代JVM语言--Groovy,Scala和Clojure

    转载自http://www.tuicool.com/articles/jYzuAv和http://www.importnew.com/1537.html 在我与Martin Fowler曾经合作呈现的 ...

  3. Groovy轻松入门——通过与Java的比较,迅速掌握Groovy (更新于2008.10.18)

    摘自: http://www.blogjava.net/BlueSUN/archive/2007/03/10/103014.html Groovy轻松入门--通过与Java的比较,迅速掌握Groovy ...

  4. Scala 安装 Exception in thread "main" java.lang.VerifyError: Uninitialized object exists on backward branch 96

    windows下载安装完最新版本的Scala(2.12.4)后,终端如下错误 C:\Users\Administrator>scala -versionException in thread & ...

  5. logstash报错 :backtrace=>["org/jruby/RubyIO.java:1457:in `write'", "org/jruby/RubyIO.java:1428:in `write'"

    报错: [2019-04-16T15:54:07,827][FATAL][logstash.runner ] An unexpected error occurred! {:error=>#&l ...

  6. Java动态调用脚本语言Groovy

    Java动态调用脚本语言Groovy 2019-05-15 目录 0. pom.xml添加依赖1. 使用GroovyShell计算表达式2. 使用GroovyScriptEngine脚本引擎加载Gro ...

  7. Groovy轻松入门——通过与Java的比较,迅速掌握Groovy

    转自 :Groovy轻松入门——通过与Java的比较,迅速掌握Groovy (更新于2008.10.18) 在前几篇文章中,我已经向大家介绍了Groovy是什么,学习Groovy的重要性等内容,还不了 ...

  8. Java 调用执行其他语言的程序

    以 Java 调用 Python 为例 1. 使用 Runtime 类 该方式简单,但是增加了 Java 对python 的依赖,需要事先安装python,及python程序依赖的第三方库 Runti ...

  9. 深入理解Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法)

    作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文链接:http://zh.lucida.me/blog/java-8-lambdas-insideout-language- ...

随机推荐

  1. 解决 Operation must use an updateable query

    在asp.net 开发环境下,用jet 4.0连接access数据库, 有时会产生Operation must use an updateable query,这是由于相关用户mdb文件没有Modif ...

  2. Linuxg挂载

    在linux操作系统中, 挂载是指将一个设备(通常是存储设备)挂接到一个已存在的目录上. 我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上, 然后通过访问这个目录来访问存储设备 ...

  3. Javascript:拦截所有AJAX调用,重点处理服务器异常

    背景 上篇文章http://www.cnblogs.com/happyframework/p/3241063.html介绍了如何以AOP的形式处理服务器异常,这让服务器端的编程逻辑变的非常整洁,本文介 ...

  4. iOS开发 贝塞尔曲线UIBezierPath(2)

    使用CAShapeLayer与UIBezierPath可以实现不在view的drawRect方法中就画出一些想要的图形 . 1:UIBezierPath: UIBezierPath是在 UIKit 中 ...

  5. TCP常用网络和木马使用端口对照表,常用和不常用端口一览表

    [开始-运行- CMD , 输入 netstat -an 然后回车就可以查看端口] 端口: 服务:Reserved 说明:通常用于分析操作系统.这一方法能够工作是因为在一些系统中“”是无效端口,当你试 ...

  6. jenkins错误413 Request Entity Too Large<

    jenkins-nginx--sonar1/sonar2

  7. SQL Server会话KILL不掉,一直处于KILLED /ROLLBACK状态情形浅析[转]

    本文将为您描述SQL Server会话KILL不掉,一直处于KILLED /ROLLBACK状态情形浅析,教程操作方法: 今天遇到一个很奇怪的情况,发现一个会话异常,这个会话只是在执行一个简单的存储过 ...

  8. GPGPU OpenCL 获取设备信息

    在使用OpenCL编程中,需要对GPU设备的底层理解,这样才能更好的进行代码优化. 比如计算单元CU数量,每个CU的执行单元PE数量,每个CU中的共享内存大小等等.只有了解了这些才能更好的使用共享内存 ...

  9. TensorFlow进阶(四)---名称域和共享变量

    变量作用域 tensorflow提供了变量作用域和共享变量这样的概念,有几个重要的作用. 让模型代码更加清晰,作用分明 变量作用域域 通过tf.variable_scope(<scope_nam ...

  10. leetCode 86.Partition List(分区链表) 解题思路和方法

    Given a linked list and a value x, partition it such that all nodes less than x come before nodes gr ...