该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-10-23
最后修改:2009-10-26
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-10-24
|
|
返回顶楼 | |
发表时间:2009-10-25
fineqtbull 写道
好的。我虽然不怎么加入圈子,但经常也去看看。 这次会上讲PPT时间有点不够,但这个PPT中提到的每句话都是仔细想过的,强调的是Scala中一些概念的一致性,比如,有关Scala的文章中常提到“值都是对象”,准确地说,应该是“值都是对象的实例”,还有,“操作、函数、参数可以互相转化,都是值,都是实例的对象”,这其实是Scala可以扩展的关键,也是OO+FP能够比较好地在Scala中结合的关键。 还有就是Scala的类型体系,看上去复杂,其实是为了修正Java中类型体系的一些问题,并且带了了一个JVM上的完整一致的类型体系。弄清了几个概念后,也就不觉得复杂了,反倒是比Java的简单。 总之,我看到的Scala的简单性都是由其一致性带来的,虽然设计者为了开发人员的习惯作了一点点妥协,但还是非常坚持他的设计理念。 Martin不是一个简单的人,为了在JVM上实现他的设计理念,其后台的具体实现其实是相当复杂和困难的,但他坚持并不断实践,有时候甚至不惜把原来的实现推倒重来,终于在2.6以后有了我们现在看到的相当理想的结果。 后台的具体实现复杂到什么程度呢?这么说吧,Scala的编译器从词法分析到最后产生JVM的Bytecode大约要做24遍扫描。这也是为什么Scala的IDE比较难做的原因之一,因为,IDE必须考虑用户键入时的反应速度,但同时提供尽可能多的信息,那么对于IDE来说,扫描的步骤什么时候做、做到哪一步,都必须仔细权衡。比如为了判断debugger的断点应该设置到哪个位置(类名、源文件名、行号等),可能需要做到第13遍扫描才能得到全部的信息,但那样的话,性能就很差了。还有就是Java/Scala混合的项目中的互可见性,也需要做一系列的映射,这些工作也不能等到全部扫描完成才做。 新的NetBeans插件中,我比较好地解决了大部分问题,并且,至少在此刻,我可以说,这个插件是现在世界上最好的Scala IDE。 另外,我刚发了NetBeans 6.8beta下的版本,配合Scala-2.8.0 snapshot的,详情请看: http://wiki.netbeans.org/Scala68v1 |
|
返回顶楼 | |
发表时间:2009-10-25
dcaoyuan 写道 好的。我虽然不怎么加入圈子,但经常也去看看。
Scala圈子的目的就是提供je上Scala爱好者的交流场所,欢迎经常来看看 。 对于你所提到的一致性我也颇有同感,与Java相比,虽然由于Scala融合了OO和FP带来了不可避免的复杂度,但是理解了这些Java所欠缺的一致性之后,自我感觉在很大程度上能够提高学习(特别是统一概念加深理解方面)效率,并且就语言本身而言也多了一分美感。 dcaoyuan 写道 后台的具体实现复杂到什么程度呢?这么说吧,Scala的编译器从词法分析到最后产生JVM的Bytecode大约要做24遍扫描。
强!要是JVM方面也能做相应的改善就好了,不知Java7上会不会好一点,比较担心扫描过多影响编译速度。 dcaoyuan 写道 另外,我刚发了NetBeans 6.8beta下的版本,配合Scala-2.8.0 snapshot的,详情请看:
http://wiki.netbeans.org/Scala68v1 scala-2.8我个人还没有用过,不过强烈期待中,特别是scala.swing方面的改善。非常高兴,世界领先的Scala IDE是由中国人开发的,如有需要,很乐意为她的发展和推广做一些力所能及的支持。 |
|
返回顶楼 | |
发表时间:2009-10-25
讲一次多少钱啊,能透露下么……
|
|
返回顶楼 | |
发表时间:2009-10-26
PDF第11页,不是不写错了?
“如果Tsub或Tsup是T的子类或超类,C[Tsub]或C[Tsup]都不是List[T]类” List[T] 是不是应为 C[T] ? 注,我第一次看Scala,也可能是我理解问题了 |
|
返回顶楼 | |
发表时间:2009-10-26
很好的资料,对Scala还不是十分了解
|
|
返回顶楼 | |
发表时间:2009-10-26
starfeng 写道 PDF第11页,不是不写错了?
“如果Tsub或Tsup是T的子类或超类,C[Tsub]或C[Tsup]都不是List[T]类” List[T] 是不是应为 C[T] ? 你提的对,是我写错了。新上载的文件改过来了,谢谢。 |
|
返回顶楼 | |
发表时间:2009-10-26
fineqtbull 写道 强!要是JVM方面也能做相应的改善就好了,不知Java7上会不会好一点,比较担心扫描过多影响编译速度。
scalac的编译速度比javac肯定要慢,但还是可以接受的,我的一个项目从java改为scala后,编译时间大约为原来的3-4倍 |
|
返回顶楼 | |
发表时间:2009-10-26
草原兄,听了你的课,对scala有点兴趣,有没有入门的推荐教程?
|
|
返回顶楼 | |