Come on,快学Scala!——《快学Scala》试读

    当前技术发展那么快,作为一个搞技术的,一年学习一门编程语言(当然啦,这里是学会,应用框架,并不是需要十分精通),多睁开眼睛看看,培养自身学习兴趣,人们对新鲜事物总是有浓厚的兴趣的,所以前段时间就开始接触scala这门新兴语种了。顺便读了读这本《快学Scala》,感觉不错,很明快的一本书。

大学时开始搞校园开发,java出身的,情感难割舍,总是选择都会和java沾边的,也曾经买了ruby/rails书籍,也是浏览完,没有深入学习,毕竟工作中难以应用到,抛不开java世界,就选择jvm上面能跑的,就看中了jrubygrovvy,打算学习grovvy的,也把gorvvy in action看的差不多了,感觉确实比java有不少进步。但看到了grovvy创始人James Strachan的博客《scala将取代java/javac?》……

从长久来看,谁能取代javac 呢?当然,像RubyGroovyPython,还有JavaScript这些动态语言在过去几年里很受欢迎——很多人喜欢他们。 

我认为将来可能替代javac的就是Scala 。它实在太让我印象深刻了。我甚至可以诚实地说,如果有人在2003年把Martin OderskyLex Spoon以及Bill Venners写的那本《Programming in Scala》拿给我看了的话,那我根本就不会再去发明Groovy了。

此篇文章对scala兴趣马上就上来了,业余时间就着手开始学习。目前scala在开发语言排行榜中还比较靠后,看起来现阶段确实不怎么流行。scala是面向对象的又是函数式的编程语言,对于我这种面向对象教条比较深的人,学一下函数式编程方式确实也开了眼界。

scala是兼容java的,能调用java现有的类库,也能编译成classjvm上面跑(当然也有.net环境的变体啦)。

scala更简洁,相比如下代码:

Java里:

class MyClass {

  private int index;

  private String name;

  public MyClass(int index, String name) {

    this.index = index;

    this.name = name;

  }

}

Scala 里,你会写成这样:

class MyClass(index: Int, name: String)

 

确实简洁了不少,但在我看来这个简洁并没有什么惊喜,为啥,因我我java就像初恋情人,情有独钟,scala最为后辈,有这样的简化是合情理的。

scala是比较高级的,看看下面的例子:

Java

boolean nameHasUpperCase = false;

for (int i = 0; i < name.length(); ++i) {

  if (Character.isUpperCase(name.charAt(i))) {

    nameHasUpperCase = true;

    break;

  }

}

Scala 里,你可以写成:

val nameHasUpperCase = name.exists(_.isUpperCase)

看了这段比较,让我想起了写sql语句,我们只关心where条件需要匹配什么数据,不关心数据库底层是怎么过滤每一行数据的,更高层次的编程。

scala是静态类型的,这个我觉得很重要,比起动态语言,例如rubygrovvy,静态语言在大规模团体开发等有明显优势,ide也支持得可以很到位。试读章节也通过简单例子介绍了scalajava的不同之处。

怎么样,Scala还是很有前途的吧!Come on,快学Scala,就读《快学Scala

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值