[转帖]综述:Scala是Java未来的后继者_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3168 | 回复: 0   主题: [转帖]综述:Scala是Java未来的后继者        下一篇 
周逸涵
注册用户
等级:少校
经验:871
发帖:83
精华:0
注册:2013-7-8
状态:离线
发送短消息息给周逸涵 加好友    发送短消息息给周逸涵 发消息
发表于: IP:您无权察看 2013-7-11 9:41:02 | [全部帖] [楼主帖] 楼主

作为Java未来的后继者之一,Scala最近受到了大量关注。Groovy的创始人James Strachan和James Gosling、Charles Nutter一样,是Scala的拥趸,后两人分别是Java的创造者和JRuby的核心开发者。

James首先解释了他不喜欢的Java特性:

Java 是一个令人惊讶的复杂语言(规范有600页,但是有人的确对Java的特性心领神会了吗?),表现在它的自动装箱 (在这里隐藏了可爱的NPE),原生类型,讨厌的数组(它们不是collection,而且由于缺少多态性,对于通用数据结构和bean特性需要很冗繁的 语法,并且仍然没有闭包(即使在JDK7中),导致了大量令人烦躁的try/catch/finally的语句,除非你使用包含了全新自定义API的架 构,但是这样会导致语言更加复杂。Java甚至有类型引用,不过我们还是不要使用它来存储任何typing/reading。

尤其是没有Java7(即使在Snorcle之后它显得更加有意义 - 我想知道javac是否会被jdkc取代?我猜javac已经达到其巅峰;而且闭包看起来不会带来任何的简化或者进步),这个问题表现得更加严重。

他看起来已经被Scala深深影响了,尤其是当他说到如果那个时候有可用的Scala,那么他不会一开始就去发明Groovy:

老实说,如果在2003年就有人给我介绍了Martin Odersky Lex Spoon和Bill Venners的Programming in Scala,那么我很可能不会创造Groovy。

当然,也有一些Scala的特性他不是那么热衷:

对于任何一门语言来说,都有你喜欢和不喜欢的东西。Scala给我的早期印象的确看起来它在尝试使用一点更多的符号,但是你不需要全部使用。如果你喜欢,你可以仍然使用Java风格的OO。但是我想未来为“特殊物体”使用符号来避免和标识符冲突。

我 不是嵌入import语句的狂热粉丝,使用_root_.java.util.List来区分从相对import 中得到的“全局”import。我更喜欢子前缀,例如,如果你从com.acme.cheese.model.Foo导入,那么导入 model.impl.FooImpl的时候,我喜欢使用一个相对前缀,也就是说,导入_.impl.FooImpl将会使事情简化,而且和Scala在 简化和删除冗余代码(导入java.util._是多种类型的)保持一致。

任何时候和Java相比,James都认为Scala好太多了:

Java的不足可以比作大量的毛疣,那么同样在Scala中,这些地方正是表现了Scala的美、简化和强大。

Adam Bien在他的博客中指出,即使是Java之父James Gosling,看起来也是对Scala喜爱有加:

在一个社区(java.net booth)举办的和James Gosling对话会议上,一个与会者问了一个非常有意思的问题:“除了Java,现在你会把哪种语言运行于JVM之上?”。答案是惊人地快速简洁:Scala。

Charles Nutter,JRuby核心开发者,他也认为和Groovy和JRuby相比,Scala更可能替代Java:

我 必须说Scala看起来是是现在Java王座的继承人。其他在JVM的语言看起来不可能有Scala那样的能力来取代 Java,Scala背后的推动力是无可置疑的。Scala还不是一个动态语言,但是它有许多流行动态语言的特性,例如它的灵活富类型系统,稀疏和简洁的 语法,函数式语言和面向对象范式的完美结合。Scala的缺点:“太复杂”或者“太丰富”,但这些可以通过编码规范很好避免,从而构建更健壮的编辑器和工 具,以及指导多语言开发者明白如何更好地使用Scala。Scala是JVM上静态语言的重生,它也像JRuby那样延伸平台的性能,这些都是Java做 不到的。

Scala现在已经是今年JavaOne的一个主题,有一些相关的议程,而且在大会的最后一天甚至会有一个开放的讨论。

你怎么想呢?Scala是不是在将来最合适取代Java的语言?或者,Java是最后一门巨型语言(LBL)?




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论