Archive for category 随笔
我们都只是一个偶然的存在,并因为偶然而继续存在
我们都只是一个偶然的存在,并因为偶然而继续存在
读周老师的博文(在这里),很感动于一段这样的历史,以及她能如此面对这些历史。我自己的一些历史,我尚不能面对,同样我也没有理由希望别人去面对自己的历史。但,这些都不重要,都不是我最深的触动。
历史,不会带进棺材,总会面对,总是必然。而我们的存在,其实不过是一个偶然。
知道这一点,是有一天读到一et8.net上的一个网友的文章,讲到“无常”。他写到这样一段文字:
就像我们在帐篷里生火煮鸡蛋,我们的目的是要把蛋煮熟。……我们把锅里面加上水,把鸡蛋放进去,把火生到一定程度,然后就等着鸡蛋熟。当我们做好这些事情的时候,我们心里就有10成的把握——10分钟后我们就可以吃到熟鸡蛋啦?!为什么?为什么我们这个时候就有信心能吃到熟鸡蛋?
其实我们能做的是“趋势”而不是“目的”,我们为了能吃到熟鸡蛋,制造了所有能让鸡蛋煮熟的因素,这些因素是我们作为“人”能够控制的,比如生火,加水等等。但是即使这样鸡蛋还是有可能没办法煮熟,比如这个时候突然冲了只山羊进来把锅打翻了!锅里的水溅出来把火浇熄了!如此等等。
面对无常的世界,如果我们想要成就一件事情,想要做一件事情,我们就不能把这件事情作为“目的”,虽然我们常常说自己的目的是什么什么。但是我们心里要清楚,我们其实要做的是制造一个达到这个“目的”的趋势。当趋势制造到一定的时候,我们就是祈求这个结果不要出现都没有办法。就像我们的鸡蛋已经开始在开水里翻滚了,同时有了上次的经验,我们还找了人在门口看着不要让山羊进来,这个时候鸡蛋不能被煮熟的几率已经接近不可能了。做越是复杂的事情心里越要清楚,不管我们制造趋势,怎么努力,但是事情的结果并不由我们这一个因素控制,任何现象都是一个组合的结局而非单一因素能影响的。所以一定要抱有“最坏”的打算,而且这个“最坏”的结果是能够接受的。
所以在这个无常的世界里面,所有的目的只是一个“诸多偶然因素的交互影响”的最终(或过程中的)现象,比如成功,比如买房,比如结婚,比如幸福,比如死亡……
我读到这里的时候,就很惊讶。所有自以为是人们啊,我们,和刚刚死在自己的脚下的那只蚂蚁并没有什么不同。我们的生存与死亡,与他们的生存与死亡,都一样的“偶然”而不可知。从亿万个精子的惟一机会,到人生历程中的每一次选择与被选择,一直到现在,你坐在座位上看这篇文章,每一瞬息间都存在着某种偶然性。我们便是在这样的偶然中存在着、活着、衍变着。
中学的时候,我的一个同学被父亲拉到门口劈头盖脸地打了一顿,还罚跪。结果呢?后来他偷了家里的钱,离家出走了。再回来的时候,被学校开除掉。再后来就只好接了父亲的班,下井挖煤了。
我跟这个同学是很好的朋友,从小到大的玩伴,相互之间背景经历、能力素质大抵也差不多。但是我们最终却在两条轨道上,走着各自不同的人生道路。回想这些,他的父亲粗暴的教育与他的反抗,便是诸多偶然因素中的一个。所以,我现在常常说,我们在网上拍砖开架,该打脸的就打脸,该打屁股的就打屁股,切不要反过来,那样做就很成问题了。我这位同学的父亲,就是这个问题:原本只是自家教育一下的事,却给拖在大厅广众之下,伤了孩子的自尊。一个好好的孩子,大家都说挺老实的一个人,最终就因为打脸还是打屁股的问题,给毁了。这样的结果,我的人生经历中,不是一例两例的。
正因为不是一例两例,所以我也注意到其中的偶然性。因为我也是从小被父亲打到大的,也被拖到厅众之下责打过,也曾想着要出走“给他看看”,也曾想着找个地方躲起来或者跳下去。我的人生,也是在这样一个个偶然性的“机会”与“可能”面前,辗转地走到现在的。
同样的一件事,同样的一个做法,同样的一片心思,在不同的人、不同的时间,因为不同的可能性,结果是不一样的。有些时候,我们可以象周老师那样,在几十年之后等到一个结果,原谅并开始感恩自己的历史。但是也可能还没有熬过这段时间,就互存介蒂了,就分崩离析了。人这一生的偶然性,真的令人无言。
九岁的时候,我的班主任老师误以为我偷了农民家的桔子,要我请家长。在我准备从楼顶跳下去的时候,我选择了活下来,但我无法向这位老师澄清这件事。等了几年,我终于弄明白整件事的原委,却失去了告诉她的机会——她已经离开了。
我因为一个偶然——跟另一名同学穿着相同的衣服,而被误解;又因为偶然感动或恐惧,而选择而活下来;又因为这位老师偶然的离开,而遗憾至今。
我,积极响应《JavaScript征途》读后感写作有奖召集令!
(此下删去文字若干……)
一、转载官方召集令
=====
http://www.cnblogs.com/haoxia/archive/2009/09/04/1560504.html
http://blog.csdn.net/wenjava/archive/2009/09/04/4520573.aspx
http://www.css8.cn/chat/dispbbs.asp?boardid=55&Id=2775
(以上任一)
召集时间:2009年9月1日—9月25日
活动内容:
请查看下面提供的关于《JavaScript征途》一书的基本信息及样章,如果您有兴趣在阅读完本书后写出一篇读后感,你可以直接在本活动下回复报名……
读后感写作内容要求:
1.书中内容对读者技术开发的启发及意义;
2.与自身实践结合的经验及体会;
3.其他对本书的直观感受与评价。
写作规范:
1.内容结构清晰,语言通顺,言之有物。
2.必须为原创作品,不得抄袭、套改。
3.内容健康向上,不违反现行的国家法律法规等。
活动奖项设置:
参与奖:凡报名参与本次活动每位读者均可获赠《JavaScript参考手册(W3C标准版)》一份,前50名的读者还可获得中国互动出版网五元购书卡一张;
二、相关问题
=====
由于本人尚有私务,对于下列问题,此次一并答出,不予多次回复。请谅解。
1、为什么不等“在阅读完本书后……”?
——
抱歉,有些书让人迫不及待。这本书正是如此。
2、你的读后感能满足上述基本要求吗?
——
我仔细读过上述六条,不满足的话,你可以法律起述我。
3、你认为你会得奖吗?
——
会的。
4、你对奖品满意吗?
——
非常期待。如果真的有“W3C标准”下的《JavaScript参考手册》,我愿意再写一篇读后感。
另外,我认为有机会赶上前50名的话,五元购书卡也是超值啊!
5、你认识作者吗?
——
不认识。所以保证这读后感客观,发自真情。
6、可以公开你的读后感吗?
——
当然。要不怎么拿大奖?
7、你对本次活动有什么提议?
——
展现了飞思科技与作者胸怀天下,敢为天下先、听天下言的恢宏气度。建议出版业以为典范!
又,书若不能拿出来评,还是书吗?写在纸上,而又不能评的,只有圣旨。所以,首先向各位榜样致敬。
8、你对评选大奖有什么提议?
——
我认为,只说好的书评,是垃圾;只说坏的书评,比垃圾略好;好坏讲一半的书评,不妨扔掉。所以评奖的工作,就是在一堆垃圾中挑好一点的垃圾。辛苦各位评奖的专家了。
又,如果要说好一点的书评,那就是对这个行业、包括出版的、IT(及论坛的)、学术的等等能起到哪怕一点点积极作用的。我相信各位专家法眼深藏,于芸芸众稿中必有所得。
三、读后感全文
=====
请容我小心眼一下,增加一下我的博客的流量,以及人气等等。故请移步:
《从“装B被雷劈”讲起》
http://aimingoo.spaces.live.com/blog/cns!F9303C43D5CEAFB3!906.entry
从“装B被雷劈”讲起
从“装B被雷劈”讲起
(谨以本文,积极响应《JavaScript征途》读后感写作有奖召集令!参见这里……)
(最新进展,《真相总是能被还原的——兼批一切口号党、标题党与托托党!》参见这里……)
从“装B被雷劈”讲起
=======
关于我对《JavaScript征途》这本书在51js.com上的讨论(在这里),readkid 在 blueidea.com 上说了一句:爱民真有范儿。这话,说得我真脸红。这次是真正脸红,不是装——我又不是明星要人,既然不是,还有人家的那个“范儿”,是我的错。做人做到不诚恳,这就是毛病。用时下流行的话来说,就是“莫装B,装B被雷劈!”
话粗,理是对的。有人喜欢这么讲,也有人喜欢那么讲,比如“君子坦荡荡,小人长戚戚”,于人于事,我还畏言畏行,不是“长戚戚”么。
好。我们回头来说理。王昊同学曾经说“有些时候的争论,不是为了正误,而是为了面子”。这话很好,我给画到“架构师能力模型图”里,还给写到了文章里头,时时拿来自省。然而这两天,又忽有领悟,觉得王昊这话原来还是只说了一半。另一半,也是可以反过来说的,就是:
有些时候的不争论,也不是为了正误,而是为了面子。
比如我在51js.com上的不争论,把自己置身事外,以及看起来的那个所谓的“范儿”,其实,并非因为朱同学或hax同学的正误,而不过是为了面子。
撕掉面子问题,我们来谈谈事呢?是所谓“君子和而不同,小人同而不和”。其实我并不认可朱同学的言论与行为的,表面上我们却做成了一团和气,朱同学还一声声“爱民”地称呼着,仿佛我与他熟识一般——话到这里,我们论坛上讨论,就用论坛ID好了,大名叫上来,听起来就不真诚,也无宜于谈是论非。所以呢,这个局面,也就是所谓“(表面上看来)同,而不和”,做成了小人一般。
所以无怪于readkid说我“有范儿”的时候,我的脸红得跟猴屁股一般。自己也有小人之行,别人揭了出来,哪能装得没事人一样地呢?就算哪天有我这个心思,也怕没那个脸皮,厚得可以遮住屁股红。
好不好呢?是个问题。
=======
所以还说回来。朱同学的书好不好呢?是个问题。我的答案是:不好。而且是:相当不好。
因为要听我的意见嘛,自然要从我的角度上来讲,而不是从他所谓的“初学者的”角度上来讲。初学者喜欢什么,我们就给什么,那不也是误人子弟么?初学者的选择能力弱,分辨能力弱,这是众所周知的,但如果因为这个,我们就塞给人家毒品,还说“人家喜欢”——那不是犯罪么?而且还是利用人家弱点的犯罪,前者是为不义,后者是为不德。所以前两年确有出版社约我写“给初学者的书”,我拒了,我没那个道行,写不出来我就不接嘛。
那我——主观地啊——认为应该给初学者看的书是如何的呢?首先的、起码的,要“没错”!这是第一要务。你可以不写,可以留问号,可以说“参见”,但是,要写出来,就起码要“不错”。例如:
JavaScript 里面有6种基本类型,对象是其中一种,各种对象是“对象(object)”这一种类型中的子类(类型)。
这是基本常识。如果要讲错了,把HTML中的DOM对象说成是基本,或把null说成是类型,那就是的确错了,教坏了新同学。但是朱同学就是要犯这样的错误。他写道:
JavaScript 语言只有 3 种最原始的数据类型:数值型、字符串型和布尔型……JavaScript 还定义了几个特殊的数据类型,如空类型(null)和未定义类型(undefined)。基本数据类型按值传送,而复杂数据类型按引用传送。
这样的写法不但是“错”,而且还相当可笑。这样的写法,难道就是“让初学者看得更懂”吗?或者不这样写就无益于初学者阅读了吗?绝对不是!显然不是!而更显然的,不过是作者在基本概念上的模糊、糊涂!以及,根本上连一些手册都没读明白,写东西不过是“想当然尔”!
作者朱同学的问题在于:他不单不认为这是个问题,还认为作为读者的——初学者,理所应当地应该接受他的这种写法。
这种写法到底是什么样子的呢?
1、扯虎皮拉大旗
对初学者,用汇编、机器指令甚至于敏感电流的强弱来充塞门面:反正你也看不懂,我说说说就说说,起码看起来比你高端。
2、语言轻佻视为乐趣
书中说,“柔弱的JavaScript 语言——JavaScript 是一种弱类型语言,其柔弱性具体表现如下……”我真的不明白,讲语言的性质有讲“柔弱性”的吗?又不是评价人家小姑娘的小蛮腰。
3、把随意猜想当成理论系统
例如把数据分成值类型和引用类型——这是可行的,但——然后说“值存储在栈中、引用类型存储在堆”中。这是典型的:
– 把动态语言当成静态语言讲
– 把解释语言当成编译语言讲
– 把猜想当成理论讲
能犯的错在这里都犯了,能乱讲的都尽可能地讲乱了。又尤其是朱同学后面给出了一个“栈和堆数据结构比较”,要是初学者拿着这个表格进考场的话,哈哈,监考老师都不用抓,反正抄出来也是个不及格!
所以,我的答案是:相当相当地,不好!
不好,不好你还不说,害人掉坑里头!
=====
有一张图,一个人站在大坑前面自说自话,全然不顾后面有人掉进了水坑:
是谓“小人”!当人做成了君子模样,行为上却还是小人的话,那就是危害大了。比如我前面的那个“范儿”,就让我做了回小人:你知道不好,你为啥不说?!
月影同学写的书《JavaScript王者归来》我看过样章,就提了大把意见给他。我特地在MSN里跟月同学一一讨论。但书出版了,我就什么话也不说了。这是一种不说,叫“先说后不说”。朱同学的书还没出,发了样章,我觉得不好,但没啥交情在里面,所以也不会象给月影那样地发个消息去讲讲;直等到hax同学揭批了,列了个清单,我才去分析下错误,然后就停下不说;最后两方面的把事情吵得天响,等到有人来揭我的“范儿”了,我又才跳出来说话。这也是一种不说,叫“先不说后说”。
总是有“不说”的行为在里头的。为啥“不说”呢?为啥不跳出来一一说清楚呢?
一是你得看给谁说。《观止》这本书就相当好,责编前些天跟我讨论,我就直言:书做得没品味、粗糙;这么好的书,做成这样,不如重做!果真,人家责编就冒着影响业绩的风险,停止了旧版的印刷发货,赶着工夫做新版,采纳了我的几条建议:把目录做细、把纸张用好、把背景说清。这位责编,我就佩服。佩服啥呢:能广开言路啊!出版做啥?买纸挣钱啊!你说他纸都用不好,不跟挖他财路差不多吗?哈,人家听得进去。好编辑!这就比拿多少个大奖要好!因为人家是真为作者做书,为读者做书。
二是你也得看怎么说。出版社的朋友问我对朱同学这样事的看法。我在MSN里头说:“我觉得,作为对作者的珍惜,在出版之前,能在作者之间相互沟通,多多互助,这是很好的。非得等到出版了,大家一拥而上地去批评,人家接受不了,也是正常。”所以呢,如果真想评论什么,就不要掐着人家咽喉说“你听我说呀!”屁话,人家都快被你掐死了,还听你说个鬼啊?
所以,道理我是懂的,我也在做。但是呢,这件事的双方都要明理才行。你给人家讲讲好坏,人家不听,反倒嫌你挡了人家晋升的道途,反倒说你说的是恶言,要把你放在老虎凳上过过堂。那,接下来的争论,不是为了正误,而是为了面子——就成必然的事情了。
反过来说,为了面子而不说,也成了必然的事情了。
我为啥不说?
=====
出版社的朋友问我为啥不说话?我说,如果我没写JavaScript的书,我大概会发言的。因为我写了一本,朱同学出同类的书,我就要跳出来“喊打喊杀”,好象说不通。
有小人心啊!——现在我就是这么看自己的。我出言批评别人了,并不见得就是在把自己“立为正统”,别人真要这么想,我没这心思不就成了?!再者,朱同学再来辩解的是所谓“学术问题”吗?不是啊!那些都是“基础问题”,基础问题讲不清,误人啊!看着误人,跟看着人跳坑里有区别吗?
小人心啊。
所以我不说,是小人心在作祟。说出来,别人再说我小人,起码也是真小人哈。儒家啊,你分个啥小人君子嘛。还是佛家说得好嘛:本心做事,心即是佛。所以我们不妨高喊着“起来!起来!”把那些做着样子的,装着“范儿”的,都拍到他们自己挖的坑坑里头去:
所以呢,我想要说的是:大家都拉下架子,我也没那个“范儿”了,朱同学也没有那个“范儿”了。由此开放言路,我们都来讨论技术,才有得发展。批评是要的,自我批评也是要的,接受批评更是要的。做错、写错、表错情都没啥了不得的,能自降一格,真正虚了心的去听人骂、接受、改进,“范儿”才会由外至内的消失,这才是真情、真知。没有真心对人,没有虚心对事,你发个贴来甚?拉那么多人来做招牌做甚?心不在了,于诸事无益,骂仗还会继续,看客也还将口水。
最后,关于用心,我还是再讲讲那个故事吧:
我藏行的路上,就看见过朝圣的信徒们,三步一叩首地行进着、行进着……到得寺庙之前,用酥油给佛像贴上一块钱一角钱一分钱,分分角角摞满寺庙的山墙。然而信徒们,贫苦的依然贫苦着,羼弱的依然羼弱着,迷惑地绕行于山墙之外的转经路上。这情景,恰如同那些书本上的标题,以及被标题蛊惑着、燥热着的读者与“作”者。
我便真到过一个在翻新的寺庙里去,见到过一尊没有金漆彩描的佛像。绕到他的背后看去,在左上、肩下的位置有一个方形的孔洞。那时我问庙里的住持,这个孔洞有什么意义呢?住持说,在佛像落成之前,要请了经文放进去,那是佛像的心的位置。En…连做法事的老住持也知道,只铸个泥菩萨在那里是没用的,华衣锦服的名头下面,有没有解决问题的实质,方可见真正的良心。
(又,关于这本书的“技术讨论”,我另发博客。这里我只自顾自的反省与揭批先。)
开始怀疑我的作文风格
开始怀疑我的作文风格
周筠老师已经很多次提到对我的作文风格的意见。综合起来,应该有三点,第一是虚话太多,实话太少;第二是古文引得太多,不必要;第三是文白夹杂的,读起来不顺畅。总的来说,这些问题我都是有些,但心底里总是在挣扎:改不改?怎么改?改完了是什么样子?改完了是不是我要的那样东西?
正所谓东施效颦,别人的笑脸儿没学会,自己的却忘掉了。我的风格到底是什么风格呢?怎么形成的呢?这些东西我得回过头来想想,想清楚了,再改不迟。
首先,我认为不同的内容应该是不同的文风,例如说写随笔跟写论文就会不同。读随笔多了,乍一读论文就会很不爽,少有论文写得令人开心的。我自己的文章,放在博客上的,大多偏向说理,少有记事的。我记事的文章在文字方面就会宽松一些,比较像是在说人话。而论理的文章呢,就会弯弯绕一点。再加上自己不喜欢骂人,要是愤怒了写篇文章,那可能看的人就得很痛苦,半天不知道我骂的是什么,又是怎么骂的。
这个,做文章太假。我一向来性格平和而不激进,在讲演时说话激烈了一点,回家都得自我反省好几天。所以写文章喜欢平一点,即使批评也讲分寸面子,即使嬉怒也讲收敛平和,这个是性格上的东西反映到文章上了。但是在这个社会里呀,要做个“真人”真的很难,开口便骂,出言就带着个性色彩的我也做不来。这样的人并不是不好——我这两天看《观止》,那位勇士卡特勒(Windows NT的缔造者)就是这样一种人,只是我做不来。
其实所谓做个真人,就是做真自己。别人喜欢怎样的人,我就做成怎样,那反倒是假了。我平一点就平一点好了,慢一点就慢一点好。这个不改,改了就不是我了。我想。
但接下来,在文句方面,我自认一向断句有问题,这是时时在改的东西。例如上面有一句:
-----
我自己的文章,放在博客上的,大多偏向说理,少有记事的。
-----
这是我曾经用过的风格。但现在我写的时候就会觉得不当,一般就会改成下面这个样子:
-----
我自己放在博客上的文章,大多偏向说理,少有记事的。
-----
断句问题是在我中学写文章的时候养成的。我一向会在写完文章之后自己来朗读,通过朗读来感觉文章里的用词、造句,以及语气方面的抑扬顿锉是否合适。而朗读的时候,就会自然形成停顿。在写文章的时候,其实不需要总把这些停顿标出来。但朗读成了习惯之后,自然地就会在写文章里面多用断句了。这是我的体会,也需要改。比如我现下读来,当前这一段里就有一两处逗号是不必须的。
我写文章还有一些“习气”,自己以前觉得那是比较“文气”的感觉。例如上面一段中的:
-----
比如我现下读来,……
-----
这种写法在现在已经很少用了,一般就应该写成:
-----
比如我现在读起来,……
-----
这样的风格在我的每一篇文章里到处都有。再往前翻翻,上面的所改的句子就应该重新改过。例如改成:
-----
我自己放在博客上的文章,比较多的是在说理,记事的很少。
-----
因为“少有……”这样的用法现在也已经不太多了。
嗯,在这些方面,周老师与朋友们都提得很对,我得下功夫去改正。文字写得平一点慢一点都可以,写得酸了,不好。
最后就是关于这个古文的。周老师说古文用得滥了,就会象牙齿上沾了东西,自己不觉得,看的人难受。这个比喻实在太好太好了。我以前就不觉得,所以也就不想改,但这只是因为我不觉得。别人呢?别人可觉得了,比如《大道至简》的读者就说:你的古文引用,能使你的读者少了一半。这话在当时是没有触动我的,而且还使我发奋地写了一整篇、几千字的文言。
现在来看,文言引用的确是个问题。文章不单单是讲自己想讲的,还是给人看的。看的人不舒服,你讲什么都白给。这很对,古文以后要少用,少用,慎用。
文言这个东西,真的是好东西。我尽管以后要少用了,但还是要推荐大家去多读,我自己呢,也不会因此而放下那些文言古书。但读书是读思想,不是读形式。读来读去,把古文的形式也给读到我的文章里来了,是我的错。
“文化知识是狗屎”论
Aime 说:
文化知识:=狗屎
我觉得还不如狗屎
Aimingoo 说:
哈哈。
改了。现在还不如狗屎了。
(我将MSN签名改成了“文化知识还不如狗屎”)
Aime 说:
呵呵
Aimingoo 说:
明天,可能会改成“有文化有知识,好过有狗屎”。呵呵。
Aime 说:
呵呵,有时候 有狗屎,好过有文化知识。
Aimingoo 说:
有文化有知识,至少不会踩一脚狗屎。但不一定能避免糊一身狗屎。
Aime 说:
不如狗屎的东西,还不如是狗屎。
=======================================
有两种歌声可以打动我
我这个人,常常听歌。但是在我这听歌的形式里,耳机大概就是拿来塞住耳朵,以便听不到别的声音的——除了“塞住耳朵”之外,别无它用。因为事实上我在工作的时候,连歌词也听不见,所谓充耳不闻,莫过于是。
当然也有例外。总有些纯净的声音能在我溺在工作中的时候将我拯救出来。我曾经非常喜欢听吕贝卡(Rebecca Pidgeon)的Spanish Hariem,她那纯美的、轻快的声音总能从种种声音中欢乐地跳跃着跑出来,我就会停在那里,静静地听完她。或有些清新的歌词能撩动心弦,让我惊愣当场。陶喆的“盼你在此”,就总让我流连于一句“如果你遇见我,你的手放口袋里,还是会把我拥在怀里”。
总以为大概是这样美的或动听的声音词句才能打动我,毕竟我是一个无论歌名歌词还是歌手都无视的、几乎毫无乐感的人。我对音乐过于木讷,以致于要让我从佛堂钟声中听出梵音来,大概得是佛祖来敲才成。所以我最多也就读读经文,想要由彼种法子得道,此生无望矣——我认为。
由了这些习惯,下载了一些随机听歌的软件放在笔记本上——它们被我认为是“类似于耳塞”的工具。我本来就指望着他们让我忘记周遭的物事,而不是听到——某种——声音的。然而我今天才知道,我错了。
原来,是有另一种歌声可以打动我的。
年年的快女都不看的,李宇春那一届(第几届?)正好碰在我出差,所以在宾馆里看了几场。李宇春不是我喜欢的,周笔畅自然,而论声音最好的当然是张靓颖。06年在上海的“电影百年”晚会里,我还去听过张靓颖的歌,现场的感觉的确很好。不过总的来说,我还是不关注这些的:不看快女,也不特别挑着她们的歌来听。但是今天打动我的这首歌,便是这届快女的。至于我为什么打了半天哑迷不说这快女的名字,便是因为实在不好意思说出口,因为,她叫曾轶可。
曾轶可,一个声音烂得足够可以的快女十强!
能够让我从梵音、海豚音、噪音……以及种种品质不同、类属不同的声音中摆脱出来、木然当场的,居然是绵羊音。在那声音开始的一刹那,我的眼睛就直了;第二秒钟,我就几近昏厥;第三秒钟,灵魂就离我而去,……在我泪眼迷蒙地用颤抖着的、无力的手指好不容易击中鼠标,以停掉那令人绝望的声响之后,我的报复心由之而起:我要知道,这是个什么鸟人!
放狗一搜,呀!的确是个鸟人!这将要或已经声震天下的音响儿,便是快女十强赛中的一首“最天使”。那时曾MM便装着一对假翅膀,作鸟人状地飞出来,又作鸟人状地飞回去。而正是这飞来飞去的鸟人气跑了包小柏,震昏了沈黎辉,连我这少在上班时间写文字的人,也愤然提笔研墨,胸中郁积不吐不快。
世道啊!居然有这样的一种歌声可以打动我!警醒啊,做软件的、尤其是做随机音乐播放软件的弟兄们啊,一定要记住用户的需求:为了曾轶可,加个黑名单吧!求求你们啦。
用户第一。OVER。
(注,其实我也可以写很烂的、很语无伦次的、很无聊乏味的文字的,谨以此文为证)
感受支付宝
感受支付宝
去年英雄会前后到的北京,而今年离开北京也是在英雄会的前后。时间匆匆便是一
年,一面是无有所得,另一面则是心性练得越发的沉稳了。有很多东西渐渐地去做、
去感受、去蹉跎,慢慢地也就明白了。所以人嘛,不要怕错,不要怕烦,不要怕没
成绩,怕的是没思考。走过了路,摔过了跟头,跟没事人一样,那便是白经历了,
老天爷掉块宝在他身边,也是无视的。
去年赴京时正赶上英雄会,那时便做了一首小诗,写道:
昨夜方泸闵,此时已京中。
将相王侯府,笑谈作一梦。
回见来时路,山峦几多重。
俯仰清声处,执手是英雄。
今年再见英雄们,心气已经被蹉跎了许多,没了俯仰清声,也没了笑谈一梦。那晚
跟韩磊坐在一起大嚼烤鸡翅,与许多CSDN的朋友们在一起灌啤酒说闲话(*见这里),
回复了平常,便体会出来:我们这些白领金领,无过于一群饭桶。所以还是David I
更为真实,我2005年在上海见他时,他用叉子举着大大的肉块开心得象个大孩子,
这次再见他仍是无肉不欢,见到素菜在眼前晃的时候,神情还是象个孩子丢了糖
果。
在杭州基本安定了,支付宝的内训时间相当长,大概得有近一个月的时间。所以还
在内训着,看着、听着阿里的文化,而非走进它、感受它。在上海的时候,跟王昊
便论到这个“感受”二字,那是“以体察之,感同身受”。感受,可不是轻易能得
的,是要设身处地去察去领去受的。所以大多数时候我们说我们有种种“感受”,
那都是相当的肤浅,充其量不过是“感觉”而已。再就是前些天在Beijing Openparty
上,与朋友讨论起“清醒”二字,我当时就说:多年前的一些经历让我意识到大多
数人已经不记得树叶是绿色的,以及阳光的亮色,因为他们都没有停下来看过,更
远远谈不上清醒。所以“清醒”,其实是要先用眼睛去看的,沉静下来,倒空自己,
放开了眼界去看,而后才会谈得上“清醒”。
这些已经是过往的领悟了。如今我看我,既不是那么清醒着,也远非有什么感受,
甚至连聪明二字也用不上了。以前朋友说我聪明,我就哈哈笑着,说自己其实不那
么聪明,至多是努力些。这话分两半讲,一半是谦虚,另一半还有着往脸上贴金的
嫌疑。这前两天刚到杭州,便在超市见到一件新鲜的物事。是一个塑料杯子,中间
有夹层,夹层里有一些分不清是水是油的液体。杯子有名,叫“冰杯”。想想就明
白,放在冰箱里,等液体结冰了,拿出来倒上啤酒快速冰镇,比用冰块要强。
(这就是有名的“冰杯”了)
(侧面再来显一下)
于是弄了一个回家搁冰箱里。过许久拿了出来尝试,却满不是那么回事:那夹层里
的液体并不甚满,所以冰块只有杯子的一半不到,而根据物理学原理,热液是在上
面的,不会回流到冰杯的下面去。所以,看起来从外向内地冰冻啤酒会很有效,但
远比不上冰块的效果:不但从内向外,冰块最终还会浮起,变成从上到下的致冷。
于是对这个冰杯大感失望,心里想着:难不成用个冰杯,还得找个筷子来搅和?心
里除了不满,还生出搞技术工作的那种牛劲来:要不我发明一个东东出来,改善一
下这个致冷效果?
当然我什么也没发明出来,而杯子则被继续搁在冰箱里,偶尔地取出来用用。每每
用它,便心中愤愤:如此冰杯,存之无用,弃之可惜。这天实在闲了,便注意到它
的杯壁上还有一个“说明书”,不但有字,还有图画着,很细致。只是以前从未想
过:一个杯子,还需要什么说明书呢?而这说明书与图画,其实只表达了一个意思:
倒过来放。
(仔细看看说明书呢)
是啊!夹层里的液体不满,倒过来放着的时候,底下便是空着。等热一些的啤酒放
进去,杯口的冰水向下流,便同样是有了回流的效果啊!是时大惊:如此简单!不
过是“倒过来放”而已!我责怪这杯子了如此久,说那发明者那么笨,而真正的问
题在于:我怎么从来没有去看过这项发明呢?
所以我说我不聪明。聪明啊,古人这个词就造得很好:耳聪目明,只要能去看能去
听,就是聪明了。我们大多数人的不聪明,只是不会看不会听罢了。把他放在一个
新环境里去,他就象个聋子瞎子,只按自己所经历、所知道的去做去想,那又何来
聪明可言呢?刚到支付宝,王昊就在MSN里叮嘱说:一定要认识高人啊。我说:哈
哈,我现在睁大眼睛在看着呢。王昊又说:用耳朵吧。我回了两个字:都用。
能看能听,我至少还有机会变得聪明,进而清醒,进而感受支付宝。唯其感受,才
有体会。我想,这就是阿里文化里说“三年才会成为阿里人”的源由了吧。同样地
也写段短诗,遂了王昊这寻访高人的心愿:
五月远京城,往此寻高人。
冰杯小作难,唤我掩柴门。
晨作于西湖,暮归在古墩。
筷头还肉香,竹园正新笋。
写在《动态函数式语言精髓》发布之前~
《要有光》
我一直在寻求尽头, 或展望于将来, 或求源于过往。
我在一道大河的中间, 前后观望, 时而俯首所得的, 不过是一掬破碎的倒影。
倒影中,还是我的迷惘。
注:
--- 《动态函数式语言精髓》是正在计划发布的一份电子书,当然,既是计划,便只能敬 请期待了。这段文字,是它的序言中的一个段落,撷摘了下来,读得颇有些味道。哈哈。
骂作!
==============================================================
骂作! —— 市场经济与个人情感 ==============================================================
在DOGN(一个私人的、小圈子的社区)里,我曾经给一个用极其夸张的语言来称赞我的 老朋友说:棒杀是杀,捧杀也是杀,区别只是前者用棒子击打,后者用手托衬,死却是 一样的死法。 所以,个人感情里,我不太喜欢捧。捧得过了,人就昏了。托衬得太高,虚无实底,掉 下来也就摔死了。同样的,我也不喜欢“作”,做作得过头了,看起来印痕满满,如同 乞丐的衣服,不堪入目的。 说到这个话题,是与一篇文章相关的。缘于我老家在四川,又在地震重灾区广元,所以 常关心这些。衣向东先生的博文《北川距离一张旧船票的日子有多远》讲到一件事情, 说是出版社迟迟不能出版长篇报告文学《震区警察的记忆》。究其原因,对曰:“热点 过了”。 《震区警察的记忆》: http://blog.sina.com.cn/s/blog_4a973bdb0100c2hm.html “热点过了”,好深刻的四个字。人的情感,灾区的苦难,被放到市场的、经济的大锅 中一搅和,就剩下对看客们眼球的刺激了。一本书、一篇文章好不好,只在于关注不关 注,而无关于其内容的实质。 冷血! 市场规律造就了这种无情的研判策略。放在法庭上,不管受害者哭到昏天黑地,没证据 就是没证据,判不了就是判不了。哭得声音再响再凄惨,法官也得当成是在听戏。这叫 理智理性。同样的,热点过了,再好的书籍文章也不过是狗屎垃圾,我们尽可以置灾区 的声音于不管不顾。我们可以无视于那里的几千万人、一亿人在痛苦中抖瑟瑟地站起, 因为,我们——其它的十几亿人的眼球,以及令我们“燥热的点”,在今天不过是在关 注汤唯那扭曲的脊柱!!! 冷血! 不过同样的,我们再“更冷静地”看看衣向东先生的预期:我们可以再过些日子,持一 张旧船票,去看看灾区的活动,看看“一些祭奠和追忆的活动”,看看那些很官派的仪 式,或者猛烈碰触我们“燥热的点”的“类似狂欢的聚会”。 我们只能庆幸——中国人有欢庆节日的、忌日的、纪念日等等各种日子的传统,我们的 传统允许我们以及“要求我们”在某个确定的时间点去燥热一下,妆点一下我们漠视一 切的本性。 而不是真正的关注一下现实的民生。 又如同这篇“震区警察的记忆”的名字,平淡无奇,难以摄人眼目。要说出版发表,文 章的名字,就得有挑动一个领域的气势——而无关乎内容如何。所以衣向东先生应该给 这篇报告文学起名为“震区悲情,一个警察所见的300条人腿”,或者“警察、尸骨,与 震区”,更或者叫“充血的双瞳何不回望一下北川的今日”! 想到取名字的这个主意,与IT这个行业有关。因为javaeyes上这两天的争论,让我看到 很有些读者——我的意思是不限定内容的泛义上的读者——其实是弱视的、盲目的以及 肤浅的。例如一本《疯狂Java讲义》!好名字啊!“疯狂”呢,学了之后做颠狂状呢! “讲义”哦,殿堂级的呢!学了之后明天就当教授了! 人们不是理性的看中讲义,就是非理性的接近疯狂。多好的名字!然而javaeyes上还是 有人把它揭批了一把,说它不过是一本充满了虚伪、炒作以及大段抄袭的“烂书”。 《拼拼凑凑也是书》: http://readonly.javaeye.com/blog/265831 然后就是李刚先生与javaeyes的骂仗,公说公的理,婆说婆的理。直到炒到天昏地暗。 作为读者的,就明白了一件事:书是烂书,下次小心这个人——最多如此。然而,可有 人回头看看,到底是什么挑动了几方的神经? 不过是一本书名。不过是一本书名而已。 要换了《java实战》或《java入门导引》这样的名字,就没人会骂。因为入门嘛,大抵 是该这样,总有人喜欢吃混在一起的pizza,而不愿按家门店地去买最好的面饼与火腿 肠。所以,从市场的角度上来说,象《疯狂Java讲义》这样的书名,是真的好名字,真 正为读者想的名字,真正有卖相的名字。 《震区警察的记忆》算个啥?毫无卖相,我看就算明年的周年祭,能出版也是出版社开 恩,或者某个小编花了老眼。所以,卖相重要、热点重要,不能炒作也可,起码要能骂 作才成。总而言之,能把读者的眼球从布满血丝变成红通通如同兔子,那就是成功。 因为只要市场关注了,就有卖头了;有卖头了,就可以出了!完全合乎市场规律,大家 有钱赚,人人有书看,生活娱乐两不误。仅此而论,卖A片大概比卖书更有利于国计民生!!! 冷血! 做作是作,炒作是作,骂作也是作。骂来骂去,无过也是吸引眼球——如同我现在正在 做的。但换个角度,如果大家都不把眼睛瞅过来,这里的风景独好,也只能苦待黄昏, 继而于黑暗中隐去。所以又从市场经济的角度来看,“作”是必要的、必须的,这种必 要与必须无关于个人情感,仅仅是市场的——以及说面向那些盲目的、缺乏冷静的析辨 能力的普众性群体的——需要。 有需求就有市场,最基本的市场规律了。如果人人都足够清醒,也就不需要老子孔子的 道德文章了。所以不单要“作”,还要“作”得一丝不苟,“作”得不露声色。要打着 不“作”的旗帜明修栈道,而私底下暗渡了陈仓。 我藏行的路上,就看见过朝圣的信徒们,三步一叩首地行进着、行进着……到得寺庙之前, 用酥油给佛像贴上一块钱一角钱一分钱,分分角角摞满寺庙的山墙。然而信徒们,贫苦的 依然贫苦着,羼弱的依然羼弱着,迷惑地绕行于山墙之外的转经路上。这情景,恰如同那 些书本上的标题,以及被标题蛊惑着、燥热着的读者与“作”者。 我便真到过一个在翻新的寺庙里去,见到过一尊没有金漆彩描的佛像。绕到他的背后看去, 在左上、肩下的位置有一个方形的孔洞。那时我问庙里的住持,这个孔洞有什么意义呢? 住持说,在佛像落成之前,要请了经文放进去,那是佛像的心的位置。En...连做法事的老 住持也知道,只铸个泥菩萨在那里是没用的,华衣锦服的名头下面,有没有解决问题的实 质,方可见真正的良心。 所以,如今的乞丐,也有华衣锦服的了,也有背靠佛像数香油钱的了。所以,做作得到了 有做派的程度,常人也就看不见左上角有没有良心了。继而的,良心看不看得见已经不重 要了,“作”已经也成为了一种讲究,一种体面,进而要升华成一种表面的、视觉的艺术 了。 冷血啊。如今华衣锦服的,位列庙堂的,也冷血了。
像大师们一样思考——从“UML何时死掉”谈起
题记:
在与Ivar的访谈之后,我一直想把这一段过程写出来。我尝试拟过许多个题目,最后都写不成文章。几乎在我要放弃的时候,BLOG读者在评论中,对我所解释的“函数式语言”的置疑提醒了我:很多时候不是问题的答案令人置疑,而是问题的思想方法令人置疑。如同我问Ivar的问题,他的答案“令人怀疑的正确”,其实是思想方法的问题。不站在Ivar的历史,以及Ivar的成就的角度上去思考,你会认为Ivar是在应付我的责难。
事实上,那个访谈中,Ivar非常慎重地面对这个问题,并仔细地解释了他所提供的答案。可惜后来CSDN录制时,正好漏掉了这一段。非常遗憾,此回顾这些经历,既以钦佩,亦复深研。
像大师们一样思考 ——从“UML何时死掉”谈起 得了一个机会(1),我问Ivar:“UML什么时候才会死掉呀”。我无意用这个 透着促狭味道的问题去为难大师,实在是因为这是我一直以来思考着的问题。向 UML之父去求解,自然是最好。 Ivar细毫没有认为我是在为难他,他诚恳的回答让我在那个会议中陷入了 深思。他说:“什么时候面向对象死掉了,UML就死掉了”。(2) 一个问题看起来很复杂,但它的答案可能非常简单。一个答案看起来非常简 单,但它可能是最正确的。一个正确的答案,也许毫无意义,但也许,那就是大 师的答案。 很多我们现在看起来是非常“理所当然”的事情,就曾经困扰着大师们。比 如说,我们现在都知道程序的基本逻辑是顺序、分支与循环。那么,“为什么顺 序、分支与循环是基本逻辑呢”?“作为基本逻辑,它们充备吗?”谁能回答我? 如何回答我? 这是一个艰深的问题吗?我们知道答案,但即使知道答案,我们也答不出 “为什么”。然而,真正的大师们是论证过这个问题的。那个提出“GOTO有害” 的大师Edsgar Wybe Dijkstra(戴克斯特拉/迪杰斯特拉)就为此写了篇“札 记”。他是怎么论证的呢?他说计算机可以理解的人的思想方式,有三种。分别 是枚举、归纳与抽象。而,重要的是,Dijkstra进一步的说明,分支(if)是 计算机实现枚举的方法、循环(for)是实现归纳的方法。当他进一步的解释“抽 象”时,他说“在现阶段,我发现很难把抽象的作用说得非常清楚”。 Dijkstra大概是做好全部的准备,来完成这篇札记。他通过数学方法来 证明了“分支如何以及为什么能实现枚举”。也就是说明分支对于“枚举”这种思 想方法来说,是否是完备的。Dijkstra在写出了大量的数学推理之后,说“上 述的笨重证明,也使我自己感到烦恼!但是,在现在,如果真的希望证明这个程 序的正确性,我确实没有更好的办法。”Dijkstra引以为佐证的是,“以前, 平面几何里的第一批定理的荒诞证明,也常常使我感到同样的愤怒,因为这些定 理所论证的事情几乎和欧几里得公理自身一样的‘明显’”。 Oh! Dijkstra愤怒的原因,在于原本看起来是如此“显然”、“理所当然” 的事情,却需要无比笨重的过程去证明它!如同我们明明知道“1+1=2”,但证 明这一点,既无趣又令人愤恨。 Dijkstra这样的证明过程,奠定了“程序正确性证明”这门学科的基础; 它的证明结果,是说明了程序的结构性是有限的,例如顺序、分支与循环。这个 有“结构有限”的理论,开创了“结构化编程”这样的一个时代。我在《代码之美》 的序中说“我们如今仍然在这个时代之中而不知觉于这本书的深远影响”,是意 有所指的。因为所谓的“面向对象程序设计”,其根基就是“结构化程序设计 + 在 结构上更高层次的抽象”。而这“更高层次的抽象”,就是“对象”。 Dijkstra在1970年前后就完成了这篇札记,而我们接下来这40年的时 间,仍未逃离大师最初的思想。然而,对这所有的一切,大师最初创见性的想法 可以归结于一句:“可用来理解一个程序的种种思维方法之中,我提及以下三种: 枚举法、数学归纳法、抽象。” 为什么是这三种?是不是只有这三种?能不能有更多种?大师没有解释,他 只是“提及以下三种”而已。Dijkstra一方面给我们留下了空间,一方面,他 足够完备的“论证”说明了基础逻辑必须至少具备“顺序、分支、循环”。而我们, 40年来,无有突破。 Ivar把UML之死,归于一种抽象的失败,或其被更高的抽象所替代。实 在是无比正确的,因为UML也是建立在结构化、抽象这样一些基元的理论之上。 Dijkstra的那篇札记,被收入《结构程序设计》一书,书里的另外两篇,一 篇是“层次结构设计”,讨论的是面向对象程序设计;另一篇是“数据结构札记”, 讨论的是数据基本抽象。三部文章,三位图灵奖得主,一个跨越40年的时代, 以及程序设计语言分类中的1/2(命令式语言)都承受着这种影响。 然而,Dijkstra仍然无法论证,或未曾说明过“三种基础逻辑的唯一性”, 他只是想当然地说“我认为”而已。 同样只是从“我认为”开始的,还有图灵机。如果有一个毛头小子跳出来说, “我认为”计算机应该象一个大笨象吃意大利面条;大笨象要有肚子,面条上要 打孔。Oh,很好,这个毛头小子立即会被哄出“计算机科学”的神圣殿堂。问题 是,图灵就是这样一个毛头小子。于是他的这一构想就被称为“天才式的创想”。 然而,真的只是这样吗? 算盘用了几千年,谁问过“算盘为什么能算东西”?算珠、进位、栏,这些 东西,是不是基本的存储结构?用算盘的“我们”,是不是计算单元?珠算表是 不是运算规则?那些珠子表达出来的“0~9”的排列,是不是输入输出的界面? “我们+算盘”就是一个完整的计算系统。这个计算系统的完整性,是图灵用 了一个假想来说明的。图灵不过是用一个假想描述了一个事实,而这个事实,“看 起来”能被机器实现。于是,我们的计算机时代就开始了。 图灵是否证明过“大笨象吃意大利面条为什么是一个完备的计算机系统” 呢?不,最初等的问题,往往难于证明。往往,他的证明过程,或应用过程,只 是触发了一个想象。 对计算机根本问题的思考,许多会追溯到哲学思想的层面。IOPD和PDIO 的问题,程序=算法+结构的问题等等,就是这一类。还有一些会追溯到人类行 为学、语言学等层面,例如语言、语法、语义,以及有没有语用这样的问题。大 多数时候,真正推动了计算机发展的,不是对具体问题的推理求解,而是对问题 本身的抽象。在Dijkstra的叙述中,抽象更象是终极武器。按照Brooks的 观点,“数据的表现形式(数据结构,抽象的结果之一)是编程的根本”;按照 Dijkstra的引述,“引用未解释过的名词阐述公理或定理和作用于未解析过的 操作数的(命了名的)运算两者之间有着某种平行的相似性”。 无论如何,我们“做一个计算机”,原始的目的不外两个。其一是“让它计算 数学”,其二是“让它像人一样思考”。注意,我的确是说“计算数学”,数学是人 类的理论学科,“怎么算”,以及算的内容等等,都是我们自己设定的。而计算 机的能力,只是计算“数学”这个它未知的对象而已。事实上,我们现在在讲的“命 令式”,以及“函数式”,或“说明式”,就只是我们为计算机设定的“最基础的运 算方式”。在这个“运算系统”中,“数学”并不是最初设定的。 命令式如何计算,函数式如何计算……类似于此的问题了解清楚了,我们对 这类语言也就了解了。再谈什么高阶函数(higher-order function)、克 里化(Currying)、延续(Continuation),或发生-迭代器 (Generator-Iterator)之类,那已经是具体语言的表象,而非“这一类语 言”的本质了。举例来说,JavaScript 1.5还没有实现过“生成器对象 (Generator Object)”,但并没有人否认它是函数式语言。反过来说, Generator Object原本就不是函数式语言的必备要素。 LISP表达了函数式语言的全部“必备要素”,然而LISP七个原子运算也是 针对于“LIST”这个结构抽象来说的。对于一个“(顺序的)表”,这七个原子运 算是必须的,而对于另一个“(关系的)表”就未必如此了。所以,那这些原子 运算,也不必放在函数式的必备要素中。象LUA这样的函数式语言实现方法的 出现,也证明了这一点(3)。 函数式还剩什么? 真正理解函数式的秘密,是要一个语言一个语言的学习下去么?是要一种运 算法一种运算法地学习下去么?我们听完人家说“持续”,于是就开始了解持续, 而不去问持续为什么出现在函数式里面?亦或是不是函数式的必备要素?还是 函数式运算系统的自身的“问题”?我们正是迷失于种种语言和概念的表象,而 最终没能象大师一样去思考“计算机不过是大笨象吃意大利面条”这样的抽象层 面的问题。 我们要改变的是思想,我们要增强的是能力。大多数人只是增强能力,而不 改变思想。这就是“我们”——大多数人不是大师的原因。 感谢Ivar。并不仅仅是因为他给出了一个问题的答案,以及他的谦谨和微 笑,还感谢他告诉我们:答案并不是表面上的正误,真正的答案是答案背后的思 想。
(我与Ivar Jacobson先生,2008.07.21,CSDN软件工程研讨)
注: ~~~~~~ (1)CSDN围绕“软件工程40年”进行的一个软件工程研讨会。相关的视频在 http://live.csdn.net/Issue519/LivePlay.aspx 但是由于录制技术上的问题,这个研讨会丢失了1/2多的内容。 (2)当然,在那个会议上,我的提问与Ivar的回复都不会如此轻率。我原始的 问题是:“既然——包括自然语言在内的——所有的语言最终都会消亡, 那么UML作为一门建模语言,它什么时候会消亡呢?以及,新的替代它的 建模语言又应该具备那些特性呢?”Ivar当时的答案是:“如果作为UML 核心思想的OOP方法没有被推翻,那么UML就不会消亡”。因此他对这个时 间的预期是:“接下来10~15年,或更长的时间,不会有更新的、标准 化的建模语言。” (3)LISP的基础数据结构索引数组(表,LIST),LUA的基础数据结构是关 联数组(表,MAP)。