Author Archives: wangleheng

返璞归真

  过去一年左右,听过的最有收获的技术讲座,就是阿北的云风的

  两人都是骨灰级程序员,阿北写过将近20年的程序,云风C++经验也超过15年;都是一线架构师,在相对自由的环境下,按照自己的思 路,架构一个完整的大系统。所以尽管他们开发的是不同产品,用的是不同技术,讲座内容听起来居然有某些相似:把握技术的方向感,设计上的返璞归真。

  其中不少一带而过的设计细节都会引发我的兴奋和一点遗憾:兴奋缘于共鸣,而遗憾则因为“如果早两年前能明白……”。不过反过来说,很多事只有躬身入局试过才能真正明白,否则就是听到了也会放过去。

  春节闲翻书,又读了一遍Conversation with I.M.PEI。 贝聿铭从名校毕业后,有十一年都专做贫民区改造项目。这阶段的工作在师友看来有些低档,但是他自己认为非常重要:因为他借此熟悉了社会是如何运作(这一类项目,大多和政府法令和补贴有关,所以必须学会跟着老板去和政府官员和媒体打交道),学会了在受限的条件下作出最合适的设计方案(书里举例说明当时如何想方设法,既能设计出完美的建筑,又能满足严格的成本限制)。通过这些磨练积累,才有了后来的卢浮宫金字塔、香港中银大厦、香山饭店和伊斯坦布尔博物馆。

  国内软件业正在发生变化。一大批工程师已经积累了“贫民区改造项目”的经验。一旦这些人得到环境的支持,拥有了独当一面自由发挥的机会,就能做出真正有趣有影响力的设计。接下来几年俺们等着瞧吧。

混合编程的前世今生

  老妈在玩Python语言,她说Python简洁严谨的风格很像Fortune,“不像C++那么乱哄哄”。从穿孔纸带开始,老太太算是各种技术都经历过一遍了。虽然比不上她老人家,俺用来赚过银子的编程语言,从本科大一兼职开始算,也有十种以上了。

  说起不同的编程语言,就掺乎到Language Wars,历来是吃力不讨好的大坑(Joel on software有一篇很经典)。最近几年的趋势是混合语言编程,用静态语言实现关键模块,用动态语言做胶水,必要的时进一步用DSL归纳特定领域的高效开发模式。

  Google一下,原来很早就有牛人预计到了这种趋势,看看John K. Ousterhout在10年前于IEEE Computer发表的这篇论文,不得不佩服他眼光很毒。其中关于gluing language和component frameworks的提法,如今已经成为业界的标准术语。

  最初的潮流推动者是微软,早期VB正是一种经典的胶水语言:从Web到Office,从ActiveX到DirctX,Win32系统 中几乎所有功能模块和技术特性,用VB都可以轻松整合。即使用今天的观点来衡量,VB6.0 / VC++6.0这一对仍然堪称黄金搭档,整套架构以COM技术为核心基础。只可惜.net技术推出后,VB突然莫名其妙地失去了定位,有一阵似乎希望变成 “另一种C#”,不断向系统级语言演化,反而让老用户无所适从。等明白过味儿来,.net 3.0不得不从头引入新的IronPython

程序员日快乐,哈哈

  云风在BLOG上说了一个冷笑话,好寒啊,果然deepcold

  说点严肃的。云风提到的ENIAC,《程序员》杂志上专门澄清过,它不是第一台电子计算机:美国法院对于计算机发明权的归属展开了多年法庭调查,在1973年作出最终宣判:第一台电子计算机是由依阿华州立大学的物理学家约翰·文森特·阿坦那索夫于1939年发明的ABC,而不是ENIAC,后者对ABC有明显的抄袭。ENIAC的发明人虽然因抢注专利获得了暴利,但此前由所谓“计算机之父”而得来的各种荣誉大多被陆续取消。

Tango Tina文档翻译完了

  Tina文档的翻译完成了初稿,Tango的网站管理员刚刚在文档类表wiki上添加了这篇BLOG的链接。当然这还只是粗坯,不少地方需要进一步修饰甚至推倒重来。

  尽量保证每晚都抽出一小段时间,先校对前一天的内容,再翻译下一段,蚂蚁搬家。不算太长的文档,总共用了两个月,比原计划久一些。到底是第一次,年底这段时间工作压力也比较大,又碰到骨折受伤出差私事影响情绪,效率和质量都不算完美。不管怎样,能坚持下来挺有成就感。

  人家问我是否继续翻译手册的其他各章。我打算先休息一段,至少等到骨折完全恢复再说。还会继续踅摸D语言,希望与有兴趣的朋友互相交流,大家也可以分工合作进行翻译。

  BTW1:石膏已经拆了,经过这几天,机能基本恢复了,不用担心变成周总理那样,偶尔还会疼,腰椎扭伤也需要休养。谢谢大家的关心。

  BTW2:好吧俺承认,胳膊的确是滑单板摔断的:南山今年开了一条很长很好玩的新雪道,也许是傍晚周围的景色比较容易分散精力,呵呵。估计老板也猜出来了,没点破。话说回来了,我也没误事,吊着石膏就去出差了,差点让大雪留在上海过年。

