TopLanguage小组讨论精选[四](2007.12-2008.1)
By 刘未鹏(pongba)
C++的罗浮宫(http://blog.youkuaiyun.com/pongba)
- 也来说说并发,使用状态机或轻量级线程
并发这东西接触时间并不长,不过几乎让我完全推倒过去的编程方法。 并发系统的典型特点是大量同时存在的无规律活动,最具代表性的是网络应用,同时保持大量网络连接。过去我们常使用多进程、多线程方式来处理类似任务,优点是编程容易,对多CPU的应用比较充分(虽然不一定最高效),缺点是并发能力有限,线程不是个可无限分配的资源。在过去相当长时间内多线程方式(主要指每连接一线程方式)没有出现问题,我想原因是过去网络应用主要是以WEB为主,都是短连接,应用也不像今天这么广泛。... more » - 有兴趣的看一下Jaakko Jarvi的这篇paper吧(关于运行时的泛型编程的)
有趣的是,这篇paper刚好极好地说明了为什么接口应该永远消失(为什么接口跟模板应该统一起来——实际上ruby这样新进的语言已经这么做了),取而代以真正first-class的运行时泛型。 已上传到文件区了。 [link]... more » - Bjarne说:以降低抽象惩罚来获得性能的语言设计思路仍然不会消失
以下是Bjarne的回复部分文字: I think we need quite general and generic interfaces between concurrent tasks, *but the individual processors are not getting any faster - in fact they are getting slower, being optimized for chip space and power consumption - so that low abstraction penalty could become *more*... more » - 轻量级线程为什么轻
今天看到了关于并发的大讨论,还有关于用C++/D实现轻量级线程。 我觉得在讨论具体的实现方法之前,必须要讨论一下轻量级线程是因为少了哪些功能才变轻的。 OS线程之所以重,显然并不是因为OS的开发者愚蠢造成的。也就是说轻量级线程必定是应为少了某些重要的东西后,才变轻的。少了这些之后,对我们的编程有什么不利的影响。如何来消除不利的影响。... more » - 无处不在的抽象惩罚
抽象惩罚不光语言里有,在业务开发的时候也有。 我以前做过一个面向对象的数据库中间层,把数据库的数据包装成对象,并且在对象上建立关联。差不多是这样: 班级信息里包括班主任、学生列表、班长等等属性,可以直接取出所需的对象,或者对象集合。这种抽象最好,业务层的开发不必跟数据库死缠烂打。... more » - 学习C++:实践者的方法(Beta)
旨在分析并总结学习C++的误区和正确的学习方法,为初学者或者学习了一段时间迷惘的中级学者提供一个可操作的guideline。 猛击这里 <[link]> 浏览全文,欢迎砖头(尤其是,如果你是初学者或学习了一段时间比较迷惘的话,请一定找出你觉得不好的地方),这也许是我写的C++学习方法的最后一篇文章,我觉得我要说的全都说完了:)... more » - 转鲍志云同学的一篇好文章(关于实际项目开发中的代码复用)
来源:[link] 写太多腐败话题了,要平衡一下。今天我们继续讨论技术话题,本期内容——亘古不变的话题:复用。 为了提高engineering organization的效率,复用(或者说don't reinvent the wheel,不要重新发明轮子)是很重要的。... more » - 我最近的 C++ 编码风格
本文最早是在 Linus 炮轰 C++ 事件以后写下的。当时痛定思痛,对 C++ 一下子有了一个不同的认识。当时写出来这些文字但没有公开,这两个月对这种务实编码风格有了一些实践经验,可以把这篇文章修改修改公布出来了。 自从我接触 boost 以来,我的编码习惯就模仿 boost ,其实那样并不是最好的。 boost 对 C++... more » - 老版本的 C 真不好用
前一段时间调试程序主要用log, 现在一个程序, 设计到好些数据结构, 还是需要一个调试器会好一些. 由于这个数据结构程序windows 下面也可以调试, 于是找出自己做的 vc6 安装版本来, 执行setup 就将 vc6, sp6, visual assist 等一起装了.... more » - C里实现Lambda……
reddit上最近发出来的一个方法,我只能说……太不靠谱了…… 不过,有没有让这个Lambda的编译一部分在编译期完成呢?运行时传参数进去就可以。 ...typedef int(returns_int_f)(); static returns_int_f* returns_int_lambda(char *source) { FILE *fp = popen("gcc -Wall -Werror -c -x c - -o ./wee", "w");... more » - 讨论讨论g9的好文:《JavaScript这浓眉大眼的也背叛革命了》
来源:[link] 严重推荐:-)不过估计这个讨论组里面不订阅g9 blog人也不多吧,如果看过了,请忽视我... 讨论之一: 昨天还听SpitFire说,用Ruby时,发现设计模式里面那些瓶瓶罐罐都用不着了;这不,就出现了一个绝好的例子,新版Javascript中native支持的multi-method。我想大吼一声的是,设计模式那不叫优雅,真正的原生支持才叫优雅!... more » - 在C++中使用IoC及DSM框架
在C++中使用IoC及DSM框架自Web和Java诞生以来,软件开发技术,概念以及架构的演变翻新有点让人眼花缭乱,甚至应接不暇。然而,恪守技术含量至上遗风的C++铁杆精英们似乎是其中的另类,与标新立异摈弃繁文褥节的Java,Ruby新生代之间俨如隔世。不用说DSM,就连IoC这个起源于C++年代甚至C++土壤的概念... more » - 你最想问Bjarne的关于C++的什么问题?(为Bjarne答应的访谈征集问题)
最近和Bjarne的通信中,他答应接受一次访谈。 为了让访谈能够代表更多人的意见而不是我个人的感觉,在这里邀请大家提出自己最想问的问题。 你最想问什么? BTW. 由于我会对问题进行筛选,然后再公布给大家投票。所以大家的问题最好是深思熟虑的,重要的,有理有据的:-)... more »
最后当然是我们的TopLanguage小组博客计划,我们的小组博客在这里。欢迎任何人加入,帖子在下面:
TopLanguage小组博客计划(草)
TopLanguage建立至今,太多精彩的讨论了。我觉得埋没在googlegroups的archive里面非常可惜(尽管我每隔一个月都精选出一些,但一来那只代表我的个人偏好,而来我的blog访问量还是太小了,三来,每个月才贴一个精选...交互太少)。... more »
BTW. 由于不想在这个blog贴一些短文(一旦文章多了就会造成杂音太多),所以一些短文就会发到TopLanguage小组Blog,欢迎订阅:)