『为什么是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/

问问题的妙用

记得看《你的灯亮着吗?》这本书时就感觉通过提问的方式比陈述、祈使效果都好很多。原书说的是这么一个场景,就是说日内瓦湖景区的上山隧道。进隧道通常都需要开大灯,可出隧道时司机们往往忘记关大灯,而搞得游完景区后车上的电已经耗尽,只得拖车或让警察来帮助发动。后来就出了几个版本的提示语:1. **请关灯...… Continue reading

时间管理中的断舍离

Published on May 20, 2018

科學の上網的便捷方法

Published on February 03, 2018