为何会存在这么多JVM语言?html
现存的语言提供了太过受限制的功能,要不就是功能太过繁杂,致使语言的臃肿和复杂。java
Rebel Labs的报道了概览了Java 8,Scala,Kotlin,Ceylon,Xtend,Groovy,Clojure和Fantom。可是如此多的JVM语言可供选择,咱们如何会只看中这8种选择?spring
最开始只存在Java,它是用于在JVM上编程的惟一选择。可是这个行业很早就知足了对在JVM上面编程的更多和潜在的选择需求。在脚本领域首先出现了Jython,JVM的一种Python实现,还有Rhino和JavaScript的JVM引擎,它们出如今1997年,跟着就是2000年的BeanShell和2011年的JRuby。编程
因为对于动态定制应用程序的需求,在那时脚本设施的需求很旺盛。现在,像Oracle WebLogic和IBM WebSphere这些应用服务器都使用Jython脚原本执行自动化操做,而Rhino也被绑定在Java 6上面,使得JavaScript成了JVM上的一等公民。springboot
然而,脚本设施不是惟一一个让基于JVM的可选编程语言滋生的因素。归因于Java的向后兼容性原则,为了提供一些Java或者它的标准库没有提供的新颖特性,可选语言开始出现了。Scala和Groovy就是最早提供了一些超越了Java的成功项目.服务器
咱们能够观察到一种有趣的现象:大部分新晋的编程语言都利用了静态类型。使用Scala,Ceylon,Xtend,Kotlin和Java自己的开发者都依赖于在编译时验证目标类型。Fantom在动态和静态类型之间找到黄金的平衡中点,而Groovy,尽管一开始是一种动态语言,可是现在也在其2012年的2.0发行版中也开始加入编译时的静态类型检查了。Clojure——有点Lisp的味道——是坚持使用动态类型,但惟一还收到合理拥泵的JVM编程语言,然而一些在企业的大型团队中工做的开发者择则认为这会是Clojure的一个缺陷。eclipse
运行在JVM上的新的编程语言,已经有从定制化应用程序的动态脚本语言,向着通常意义的静态的应用程序开发语言改变的趋势。编程语言
Java仍然是最常使用在JVM上的编程语言,而随着Java 8发行版的到来,Java将尝试在语法美学和多核编程方面,跟上时代的潮流。编辑器
Kotlin 是一个用于现代多平台应用的静态编程语言,由 JetBrains 开发。咱们首先要面对的问题就是其余IDE对它的支持。目前还有多数人是Eclipse用户,切换到IntelliJ IDEA环境老是困难的,但若是你想用Kotlin环境进行开发,就须要安装相关插件。安装Kotlin插件式至关容易的,但尴尬的是没对其余IDE进行支持。2017年安卓大会,Kotlin成为了Android官方语言。函数
Kotlin能够编译成Java字节码,也能够编译成JavaScript,方便在没有JVM的设备上运行。
Xtend 是一种静态类型编程语言,它能够被翻译成可读的Java源代码。它支持现存的Java风格,并且被设计得比Java自己现存的Java API工做得更好。Xtend是一个构建实用抽象的强大和灵活的工具,而且配备了先进的EclipseIDE集成。由于Xtend和Xtent都是Eclipse项目。如今有很好Xtend的Eclipse IDE开发工具,它是由Xtext语言写成的。可是若是你选择了其余的IDE,如 IntelliJ IDEA那仍是用Kotlin 吧。
Kotlin,相似 Xtend 同样,旨在提供一种更好的 Java 而非重建整个新平台。这两种语言都向下编译为字节码(虽然 Xtend 是首先转换成相应的 Java 代码,再让 Java 编译器完成繁重的工做),并且二者都引入了函数和扩展函数(在某个有限范围内静态地增长一个新方法到某个已有类型的能力)。Xtend 是基于 Eclipse 的,而 Kotlin 是基于 IntelliJ 的,二者都提供无界面构建。可以首先演变到其余 IDE 的语言有可能成为最后的赢家。
Android studio是须要安装插件的,而IntellJ并不须要,由于大多数开发者用的Android studio
入门教程:
在线工具:
重启IDEA。
写一个打印"Hello, World!"的代码,鼠标点击编辑器左上角 kotlin图标并选择 Run 'AppKt'来运行代码
println方法点进去,发现其实就是对java原生的System.out.println() 方法的封装。