2007年图灵奖颁发给Edmund M. Clarke,Allen Emerson和Joseph Sifakis

  ACM官方网站上刚刚发布了如下消息

  ACM, the Association for Computing Machinery, has named Edmund M. Clarke, E. Allen Emerson, and Joseph Sifakis the winners of the 2007 A.M. Turing Award, widely considered the most prestigious award in computing, for their original and continuing research in a quality assurance process known as Model Checking

  关于Model Checking的背景知识可以参考wikipedia。另外CSDN有牛人推荐这篇介绍。还有g9老大的博客

Google Tech上关于Python 3000的讲座

  D语言新闻组里刚刚转载了Google Tech Talk中关于多线程的讲座,跑去搜索,又发现了不少其他内容。

  下面这是Guido van Rossum于06年初介绍传说中的Python 3000。过了一年半,前几天刚发布了alpha 2,估计final版发布得等到奥运会之后。

  就像上次说的,站队很重要,我的技术储备大多押宝到Google。看看Ubuntu、Firefox、Python、AJAX这些年的成长轨迹,就能知道Google在引领技术趋势方面的能量。这种对软件工程师的绝对影响力曾经只属于微软;而现在的微软,越来越像OS/2年代的IBM了(多久没关心软件业从XP向vista的迁移了?)。这并不意味着微软不行了,它仍然是最赚钱的蓝筹股,只不过,它不再是那个让人闻风丧胆所向披靡的怪物了。

上海大雪&杂录

  刚总结完今天的工作日志,上来乱敲。

  冷空气跟着俺们的火车一起南下,我们刚到,上海就开始下雪,这一周都没停,而且越下越大,从没想到能在上海见到鹅毛大雪。南方屋子没暖气,于是通夜把空调开到30摄氏度,和服务员要两条被子盖,还好还好。

  动身前在北京买好了返程的火车票,能不能按时回去,要看老天爷的意思了。估计没那么差运气(或好运气?)要留在上海过年。

  其实这两天顾不上考虑这些,忙着到处交流。Robert.Capa说:“如果你拍得不够好,是因为你靠的不够近”。这一年与生物学家频繁交流收获很大,越来越有信心,改进意见和Todo List正在closing。很骄傲,因为06年底正是本人力排众议,带着并不完美的软件版本到用户现场常驻,进行了第一次Beta测试和现场改进,前两天老板发邮件说:“现在看来joyfire的决策是对的,他是组里的火车头,两个大灯贼亮”。

  同来的研究生小孩值得赞扬:做事有条理,定好计划就按部就班执行,交流有热情有耐心,思考跟得上,能抓重点,编程更是一把好手,而且心 态很好,遇到什么情况都很放松。表面看来他做什么都很快,其实工作量很大,所有事都不耽误。这就是传说中的聪明人。最看不上的就是,整天苦大仇深,哭着喊 着,累啊忙啊压力啊(虽然俺自己就是这样的)。以前提过,我曾经检测组里的代码开发效率,表面看起来完全相同的人,都是计算机专业的硕士博士,产出居然相 差7倍以上。所以还得从效率入手解决问题,你就把自己累死,一天能有56个小时?

  除了正事,周末去陆家嘴一带活动,见朋友,看景色,上海果然很漂亮。女大十八变,好多小丫头几年没见,都变作了精致的上海女人。我们住在肇嘉浜路,又是26层,晚上从窗户俯视灯火通明的徐家汇,加上漫天雪花,很有点魔幻色彩。

  再过几天就回北京过年了。这一年又快忙完了。

到上海出差

  吊着石膏到上海出差。刚到,把住宿安顿好了。路上挺顺利。感觉上海人没有传说中那么难打交道。无论是出租车司机,还是招待所的工作人员,都挺热情周到的。

  公事以外还有重要任务:拜访老妈的师友。当年生下我以后,她到上海读研究生(我三岁时来看过妈妈,冰砖很好吃,这是俺对上海的最初印象,哈哈)。

  OK,去干正事了。回头再写。

Google研发经理的职位要求

  胳膊断了以后写的代码就明显少了,情绪也显得焦躁。这周唯一一次放松,是老娘学JAVA,写一个SWT小界面,跑不通,从MSN上喊我过去帮忙 调程序(就隔一道门,喊一嗓子呗,俺也觉得很装)。反过来,现在老板不好意思严厉要求俺,肆无忌惮迟到早退,有更多机会思考、上网和交流,为下一版的 pFind开发做准备。

  搜索有关python的东西,Google在页面顶端明显地放置了招聘广告,点进去瞅瞅自己能卖多少钱一斤肉。

  看得出来Google是懂行的,知道什么人是真正的高手(废话,人家不懂谁懂)。有趣的现象是MS和Google都投资于Python,而ThoughtWorks倾向于Ruby,(可怜的PHP跟错了Yahoo!)。