backup

这里是王垠发表的历史文章的一个私人备份。所有文章都属于王垠版权所有,放在这里仅仅是为了自己查看方便,因为原始文章会lost in future。

---------------------------------
王垠自己的博客:
http://yinwang0.wordpress.com/
http://www.yinwang.org/

王垠曾经用过的博客:
http://blog.sina.com.cn/yinwang0

给Java说句公道话

作者:王垠

给Java说句公道话

有些人问我,在现有的语言里面,有什么好的推荐?我说:“Java。” 他们很惊讶:“什么?Java!” 所以我现在来解释一下。

Java超越了所有咒骂它的“动态语言” 

也许是因为年轻人的逆反心理,人们都不把自己的入门语言当回事。很早的时候,计算机系的学生用Scheme或者Pascal入门,现在大部分学校用Java。这也许就是为什么很多人恨Java,瞧不起用Java的人。提到Java,感觉就像是爷爷那辈人用的东西。大家都会用Java,怎么能显得我优秀出众呢?于是他们说:“Java老气,庞大,复杂,臃肿。我更愿意探索新的语言…...

对 Rust 语言的分析

作者:王垠

对 Rust 语言的分析

Rust 是一门最近比较热的语言,有很多人问过我对 Rust 的看法。由于我本人是一个语言专家,实现过几乎所有的语言特性,所以我不认为任何一种语言是新的。任何“新语言”对我来说,不过是把早已存在的语言特性(或者毛病),挑一些出来放在一起。所以一般情况下我都不会去评论别人设计的语言,甚至懒得看一眼,除非它历史悠久(比如像 C 或者 C++),或者它在工作中惹恼了我(像 Go 和 JavaScript 那样)。这就是为什么这些人问我 Rust 的问题,我一般都没有回复,或者一笔带过。

不过最近有点闲,我想既然有人这么热衷于这种新语言,那我还是稍...

Java 有值类型吗?

作者:王垠

Java 有值类型吗?

有人看了我之前的文章『Swift 语言的设计错误』,问我:“你说 Java 只有引用类型(reference type),但是根据 Java 的官方文档,Java 也有值类型(value type)和引用类型的区别的。比如 int,boolean 等原始类型就是值类型。” 现在我来解释一下这个问题。

Java 有值类型,原始类型 int,boolean 等是值类型,其实是长久以来的一种误解,它混淆了实现和语义的区别。不要以为 Java 的官方文档那样写就是权威定论,就可以说“王垠不懂” :) 当你认为王垠不懂一个...

Swift 语言的设计错误

作者:王垠

Swift 语言的设计错误

在『编程的智慧』一文中,我分析和肯定了 Swift 语言的 optional type 设计,但这并不等于 Swift 语言的整体设计是完美没有问题的。其实 Swift 1.0 刚出来的时候,我就发现它的 array 可变性设计存在严重的错误。Swift 2.0 修正了这个问题,然而他们的修正方法却没有击中要害,所以导致了其它的问题。这个错误一直延续到今天。

Swift 1.0 试图利用 var 和 let 的区别来指定 array 成员的可变性,然而其实 var 和 let 只能指定 array reference 的可变性,而不能指定 array...

到底是谁在欺负我们读书少?

作者:王垠

到底是谁在欺负我们读书少?

发表了之前的文章《我为什么不再做PL人》之后,我发现有人在知乎上发表文章诬蔑我。本来不想理知乎上的东西,但作者把各种刚从论文上学来的术语,似懂非懂,照本宣科列了一大堆,挺能唬人的,说起来很像那么回事儿,所以我只好破例回应一下,但是下不为例。

现在我把这篇文章,题名『王垠,请别再欺负我们读书少』的链接放在这里,供大家观看。评论的第4,第6页有我的回复,技术性比较强,不过有兴趣的人可以看看。为了方便,我也把评论整理和拷贝到这篇文章第二节。

历史和事实

文章作者彭飞自称导师是Jens Palsberg,我还没能验证这个事实。Palsberg似乎曾在CFA...

谈程序的正确性

作者:王垠

谈程序的正确性

不管在学术圈还是在工业界,总有很多人过度的关心所谓“程序的正确性”,有些甚至到了战战兢兢,舍本逐末的地步。下面举几个例子:

  • 很多人把测试(test)看得过于重要。代码八字还没一撇呢,就吵着要怎么怎么严格的测试,防止“将来”有人把代码改错了。这些人到后来往往被测试捆住了手脚,寸步难行。不但代码bug百出,连测试里面也很多bug。

  • 有些人对于“使用什么语言”这个问题过度的在乎,仿佛只有用最新最酷,功能最多的语言,他们才能完成一些很基本的任务。这种人一次又一次的视一些新语言为“灵丹妙药”,然后一次又一次的幻灭,最后他们什么有用的代码也没写出来。

  • 有些人...

DRY原则的误区

作者:王垠

DRY原则的误区

很多编程的人,喜欢鼓吹各种各样的“原则”,比如KISS原则,DRY原则…… 总有人把这些所谓原则奉为教条或者秘方,以为兢兢业业地遵循这些,空喊几个口号,就可以写出好的代码。同时,他们对违反这些原则的人嗤之以鼻——你不知道,不遵循或者藐视这些原则,那么你就是菜鸟。所谓“DRY原则”(Don't Repeat Yourself,不要重复你自己)就是这些教条其中之一。盲目的迷信DRY原则,在实际的工程中带来了各种各样的问题,却经常被忽视。

简言之,DRY原则鼓励对代码进行抽象,但是鼓励得过了头。DRY原则说,如果你发现重复的代码,就把它们提取出去做成一个...

怎样尊重一个程序员

作者:王垠

怎样尊重一个程序员

得知一位久违的同学来到了旧金山湾区,然而我见到他时,这人正处于一生中最痛苦的时期。他告诉我,自己任职的公司在他加入之前和之后,判若两人。录取的时候公司对他说,我们对你在实习期间的表现和学术背景非常满意,你不用面试,甚至不用毕业拿学位,直接就可以加入我们公司成为正式员工。然而短短一年后的今天,这位同学已经完全感觉不到公司对自己技能的尊重。Manager让他做一些乱七八糟没技术含量的事情,还抱怨说他做事太慢,并且在他的evaluation上很是写了一笔。在人格尊严和工作安全感的双重打击之下,这位同学压力非常大,周末经常偷偷地加班,仍然无法让manager满意。...

黑客文化的精髓

作者:王垠

黑客文化的精髓

听说“黑客文化”这个词,就像在昨天。想起它,眼前就出现一些头发蓬乱,穿黑色道袍的人。最早的时候,他们努力地向人们澄清:“黑客”不是贬义词,不是指那些入侵电脑网络的罪犯。当人们明白过来之后,他们开始告诉人们如何成为一个黑客,并且把黑客与画家相提并论。当人们受到鼓舞,决心成为黑客之后,他们开始向这些人灌输黑客的“行为守则”,“提问的艺术”等等。总之就是说,你得显示出一些非常重要的特征以证明你是高手,并且教育那些菜鸟们。否则按照我们的标准,你就不是个黑客!

于是忽然间,我来到了这个黑客遍地的世界。体验着,忍受着自己向往已久的“黑客文化”。

某大牛说……

一个中等水平...

© backup | Powered by LOFTER