Javascript:好零件是一本好书.我经常发现自己从语言设计师的角度阅读以下段落:
undefined
而NaN
不是常数.它们是全局变量,您可以更改它们的值.这应该是不可能的,但事实确实如此.不要这样做.
小贴士:
不要更改undefined
我的Javascript代码中的值.
在设计语言时,使其等效于undefined
不可变.
另一个更微妙的例子是" for in
不应该枚举原型属性".
我想要一本关于特定语言背景下的语言设计问题的书.
如果您正在尝试设计"完美"的OO语言,您会阅读哪些书籍作为指导?
网站"lambda the ultimate"非常关注编程语言,它们偶尔会有一些很好的资源,尽管他们对学术类型的东西更感兴趣.例如,功能编程很重要.
http://lambda-the-ultimate.org/node/3
http://lambda-the-ultimate.org/papers
http://lambda-the-ultimate.org/node/492
您可以从与Java,Ruby,Objective C等相同的位置获取页面,并查看Smalltalk背后的设计原则.其中大部分是关于对象之间通信的基础材料,而不是具体的Smalltalk.
至于关于语言设计的真正有思想的书籍,我认为C++的设计和演变绝对值得一提.我犹豫,因为你说你想要"完美"的OO语言,而C++远非完美.不过,你可能还是可以从中学到很多东西.
然而,你提出的观点似乎与"最小惊讶原则"或"最小惊喜规则"有关,而不是与语言内部设计有关.