『为什么是Scala?』

Reading time ~1 minute

学习java有些时日了,用这门语言开发倒是挺方便的,可由于其设计原则—-向历史版本的兼容—-注定让他存精不去粗,且有时这就成为限制它自己发展的壁垒。比如语言特性演进方面就落后于C#很多。To summarize,java is so heavy as a programming language.

一门优异的编程语言,就是得让编程者操最少的心将算法高效地实现为对应的”beautiful  code”。此种语言的代码精简、可读性强,编程时也能防止编程者出错;另外也是最重要的,尽量的实现各种语言有益的特性。最先是知道Twitter完全用的scala,出于猎奇就寒假胡乱捣腾了一下,后来发现Linkedin和Foursquare都在用,了解后发现这门PL着实优异java很多,且相形其他在JVM上的编程语言(PL),学习这门PL真是不二选择。

参考《Programming in Scala》

首先,scala解决了java中的如下常见几个问题:

  1. java中无多继承。scala用trait实现。
  2. java中的case只能匹配字符或整型。scala中的case可以匹配字符串、对象,甚至带类似正则的匹配。例如可用List(0,_*)匹配以0开头的list。
  3. java中无默认函数参数(default parameter)。

  4. 去除java中易出错的设计。譬如该用equals的地方容易不小心用成==。scala里面==就能达到equals的效果,其他+、-、*、/等也都是方法名,定义过后久可以直接用。
  5. java中异常声明冗余。scala里不会有NullPointerException,不处理异常也不必在方法名上冗余地声明。
  6. 增加了很多FL(Funtional Language)的特性,方便的支持方法引用(method reference),用起来会有意想不到的便利。

Original post: http://blog.josephjctang.com/2012-02/why-scala/

2016 記

2015 年做的和沒做的,也大體記錄在了[這裏]({% post_url 2016-01-01-annual-review-and-planning %})。匆匆一年已逝,幾多慨嘆,幾多欣喜。後面列列過去已經做的,以及相對的未來一年的TODO list。主要也是從工作上的個人提升,以及生活上的...… Continue reading

《神经网络》课程笔记

Published on November 06, 2016

搜索广告机制设计

Published on November 02, 2016