看来scala 2.8.0就要正式发布了
scala这个语言被很多大佬所看好,有java的性能、又有ruby的灵活,但是对于初学者又是如此的让人不敢深入,因为它里面涉及的不仅仅是语言语法的层面而却有编程语言原理的东西,要学好它不容易,但是scala又能在保持性能的前提下大大减少代码量,如果可能还是要涉猎一下的
最近scala发布了2.8.0的第三个候选版,而其此版主要是为测试而发,预计最终版发布还有2个星期,scala 2.8.0较之2.7最大的改动就是对集合库进行重写,运行速度会有更大提升
scala这个语言被很多大佬所看好,有java的性能、又有ruby的灵活,但是对于初学者又是如此的让人不敢深入,因为它里面涉及的不仅仅是语言语法的层面而却有编程语言原理的东西,要学好它不容易,但是scala又能在保持性能的前提下大大减少代码量,如果可能还是要涉猎一下的
最近scala发布了2.8.0的第三个候选版,而其此版主要是为测试而发,预计最终版发布还有2个星期,scala 2.8.0较之2.7最大的改动就是对集合库进行重写,运行速度会有更大提升
今天看到一篇关于erlang和scala这两个分布式程序设计语言的文章,且对他们之间的好坏优劣做了个比较,老纪今天把它翻译出来供大家参考, 原文在这里
在我把时间浪费在可恶的社会新闻站点的活动上时,我看到越来越多关于scala的文章,我对scala开始感兴趣的主要原因有两点:1)scala是OO(面向对象)/FP(函数编程)的混杂体,我想任何把函数编程的理念引入到面向对象的世界都是很好的一件事。2)scala的actor库严重的受到erlang的影响,scala有时作为一个伟大的构建可扩展的并行应用语言而被提及到,就像erlang一样。
有几次,我看到scala和erlang的比较资料。erlang对于并行编程是非常好的,在他的应用环境中有很好的运行记录,但是他很难成为主流,他是陌生的,也没有很多库的支持。而scala这两点都很占优,他有函数编程的语义,他的Actors库提供了erlang式的并行,他运行在jvm上且能使用所有的java库,这些组合使scala在构建并行应用上成为更好的选择,特别是在java上已经有了投资的公司。
我没有用scala编过代码,但是我对他进行了一些很好的研究,看起来它是一个非常好的语言。我认识的一些最好的程序员都称赞过它。我想scala会是java的一个很好的替代品,函数对象、类型推导、混合、模式匹配都是非常好的语言特性,而这些正是java严重缺乏的。
尽管我相信scala是一个明显优于java的伟大的语言,但scala不会取代erlang成为我构建高可用、低延、大规模并行应用的语言。scala的actors库是一个大的改善,这是java在并行编程方面必须面对的。但是它没有提供所有erlang式并行的好处,而这使erlang在并行处理方面成为一个伟大的工具。我在这些方面做了大量的研究,这些是我认为一个人在scala和erlang中做出选择时而必须考虑的几个重要不同点。
scala又升级了,目前到2.7.7RC2, 这次升级看来还是主要对Actors 库进行修正和重构。scala的actors库一直以来就是这种语言得以在并行处理这个领域(很类似erlang的进程)逐渐走热的原因之一,但是一直存在内存泄露问题,这和它使用的FJTaskRunner有关,因为这个原因lift曾经决定使用他们自己编写的actors库。现在从2.7.7RC1和RC2的发布来看,官方正在着力用ThreadPoolExecutor来解决这个问题,希望早点稳定下来,等到lift正式发布1.1时有一个稳定的scala版本与之对应,那么就可以放心的用scala+lift来实现自己的应用了。现在还是一个学习的过程。
More »老纪现在一直关注着scala-lift,它作为一种新的web框架,从众多现在流行的框架(rails、Seaside、Wicket)中汲取了好的思想并通过scala这种静态的“动态语言”组合起来,拥有了安全性强、维护性好、执行性能高等特点,越来越能在web2.0这种方式的应用中得以体现其作用。
现在发展到1.1-M5,相信离正式的1.1版发布将不远了。
老纪博客开博1个星期,主要集中在一些技术教程,今天想了想老纪博客以后应该加入些比较实用的工具和系列教程,所以一大早就爬起里在这里记录一下,脑子不好使担心如果不写下来可能会忘记。
添加实用小软件栏目
加入实用小软件的目的就是方便自己和其他朋友de 日常管理系统和工作,提高工作效率,既然定位于实用小软件,那么软件就必须体现在小和实用两个方面,估计每个软件的大小应该在2M之内,而且软件应该在版权方面要求的比较严格,不要轻易盗版呦
添加计算机语言及应用等方面的系列教程
既然是教程也就是老纪自己整理实践的教程,老纪博客的宗旨就是原创,呵呵。想了想现在老纪正在学习Scala&Lift(不知道Scala是什么东西,那么这个小结的内容就别看,省着浪费时间),那么就从这个方面开刀,提供Scala语言层面的教程和Lift实用方面的教程,让钟爱Scala&Lift的朋友少走些弯路,少一些重复的工作
添加一些自己在做项目过程中的心得,可能也是系列的
自己在做项目过程中肯定有许多心得,以前没有总结过,既然有了老纪博客,那么就有记录的地方了,比如现在老纪正做一网络软件,那么通讯的模式是什么,是多线程模式,还是采用基于事件的异步通讯模式,这里面肯定有谁优谁劣的问题,那么老纪会慢慢去实践、阐述的。