Scala, Groovy, Clojure, Jython, JRuby and Java ----我们的工作语言
在曾经的一封邮件中,我指出在众多改变中,最明显的一个就是:在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 ----我们的工作语言的更多相关文章
- Java 下一代: 函数式编码风格——Groovy、Scala 和 Clojure 共享的函数结构及其优势
原文地址 本文内容 命令式处理 函数式处理 函数式编程的优势 所有 Java 下一代语言都包括函数式编程结构,让您可以从一个更高的抽象层面来思考问题.然而,语言间术语的不同使得难以看到类似的结构.本期 ...
- [转载] 详述三种现代JVM语言--Groovy,Scala和Clojure
转载自http://www.tuicool.com/articles/jYzuAv和http://www.importnew.com/1537.html 在我与Martin Fowler曾经合作呈现的 ...
- Groovy轻松入门——通过与Java的比较,迅速掌握Groovy (更新于2008.10.18)
摘自: http://www.blogjava.net/BlueSUN/archive/2007/03/10/103014.html Groovy轻松入门--通过与Java的比较,迅速掌握Groovy ...
- 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 & ...
- 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 ...
- Java动态调用脚本语言Groovy
Java动态调用脚本语言Groovy 2019-05-15 目录 0. pom.xml添加依赖1. 使用GroovyShell计算表达式2. 使用GroovyScriptEngine脚本引擎加载Gro ...
- Groovy轻松入门——通过与Java的比较,迅速掌握Groovy
转自 :Groovy轻松入门——通过与Java的比较,迅速掌握Groovy (更新于2008.10.18) 在前几篇文章中,我已经向大家介绍了Groovy是什么,学习Groovy的重要性等内容,还不了 ...
- Java 调用执行其他语言的程序
以 Java 调用 Python 为例 1. 使用 Runtime 类 该方式简单,但是增加了 Java 对python 的依赖,需要事先安装python,及python程序依赖的第三方库 Runti ...
- 深入理解Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法)
作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文链接:http://zh.lucida.me/blog/java-8-lambdas-insideout-language- ...
随机推荐
- How to use transparent PNG icons with Delphi ImageList
http://www.aha-soft.com/faq/delphi-imagelist-png.htm Query: "Embarcadero Delphi ImageList does ...
- gropf
http://blog.csdn.net/yetyongjin/article/details/7717464 带-pg编译程序$ gcc -pg -o test test.c先运行程序$ ./tes ...
- jquery.lazyload.js实现图片懒载入
个人理解:将须要延迟载入的图片的src属性所有设置为一张同样尽可能小(目的是尽可能的少占宽带,节省流量,因为缓存机制,当浏览器载入了一张图片之后,同样的图片就会在缓存中拿.不会又一次到server上拿 ...
- 阻止picker.js插件弹出键盘
<input id="focus" type="text" value="" placeholder="手机号" ...
- windows系统上安装与使用Android NDK r8d(一)
什么是NDK? NDK 提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so 和 java 应用一起打包成apk.这些工具对开发者的帮助是巨大的. NDK 集成了交叉编译器,并 ...
- linux shell 正则表达式(BREs,EREs,PREs)差异比较(转,当作资料查)
转载: 在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串.在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或 替换那些符合某个模式的文本内容.许多程序设计语 ...
- EntityFramework:再谈 “如何映射聚合?”
背景 在之前的文章中<DDD:使用EntityFramework的话,如果只为聚合根设计仓储,其它实体如何处理?>,我介绍了如何映射聚合以保证其语义,当时的结论是:聚合内除了聚合根之外的实 ...
- Struts2自定义Result处理JSON
以前在采用Struts2开发的项目中,对JSON的处理一直都在Action里处理的,在Action中直接Response,最近研读了一下Struts2的源码,发现了一个更加优雅的解决办法,自己定义一个 ...
- iOS开源项目:FlatUIKit
FlatUIKit是iOS中具有扁平化风格的UI(Flat UI)组件.FlatUIKit的设计灵感来源于Flat UI和Kyle Miller.FlatUIKit中的组件是通过扩展(category ...
- ThreadLocal实现session中用户信息 的线程间共享
转载自:http://blog.sina.com.cn/s/blog_4b5bc01101013gok.html ThreadLocal并不难理解,我总结的最简单的理解就是: ThreadLocal像 ...