介绍一下TopLanguage讨论组

作者:半瓶墨水   链接:http://www.2maomao.com/blog/toplanguage-group/

今天看到在Python-cn讨论组看到有人提到这篇文章:

康托尔、哥德尔、图灵——永恒的金色对角线
刘未鹏(ponda)的总结、理解、表达能力着实让我佩服,他的blog上的许多文章远远超越了编程的讨论,体现出他自己的一些哲学观。

又从这里看到pongda开的一个group:Toplanguage
很不错,几个精华帖(还有更多)如下(我偷懒了,连接在这里):

Error-Handling
高阶特性与低阶语言的尴尬
为什么GP更自然
耦合的三重境界(接上次讨论)
聊聊 API 设计
CPU 的设计跟着软件需求走的又一步: STM
Novel usage of static type systems
C++09的lambda expression,加上RAII,将会带来一个可用性极强的scope(exit)设施
为何 D 语言要无缘无故的用上新语法和新关键字

呵呵,我新加入,就看到一个Atry (链接不确信)发的问题:

我觉得参数里面出现 bool 变量或者 flag 都是不好的。你们觉得呢?
Pongda回复说:
bool变量很猥琐,比如臭名昭著的isEnabled,从调用方根本看不出到底是怎么回事:
Paint(…, false, …);
改成enum flag我觉得是正道。

我的观点
这应该是语言语法上的局限性所引起。
我同意Pongda的说法,bool作参数本身没有问题,调用的时候看不懂才是问题所在。这就像是可变参数用引用进行传递一样让人不爽。
扩展一下说,如果bool很邪恶,int是不是更邪恶,它比bool的选择性更大,这就是传说中的magic number
所以,enum flag是正道(我认为#define也可以),至少在目前的C++语法上是这样。

其实如果是在Python中解决这个问题很简单,可以直接这样调用(无意挑起语言争论)
Paint(…, refresh=False, ….)
所以我觉得,是语言语法的限制引起,而不是bool做参数本身的问题。

BTW: 感觉多看一些语言才能跳出语言本身局限性

留下回复