backup

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

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

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

程序语言与它们的工具

 作者:王垠


程序语言与它们的工具

谈论了这么多程序语言的事情,说得好像语言的好坏就是选择它们的决定性因素。然而我一直没有提到的一个问题是,“程序语言”和“程序语言工具”的设计,其实完全是两码事。一个优秀的程序语言,有可能由于设计者的忽视或者时间短缺,没有提供良好的辅助工具。而一个不怎么好的程序语言,由于用的人多了,往往就会有人花大力气给它设计工具,结果大大的提高了易用性和程序员的生产力。我曾经提到,程序语言其实不是工具,它们是像木头,钉子,胶水一样的材料。如果有公司做出非常好的胶水,粘性极强,但它的包装不好,一打开就到处乱跑,弄得一团糟。你是愿意买这样的胶水还是稍微差一点但粘性足够,...

PySonar2 与 Sourcegraph 集成完毕

作者:王垠


来到 Sourcegraph 两个星期了,我可以说这里的每一天都是激动人心的,这是一个有真正创造活力的 startup。我们的发展速度相当之快,每一天都出现新的点子,或者发现以前做法的一些大幅度简化。不得不承认 Quinn 和 Beyang 是比我有魄力的人。我虽然做出了 PySonar,却让它的代码束之高阁多年之久,没有发挥出应有的作用。是 Quinn 和 Beyang 坚持不懈地做出了 Sourcegraph.com 这个网站,才使 PySonar 可以发挥出这么强劲的效果,用以搜索全世界的 Python 代码,为广大程序员造福。当然,我们的目标不只限...

在 Sourcegraph 的第三天

作者:王垠


这个星期一我就正式加入 Sourcegraph 了。做自己感兴趣的东西真是不感觉累。这里没有人是老板,每个人都是老板,每个人都写很不错的代码。虽然每天工作的时间比起在 Voxer 多了很多,但是感觉也好了很多。Quinn 和 Beyang 每天都工作到半夜,但是仍然每天精神饱满。我比他们稍微偷懒一些。工作不是因为有压力,而是有一种像打电玩一样的“瘾”,这样的工作还能叫工作吗?那叫“玩物不丧志” :-)

我们的条件是艰苦的,办公室又小又乱。虽然条件很快就会改善,我却一点也不在乎这个。Steve Jobs 不也是在车库里创造了 Apple...

PySonar2 开源了

作者:王垠


经过 Google 的许可,我现在将 PySonar 第二版本开源,就叫 PySonar2 吧。代码可以在我的 GitHub 下载:

https://github.com/yinwang0/pysonar2

经过一阵子考察之后,我发现 PySonar2 仍然是当今最先进的 Python 静态分析器。其分析的深度和准确程度其实超过了所有的 Python IDE (包括 PyCharm 3.0 在内)。PySonar2 做的是跨过程,具有精确控制流的分析,而现在最好的 Python IDE 仍然是局部过程分析。

PySonar2 的工作原理却极...

PySonar 的第二个用户

作者:王垠


湾区的世界真是机缘巧合众多。最近有人联系我,说他们做了一个代码搜索公司叫sourcegraph.com,其中的 Python 检索部分使用了 PySonar 的第一版开源代码。于是我很高兴的发现 PySonar 有了第二个用户(当然,Google 是第一个)。

Sourcegraph 的两位创始人 Quinn 和 Beyang 告诉我,PySonar 是他们试过的最精确,也是最友好的 Python 静态分析。这虽然是意料当中的,但是我还是很高兴有人发现了这一点。其实在设计 PySonar 之前我试过十多个 Python 分析器和 IDE

为什么一种程序语言是不够用的

作者:王垠


我曾经希望设计出一种“终极语言”,然而我却发现一种语言其实是不够用的。这是为什么呢?

我们都知道,程序语言里包含了变量,数字,对象,函数等“元素”。它们就像物理学的基本粒子一样,可以用于构造我们所需要的几乎任何“模型”。既然所有的东西都是用基本粒子组成的,那么除了物理学,我们为什么还要有化学和生物?化学家使用的语言是化学元素,它们比基本粒子大很多。生物学家的语言就更大一些了,处于细胞的级别。那么为什么化学家和生物学家不使用基本粒子来描述他们的领域呢?

那是因为基本粒子无法提供足够的“抽象”。它们到底是如何组成原子,原子又如何能产生细胞,这些事情到现在还没搞清楚。用基本粒子来表示化学和生物...

“One语言”是不存在的

作者:王垠


昨天心血来潮,把我对一种“终极语言”的很多方面想法记录了下来。然而事后我却发现挺多矛盾的地方,现在我已经很难想象这样的语言能够成为“唯一”的程序语言。对人脑的工作原理也纯属我自己的臆测,没有经过任何科学实验的检验。

我是一个很矛盾的人,我怀疑别人,也怀疑自己。有时候想通了的问题,后来却又忘记了。其实很早的时候,我想出了一个很“哲学”理由,说明为什么一种语言是不足以满足所有人的需要的。可是不知道怎么到后来又推翻了自己,写出了为什么世界上只需要一种语言的理由。

那么现在我就来回顾一下我之前的想法,为什么一种语言是永远不够用的。

我们都知道,程序语言里包含了变量,数字,对象,函数等“元素”。它们...

PySonar 的工作原理

作者:王垠

2012年9月,我在 MathWorks 做了一个演讲,内容是关于之前在 Google 做的 Python 静态分析。现在把幻灯片的一部分公开在这里。里面含有一些这个静态分析器里面基本的原理。虽然可能不怎么能看懂,但是希望对希望了解静态分析的人有所帮助。

在下一篇博文里,我想讲一下静态分析的基本原理,以及如何利用这种原理写出“逻辑正确”的程序。以及它与定理证明和“supercompilation”的关系。


我离开了Coverity

作者:王垠


在写这篇博文的时候,我已经不再是 Coverity 的员工了,我已经在今天下午向公司正式辞职。

走出公司的大门,我觉得一身的轻松。这是我几个月以来第一次感受到加州美丽的阳光,AT&T Park 到处是欢笑的人群,他们是来看巨人队的棒球赛的。我第一次发现他们的面庞是那么的美,那么的友善。湾里的海水也格外的蓝,水面上船帆招展,一幅恬静自然,其乐融融的景象。我就像是一个刚从 Alcatraz(恶魔岛)释放出来的囚犯。我已经很久没有欣赏过这样的风景了,虽然我每天都从这风景中走过。

进入 Coverity 之前,我就在 glassdoor(一个让员工评价自己公司的网站)上面看过给它的评价,...

© backup | Powered by LOFTER