E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
王垠
[
王垠
系列]谈程序的正确性
谈程序的正确性不管在学术圈还是在工业界,总有很多人过度的关心所谓“程序的正确性”,有些甚至到了战战兢兢,舍本逐末的地步。下面举几个例子:很多人把测试(test)看得过于重要。代码八字还没一撇呢,就吵着要怎么怎么严格的测试,防止“将来”有人把代码改错了。这些人到后来往往被测试捆住了手脚,寸步难行。不但代码bug百出,连测试里面也很多bug。有些人对于“使用什么语言”这个问题过度的在乎,仿佛只有用最新
unsv29
·
2016-01-07 09:00
[
王垠
系列]所谓软件工程
所谓软件工程很多编程的人包括我,头衔叫做“软件工程师”(softwareengineer),然而我却不喜欢这个名字。我喜欢把自己叫做“程序员”(programmer)或者“计算机科学家”(computerscientist)。这是为什么呢?这需要从“软件工程”(softwareengineering)在现实中的涵义谈起。有人把软件工程这个领域的本质总结为:“Howtoprogramifyoucan
unsv29
·
2016-01-07 09:00
[
王垠
系列]编辑器与IDE
无谓的编辑器战争很多人都喜欢争论哪个编辑器是最好的。其中最大的争论莫过于Emacs与vi之争。vi的支持者喜欢说:“看vi打起字来多快,手指完全不离键盘,连方向键都可以不用。”Emacs的支持者往往对此不屑一顾,说:“打字再快又有什么用。我在Emacs里面按一个键,等于你在vi里面按几十个键。”其实还有另外一帮人,这些人喜欢说:“对于Emacs与vi之争,我的答案是{jEdit,Geany,Tex
unsv29
·
2016-01-07 09:00
[
王垠
系列]一种新的操作系统设计
一种新的操作系统设计我一直在试图利用程序语言的设计原理,设计一种超越“Unix哲学”的操作系统。这里是我的设想:这种系统里面的程序间通信不使用无结构的字符串,而是使用带有类型和结构的数据。在这样的系统里面,Unix和其它类似操作系统(比如Windows)里的所谓“应用程序”的概念基本上完全消失。系统由一个个很小的“函数”组成,每个函数都可以调用另外一个函数,通过参数传递数据。每个函数都可以手动或者
unsv29
·
2016-01-07 09:00
[
王垠
系列]谈“测试驱动的开发”
谈“测试驱动的开发”现在的很多公司,包括Google和我现在的公司Coverity,都喜欢一种“测试驱动的开发”(test-drivendevelopment)。它的原理是,在写程序的时候同时写上自动化的“单元测试”(unittest)。在代码修改之后,这些测试可以批量的被运行,这样就可以避免不应该出现的错误。这不是一个坏主意。我在Kent的编译器课程上也使用了很多测试。它们在编译器的开发中是不可
unsv29
·
2016-01-07 09:00
[
王垠
系列]什么是“脚本语言”
什么是“脚本语言”很多人都会用一些“脚本语言”(scriptinglanguage),却很少有人真正的知道到底什么是脚本语言。很多人用shell写一些“脚本”来完成日常的任务,用Perl或者sed来处理一些文本文件,很多公司用“脚本”来跑它们的“build”(叫做buildscript)。那么,到底什么是“脚本语言”与“非脚本语言”的区别呢?其实“脚本语言”与“非脚本语言”并没有语义上,或者执行方
unsv29
·
2016-01-07 09:00
[
王垠
系列]论对东西的崇拜
论对东西的崇拜在之前的几篇博文里面,我多次提到了Lisp,它相对于其它语言的优势,以及LispMachine相对于Unix的优点。于是有人来信请教我如何学习Lisp,也有人问我为什么LispMachine没有“流行”起来。我感觉到了他们言语中对Lisp的敬畏和好奇心,但也感觉到了一些隐含的怀疑。这是一种复杂的感觉,仿佛我在原始人的部落兜售一些原子能小玩具,却被人当成了来自天外的传教士。敬畏和奉承,
unsv29
·
2016-01-07 09:00
[
王垠
系列]“解决问题”与“消灭问题”
“解决问题”与“消灭问题”一直以来,人们都重视“解决问题”的能力,却忽视了另一种重要的能力:“消灭问题”的能力。各种各样的竞赛,分数和排名,让很多人从小就片面的认为,能“解决问题”的人,就是最厉害的人。拿到一个问题就埋头求解,很少考虑这问题到底有什么意义。这种呆板的思维方式,不仅存在于低级的“应试”和“解题”过程,而且蔓延到了很多艰深的研究领域。如果你仔细观察就会发现,很多“难题”,其实是“人造”
unsv29
·
2016-01-07 09:00
[
王垠
系列]程序语言的常见设计错误(1) - 片面追求短小
程序语言的常见设计错误(1)-片面追求短小我经常以自己写“非常短小”的代码为豪。有一些人听了之后很赞赏,然后说他也很喜欢写短小的代码,接着就开始说C语言其实有很多巧妙的设计,可以让代码变得非常短小。然后我才发现,这些人所谓的“短小”跟我所说的“短小”完全不是一回事。我的程序的“短小”是建立在语义明确,概念清晰的基础上的。在此基础上,我力求去掉冗余的,绕弯子的,混淆的代码,让程序更加直接,更加高效的
unsv29
·
2016-01-07 09:00
[
王垠
系列]谈语法
谈语法使用和研究过这么多程序语言之后,我觉得几乎不包含多余功能的语言,只有一个:Scheme。所以我觉得它是学习程序设计最好的入手点和进阶工具。当然Scheme也有少数的问题,而且缺少一些我想要的功能,但这些都瑕不掩瑜。在用了很多其它的语言之后,我觉得Scheme真的是非常优美的语言。要想指出Scheme所有的优点,并且跟其它语言比较,恐怕要写一本书才讲的清楚。所以在这篇文章里,我只提其中一个最简
unsv29
·
2016-01-07 09:00
[
王垠
系列]Oberon 操作系统:被忽略的珍宝
Oberon操作系统:被忽略的珍宝推荐一篇很久以前看的文章:Oberon-TheOverlookedJewel它介绍的是NiklausWirth设计的一种操作系统,叫做Oberon。NiklausWirth就是大家熟知的Pascal语言的设计者。绝大部分人都没听说过有Oberon这个东西存在,更难以把它跟NiklausWirth的大名挂上钩。所以作者说:“Wirth因为Pascal而闻名于世,可是
unsv29
·
2016-01-07 09:00
[
王垠
系列]谈 Linux,Windows 和 Mac
谈Linux,Windows和Mac这段时间受到很多人的来信。他们看了我很早以前写的推崇Linux的文章,想知道如何“抛弃Windows,学习Linux”。天知道他们在哪里找到那么老的文章,真是好事不出门……我觉得我有责任消除我以前的文章对人的误导,洗清我这个“Linux狂热分子”的恶名。我觉得我已经写过一些澄清的文章了,可是怎么还是有人来信问Linux的问题。也许因为感觉到“舆论压力”,我把文章
unsv29
·
2016-01-07 09:00
[
王垠
系列]解密“设计模式”
解密“设计模式”有些人问我,你说学习操作系统的最好办法是学习程序设计。那我们是不是应该学习一些“设计模式”(designpatterns)。这是一个我很早就有定论,而且经过实践检验的问题,所以想在这里做一个总结。总的来说,如果光从字面上讲,程序里确实是有一些“模式”可以发掘的。因为你总是可以借鉴以前的经验,用来构造新的程序。你可以把这种经验叫做“模式”。可是自从《设计模式》(通常叫做GoF,“Ga
unsv29
·
2016-01-07 09:00
[
王垠
系列]Braid - 一个发人深思的游戏
Braid-一个发人深思的游戏我已经很久很久没有打游戏了(如果不算AngryBirds之类用来打发时间的游戏的话)。我的最后一个真正意义上的游戏机,是PlayStation1。在那上面,我真正欣赏的最后一个游戏,是[MetalGearSolid(1)]。我曾经是一个游戏迷,可是进入了计算机专业的学习之后,我就开始失去对游戏的兴趣,基本上每玩一个都让我失望一次,不管别人把它吹的多么“经典”。不知道为
unsv29
·
2016-01-07 09:00
[
王垠
系列]TeXmacs:一个真正“所见即所得”的排版系统
TeXmacs:一个真正“所见即所得”的排版系统好久没有推荐过自己喜欢的软件了,现在推荐一款我在美国做数学作业的私家法宝:TeXmacs。我恐怕不可能跟以前那么有闲心写个长篇的TeXmacs说明文档了,不过这东西如此的简单好用,所以基本上不用我写什么文档了。鉴于知道的人很少,不理解它的人很多,这里只是帮它打个广告,吊一下胃口。TeXmacs的主要特点是:跟Lyx等不同,它不是一个TeX的“前端”,
unsv29
·
2016-01-07 09:00
[
王垠
系列]怎样写一个解释器
怎样写一个解释器这是一篇解释器的入门教程。虽然我试图从最基本的原理讲起,尽量让这篇文章不依赖于其它知识,但是这篇教程并不是针对编程的入门知识,所以我假设你已经学会了最基本的Scheme和函数式编程。我不是很推崇函数式编程,但它里面确实包含了很重要的一些方法。如果你完全不了解这些,可以读一下SICP的第一,二章(或者接下去读TheLittleSchemer)。当然你也可以继续读这篇文章,有不懂的地方
unsv29
·
2016-01-07 09:00
[
王垠
系列]什么是语义学
什么是语义学很多人问我如何在掌握基本的程序语言技能之后进入“语义学”的学习。现在我就简单介绍一下什么是“语义”,然后推荐一本入门的书。这里我说的“语义”主要是针对程序语言,不过自然语言里的语义,其实本质上也是一样的。一个程序的“语义”通常是由另一个程序决定的,这另一个程序叫做“解释器”(interpreter)。程序只是一个数据结构,通常表示为语法树(abstractsyntaxtree)或者指令
unsv29
·
2016-01-07 09:00
[
王垠
系列]GTF - Great Teacher Friedman
GTF-GreatTeacherFriedman写小人书的老顽童DanFriedman是Indiana大学的教授,程序语言领域的创始人之一。他主要的著作《TheLittleSchemer》(前身叫《TheLittleLisper》)是程序语言界最具影响力的书籍之一。现在很多程序语言界的元老级人物,当年都是看这本“小人书”学会了Lisp/Scheme,才决心进入这一领域。Friedman对程序语言的
unsv29
·
2016-01-07 09:00
[
王垠
系列]什么是“对用户友好”
什么是“对用户友好”当我提到一个工具“对用户不友好”(user-unfriendly)的时候,我总是被人“鄙视”。难道这就叫“以其人之道还治其人之身”?想当年有人对我抱怨Linux或者TeX对用户不友好的时候,我貌似也差不多的态度吧。现在当我指出TeX的各种缺点,提出新的解决方案的时候,往往会有美国同学眼角一抬,说:“菜鸟们抱怨工具不好用,那是因为他们不会用。LaTeX是‘所想即所得’,所以不像W
unsv29
·
2016-01-07 09:00
数学和编程-
王垠
博客
数学和编程好些人来信问我,要成为一个好的程序员,数学基础要达到什么样的程度?十八年前,当我成为大学计算机系新生的时候,也为同样的问题所困扰。面对学数学,物理等学科的同学,我感到自卑。经常有人说那些专业的知识更加精华一些,难度更高一些,那些专业的人毕业之后如果做编程工作,水平其实比计算机系毕业的还要高。直到几年前深入研究程序语言之后,对这个问题我才得到了答案和解脱。由于好多编程新手遇到同样的困扰,所
xllily_11
·
2016-01-04 11:00
编程
数学
OS之争:永不停歇的战争(一)
不是专家和
王垠
不一样,和云风不一样,他们是大牛逼,而我只是个无名小卒。不是扫地僧,只是无名小卒。但是作为一个小卒,从看到
王垠
的《用Linux工作》开始,也有五六个年头了。
·
2015-12-09 17:25
OS
如何成为Emacs高手(像神一样使用编辑器)
一年多前我还在Vi阵营,偶尔使用Emacs还总是忘记`退出`(C-xC-c)的快捷键,但是一年后我跨入高手行列.现在网上很多中文文章都是和你强调Emacs有多牛,以激发你的兴趣.最有名的大概是
王垠
的Emacs
·
2015-12-09 11:41
emacs
编程的智慧,带你少走弯路
编程语言大牛
王垠
:编程的智慧,带你少走弯路编程是一件创造性的工作,是一门艺术。
春宵一刻
·
2015-11-30 10:41
[
王垠
系列]谈程序的“通用性”
谈程序的“通用性”在现实的软件工程中,我经常发现这样的一种现象。本来用很简单的代码就可以解决的问题,却因为设计者过分的关注了“通用性”,“可维护性”和“可扩展性”,被搞得绕了几道弯,让人琢磨不透。这些人的思维方式是这样的:“将来这段代码可能会被用到更多的场合,所以我现在就考虑到扩展问题。”于是乎,他们在代码中加入了各种各样的“框架结构”,目的是为了在将来有新的需要的时候,代码能够“不加修改”就被用
unsv29
·
2015-11-26 14:00
王垠
:不再推荐 Haskell_IT新闻_博客园
王垠
:不再推荐 Haskell_IT新闻_博客园
王垠
:不再推荐 Haskell 投递人 itwriter 发布于 2012-09-14 12:49 评论(0)
·
2015-11-13 21:17
haskell
程序员的心理疾病
王垠
:程序员的心理疾病 投递人 itwriter 发布于 2014-02-10 22:11 评论(0) 有298人阅读 原文链接
·
2015-11-13 19:12
程序员
谈程序语言的设计及程序员心态
我最近读
王垠
的博客,里面有些文章使我很受益。他总结了程序语言设计上的两个问题:一是片面追求短小,用C语言做例子;二是试图容纳世界,用python做例子。
·
2015-11-13 19:33
程序员
为 LaTeX 添加英文 TrueType 字体
+ MikTeX环境下,添加中文字体最方便的办法恐怕是使用 Hooklee 的 xGBKFonts 工具( http://www.hooklee.com/tex.html);在 Linux 环境下,
王垠
改进的
·
2015-11-13 16:19
latex
怎样写一个解释器--于
王垠
这是一篇解释器的入门教程。虽然我试图从最基本的原理讲起,尽量让这篇文章不依赖于其它知识,但是这篇教程并不是针对编程的入门知识,所以我假设你已经学会了最基本的 Scheme 和函数式编程。我不是很推崇函数式编程,但它里面确实包含了很重要的一些方法。如果你完全不了解这些,可以读一下 SICP 的第一,二章(或者接下去读 The Little Schemer)。当然你也可以
·
2015-11-13 15:42
转载
清华梦的粉碎—写给清华大学的退学申请(牛人
王垠
)
两年前再学习Linux技术得时候,经常在王 垠的个人网站上学东西,原来他还在读清华的博士,现在要博士退学,真是牛人,写的这篇文章非常有道理,支持!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!,大家看看吧. http://spaces.msn.com/members/shredderyin/Blog/cns!1p
·
2015-11-13 15:11
大学
王垠
的过去和现状
王垠
的过去和现状 我曾在2006年冬季接触到
王垠
的三篇文章:《完全用linux工作》、《写给支持和反对<完全用Linux工作>的人们》、《清华梦的粉碎--写给清华大学的退学申请》,今天巧合又再次读遍
·
2015-11-13 11:57
转
如何写一个简单的解释器
其实网上有不少人已经写过类似一大把的文章了,
王垠
的那篇比较经典。 我发一些比较经典的资料吧,主要以实现Lisp解释器为主,这玩意儿比较简单。
·
2015-11-13 08:23
简单
清华申请退学博士作品:完全用Linux工作,凸Windows
清华申请退学博士作品:完全用Linux工作 按尽管我们已经不习惯看长篇大论, 但我还是要说, 这是一篇值得你从头读到尾的长篇文章. 2005年9月22日,清华在读博士生
王垠
在水木社区
·
2015-11-13 04:04
windows
清华博士
王垠
的退学申请 (看一看什么是理想主义)
经过深思熟虑,我决定放弃清华大学的博士学位。其中的原因,你们有兴趣的话可以看看下面的文章。这就是我的一生与中国教育的故事。一个用血和泪换来的教训。 清华梦的粉碎—写给清华大学的退学申请 2005.9.22 清华梦的诞生 小时候,妈妈给我一个梦。她指着一个大哥哥的照片对我说,这是爸爸的学生,他考上了清华 大学,他是我们中学的骄傲。长大后,你也要进入清华大学读书,为我们家争光。我
·
2015-11-12 23:40
理想
[荐][转]
王垠
:我和权威的故事(2014)
王垠
的相关文章: http://docs.huihoo.com/homepage/shredderyin/index.html http://news.cnblogs.com/n/tag/%E7%8E
·
2015-11-12 11:48
故事
天下第一萌程序
我没找到
王垠
使用的那幅图片,所以在网上找了另外的一个萌猪图。 声明:猪头照片来源不明,归
·
2015-11-12 09:52
程序
论window和Linux之长短
论window和Linux之长短
王垠
http://www.kerneltravel.net/jiqiao/whyLinux.htm — 摈弃 Windows 低效率的工作方式
·
2015-11-11 16:45
window
对博士学位说永别
By
王垠
(2012.09.08) 前情以及作者简介见上一篇blog(清华梦的粉碎——写给清华大学的退学申请)。 经过深思熟虑之后,我决定再次“抛弃”我的博士学位。
·
2015-11-11 11:15
转
清华梦的粉碎——写给清华大学的退学申请
By
王垠
(2005.09.22) 作者
王垠
,非常有思想的一个人,川大计算机系97级本科,2001年毕业后直博保送清华大学计算机系,2005年从清华退学,2006年8月去了Cornell,后来去了IUB
·
2015-11-11 11:15
大学
转:《完全用Linux工作》作者:
王垠
《完全用Linux工作》作者:
王垠
完全用 GNU/Linux 工作 理解 GNU/Linux 注:本文是清华“牛仔”
王垠
的“成名作”,在网上引起很大的争议。
·
2015-11-11 02:19
linux
完全用Linux工作(
王垠
)
按: 尽管我们已经不习惯看长篇大论, 但我还是要说, 这是一篇值得你从头读到尾的长篇文章. 2005年9月22日,清华在读博士生
王垠
在水木社区BLOG上发表了《清华梦的粉碎--写给清华大学的退学申请》明确要求退学
·
2015-11-10 23:59
linux
王垠
:怎样尊重一个程序员
作者简介:
王垠
,四川大学97级本科毕业,保送到清华大学计算机系直博。期间曾在清华大学计算机系软件所就读,主要进行集成电路布线算法的研究。
·
2015-11-09 12:00
程序员
清华申请退学博士作品:完全用Linux工作
按: 尽管我们已经不习惯看长篇大论, 但我还是要说, 这是一篇值得你从头读到尾的长篇文章. 2005年9月22日,清华在读博士生
王垠
在水木社区BLOG上发表了《清华梦的粉碎--写给清华大学的退学申请》明确要求退学
·
2015-11-08 12:17
linux
王垠
:程序设计里的“小聪明”(1)
很早就想写这样一篇博文了,可是一直没来得及动笔。在学校的时候,时间似乎总是不够用,因为一旦有点时间,你就想是不是该用来多看点论文。所以我很高兴,工作的生活给了我真正自由的时间,让我可以多分享一些自己的经验。 我今天想开始写这系列文章的原因是,很多程序员的头脑中都有一些通过“非理性”方式得到的错误观点。这些观点如此之深,以至于你没法跟他们讲清楚。即使讲清楚了,一般来说也很难改变他们的习惯。
·
2015-11-08 10:13
程序设计
清华申请退学博士
王垠
作品:完全用Linux工作
我已经半年没有使用 Windows 的方式工作了。Linux 高效的完成了我所有的工作。 GNU/Linux 不是每个人都想用的。如果你只需要处理一般的事务,打游戏,那么你不需要了解下面这些了。 我不是一个狂热的自由软件份子,虽然我很喜欢自由软件。这篇文章也不是用来推行自由软件运动的,虽然我觉得自由软件运动是非常好的。 这篇文章也不是用来比较 Linux 和 Wind
·
2015-11-07 15:54
linux
程序员的心理疾病
(附:关于
王垠
,曾经在清华读过硕士还是博士我忘记了,后来不满清华里那些潜规则,于是退学到美国去 读书了,是一个我比较敬畏的大神。
·
2015-11-01 13:47
程序员
博客园电子期刊2012年11月刊发布啦
No59.2012年11月刊 推荐新闻 和菜头:放开那些员工 “枭雄” 周鸿祎 从谷歌宕机事件认识互联网工作原理 妹纸在IT公司上班的若干好处
王垠
·
2015-11-01 11:42
2012
[
王垠
]我和Google的故事
也许有人看见过我批判 Google 的那篇英文文章。它好像有一部分片面性,所以被我从英文博客上拿下来了。我一直在反思自己在 Google 的经历,因为在这个公司工作总是感觉不对劲,但是却总也说不清楚为什么。也许现在用自己的母语,我可以得出一个准确一点的结论吧。 受命于危难 先说说我的项目是怎么开始的吧。当我加入的时候,我的老板 Steve Yegge 的小组试图制造一个跨语言的“
·
2015-10-31 19:46
Google
Emacs -- 自动补齐
Emacs 自带的hippie-expand (参考的是
王垠
的) hippie-expand是 Emacs 自带的功能, 把M-/ 绑定到 hippie-expand,在.emacs文件中加入
·
2015-10-31 13:04
emacs
完全用Linux工作,抛弃windows
录一篇旧文 作者:
王垠
完全用Linux工作,抛弃windows 我已经半年没有使用 Windows 的方式工作了。Linux 高效的完成了我所有的工作。
·
2015-10-31 09:58
windows
上一页
4
5
6
7
8
9
10
11
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他