摘要: 之前的一篇文章里,我谈到了程序语言设计的一个常见错误倾向:片面追求短小,它导致了一系列的历史性的设计错误。今天我来谈一下另外一种错误的倾向,这种倾向也导致了很多错误,并且继续在导致错误的产生。 今天我要说的错误倾向叫做“试图容纳世界”。这个错误导致了 Python,Ruby 和 JavaScript 阅读全文
posted @ 2020-10-13 15:50 君牧民 阅读(74) 评论(0) 推荐(0)
摘要: 我经常以自己写“非常短小”的代码为豪。有一些人听了之后很赞赏,然后说他也很喜欢写短小的代码,接着就开始说 C 语言其实有很多巧妙的设计,可以让代码变得非常短小。然后我才发现,这些人所谓的“短小”跟我所说的“短小”完全不是一回事。 我的程序的“短小”是建立在语义明确,概念清晰的基础上的。在此基础上,我 阅读全文
posted @ 2020-10-13 15:49 君牧民 阅读(109) 评论(0) 推荐(0)
摘要: 使用和研究过这么多程序语言之后,我觉得几乎不包含多余功能的语言,只有一个:Scheme。所以我觉得它是学习程序设计最好的入手点和进阶工具。当然 Scheme 也有少数的问题,而且缺少一些我想要的功能,但这些都瑕不掩瑜。在用了很多其它的语言之后,我觉得 Scheme 真的是非常优美的语言。 要想指出 阅读全文
posted @ 2020-10-13 15:48 君牧民 阅读(110) 评论(0) 推荐(0)
摘要: 我已经很久很久没有打游戏了(如果不算 Angry Birds 之类用来打发时间的游戏的话)。我的最后一个真正意义上的游戏机是 PlayStation 1。在那上面,我真正欣赏的最后一个游戏,是 Metal Gear Solid (1)。 我曾经是一个游戏迷,可是进入了计算机专业的学习之后,我就开始失 阅读全文
posted @ 2020-10-13 15:43 君牧民 阅读(344) 评论(0) 推荐(0)
摘要: 好久没有推荐过自己喜欢的软件了,现在推荐一款我在美国做数学作业的私家法宝:TeXmacs。我恐怕不可能跟以前那么有闲心写个长篇的 TeXmacs 说明文档了,不过这东西如此的简单好用,所以基本上不用我写什么文档了。鉴于知道的人很少,不理解它的人很多,这里只是帮它打个广告,吊一下胃口。 TeXmacs 阅读全文
posted @ 2020-10-13 15:41 君牧民 阅读(485) 评论(0) 推荐(0)
摘要: 写一个解释器,通常是设计和实现程序语言的第一步。解释器是简单却又深奥的东西,以至于好多人都不会写,所以我决定写一篇这方面的入门读物。 虽然我试图从最基本的原理讲起,尽量不依赖于其它知识,但这并不是一本编程入门教材。我假设你已经理解 Scheme 语言,以及基本的编程技巧(比如递归)。如果你完全不了解 阅读全文
posted @ 2020-10-13 15:40 君牧民 阅读(150) 评论(0) 推荐(0)
摘要: 很多人问我如何在掌握基本的程序语言技能之后进入“语义学”的学习。现在我就简单介绍一下什么是“语义”,然后推荐一本入门的书。这里我说的“语义”主要是针对程序语言,不过自然语言里的语义,其实本质上也是一样的。 一个程序的“语义”通常是由另一个程序决定的,这另一个程序叫做“解释器”(interpreter 阅读全文
posted @ 2020-10-13 15:39 君牧民 阅读(719) 评论(0) 推荐(0)
摘要: 写小人书的老顽童 Dan Friedman 是 Indiana 大学的教授,程序语言领域的创始人之一。他主要的著作《The Little Schemer》(前身叫《The Little Lisper》) 是程序语言界最具影响力的书籍之一。现在很多程序语言界的元老级人物,当年都是看这本“小人书”学会了 阅读全文
posted @ 2020-10-13 15:38 君牧民 阅读(422) 评论(0) 推荐(0)
摘要: 当我提到一个工具“对用户不友好”(user-unfriendly)的时候,我总是被人“鄙视”。难道这就叫“以其人之道还治其人之身”?想当年有人对我抱怨 Linux 或者 TeX 对用户不友好的时候,我貌似也差不多的态度吧。现在当我指出 TeX 的各种缺点,提出新的解决方案的时候,往往会有美国同学眼角 阅读全文
posted @ 2020-10-13 15:37 君牧民 阅读(96) 评论(0) 推荐(0)
点击右上角即可分享
微信分享提示