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

重操堆文这旧业之时间日志分析

写作的习惯,已经断了许久了。上一篇已经是去年的文章了,也是做的[时间日志分析]({% post_url 2019-02-23-time-log-analysis %}) 。 正好做时间总结,也把写作捡起来吧。# 低效时间分析用 [RescueTime](https://www.rescueti...… Continue reading

个人近期时间日志分析

Published on February 23, 2019

问问题的妙用

Published on May 27, 2018