Java已经过时了
Scala 和 Kotlin 都是 为JVM而设计的 , 他人认为:Scala更强大一些
Kotlin 是Java的改良版 , 而 Scala 完全是另一种语言
Kotlin为你提供所需要的一切 , 而 Scala 为你提供你想要的一切
Every Java developer can easily pick Kotlin, not so for Scala.
有关两者语法技术方面的比较详见 Scala vs Kotlin
这并不一定意味着Kotlin比Scala更好。相反,这意味着Kotlin设计师认为Scala是一门优秀的语言。他们和其他一些开发人员只是认为Scala不是为他们的需求而设计的,Java也不是。所以他们做了Kotlin。
Java是一种专为面向对象编程而设计的语言,但并非所有东西都是对象。基本类型(如数字)表示为基本类型。在Scala和Kotlin中,一切都是对象,可以这样访问。这不一定是一个慎重的选择,因为使用引用类型而不是原语会有轻微的损失,但这是因为在JVM中您无法定义值类型。因此,要获得智能型系统的优势,您只能使用引用类型实现它。
Scala
编译速度慢
官方提供基于Eclipse的IDE,现在建议使用IntelliJ Scala 插件
Keeping developing Java software with Scala? Not really a good idea
Scala was designed to do things that Java could not.
Kotlin
可以 被编译成Java字节码 ,也可以编译成JavaScript
Google在2017年的I/O大会上宣布支持使用Kotlin语言来开发Android应用程序,和Java同为一级开发语言。
Google正式宣布,Kotlin将由一级开发语言转为第一开发语言,未来Google提供的API都会优先以Kotlin为准。当然Java和C++开发也会继续支持下去,暂时还没有放弃Java的时间表。
目前已有超过50%的专业Android开发者选择使用Kotlin,并且Kotlin目前是Github中上升最快的编程语言。
能够静态检测引用空指针
已经集成在Androidstudio 和 intelliJ IDEA , 有一个Eclipse插件
比Scala更简洁
由JetBerains开发,JetBrains是开发IntelliJ IDEA 和 PyCharm 的公司,是家私人持股公司,
,
可以在线测试代码结果
,
这就是Kotlin不同的地方,在Kotlin中任何一个非抽象类默认都是不可以被继承的,相当于Java中给类声明了final关键字。
在《Effective Java》这本书中有明确提到,如果一个类不是专门为继承而设计的,那么就应该主动将它加上final声明,禁止它可以被继承。
,
Kotlin支持基本的功能特性,如:lambda和高阶函数。
但它并不完全支持函数式编程范式。
它适用于对普通程序员有用的实用位,而不需要熟练使用计算机科学博士学位。
独立(顶级)函数很好,您不需要使实用程序类包含不同的函数
Kotlin定义了表达式而不是语句,因此您可以将变量分配给if等结果
您可以使用val而不是var轻松定义不可变数据。 不需要像final这样的修饰符
Kotlin拥有所有必需品和其他一些功能,尽管它还具有一流的安全支持和智能演员等有趣的东西
智能强制转换意味着如果您检查自动转换为新类型的变量的类型,当然如果它实际上是该类型的变量。
一般来说,Kotlin非常使用它的一组功能,而不是添加更多东西。例如,您可以重载运算符,但只有已经在语言中的基本运算符,您无法定义新的运算符。
it became the first language to be officially supported for Android development, other than Java. This is undeniably a great achievement that prove a couple of things: the Java community loves Kotlin and it is easy to introduce Kotlin to Java developers.
Xtend
先编译成 Java代码,再用Java编译器往下编译成JVM字节码
基于eclipse
C#
C#读作C Sharp。最初它有个更酷的名字,叫做COOL。
(sharp your mind)
是微软产品
Unity 3D 所用编程语言
与Java有着惊人的相似点
特点:与 COM 直接继承
NET Windows网络框架的主角
运行于 NET Framework 和 NET Core 之上的高级程序设计语言
C#使得C++程序员可以高效的开发程序,且因可调用由 C/C++ 编写的本机原生函数,而绝不损失C/C++原有的强大的功能。因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。
,
也是面向对象的语言
它使得程序员可以快速地编写各种基于MICROSOFT .NET平台的应用程序,MICROSOFT .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。
,
C#是兼顾系统开发和应用开发的最佳实用语言,并且很有可能成为编程语言历史上的第一个“全能”型语言。 看过这篇简史,不要把C#看成年轻后生了——只要是“马拉多纳”,就早晚当“球王”。
Summary
相对而言 ,为了以后的Android开发,Kotlin 是不得不学
而 Scala 学不学看个人喜好 和需求了