太阳是黑色的

少年听雨歌楼上,红烛昏罗帐.壮年听雨客舟中,江阔云低断雁叫西风. 而今听雨僧庐下,鬓已星星也! 悲欢离合总无情,一任阶前点滴到天明.

Archive for 6 月, 2008

社交型网络–Social Networks (一)

这大半年来,我一直参与学校的一个“社交型网络”的项目,对“社交型网络”慢慢产生了一些想法,在这里,打算用三篇博客的篇幅来和大家交流一下。因为仅仅是感想抒发,因此文章中采用的数字和论据,都不注明出处,希望有兴趣的朋友自己去查证。

我对两个部分的安排是这样的,第一个部分,我打算聊一聊互联网对于社交型网络的影响以及社交型网络是如何作为社会学、心理学和计算机科学的平台。第二部分,我打算讨论一下企业如何希望社交型网络为企业带来革命性的变化。第三,我想讨论一下目前社交型网络的困境和未来。希望大家关注。

—————————————————————————————————

目前国内火热的“校内网”和北美火热的“Facebook网”均是提供“社交型网络服务”的网站。同类型的形形色色的“社交型网络服务商”多如牛毛。其实,这一类型的服务,对于年轻的互联网来说,并不是什么新鲜事物,早在2000年左右,国内的ChinaRen就初具“社交型网络”的特点。而北美类似的网站,则要追溯到1996年左右成立的Classmate了。

那么,为什么这几年,社交型网络呈现出越来越火热的态势?答案有多方面的。但最主要的有两点,第一,社交型网络以“人”为中心,改变了传统意义上,互联网以“单一文本”为中心的理念。第二,社交型网络能够以互联网为基础,加深人们之间的沟通,把人际关系网络扩展到了虚拟世界,形成了现实和虚拟的一个良好的结合点。

然而,今天我想讨论的则是另一个话题,那就是社交型网络为社会学、心理学和计算机科学的结合提供了一个良好的平台。

Social Networks并不是什么陌生的名词,说成中文,可以很方便地就翻译成“人际关系网”。研究人际关系、社会关系的社会学早已经把“人际关系网”作为了很重要的研究议题。比方说,研究人与人是如何交朋友的;哪些人在一个朋友圈子中是更重要的人;“流言”是如何在一个人际关系网中传播的;一个群体中,专家是如何体现的;个人价值如何在群体中体现,等等。然而,在计算机科学介入社会学之前,大规模试验和论证是十分困难的。我们想象这样一个情况,某个社会学家认为,任意两个人之间,最远的距离是中间间隔六个人(所谓六度分隔理论)。在以前,要验证这个理论,必须招募大量的志愿者,发信件给自己的朋友。即便是互联网初期,也需要使用电子邮件这样的方式。这些技术手段,没法为很多理论的论证提供保证。大多数情况下,社会学专家们能够找到上千名志愿者,就已经非常不错了。然而,真正的科学实验,还需要注意样本的诸多问题,比方说年龄、性别、地区等等的分布。更进一步说,实验环境毕竟是一个模拟环境,参加实验的人并没有真正把实验当作自己的生活。这也使得传统的实验方式并没有体现到真正人际关系。

互联网为社交型网络分析带来了第二春。以“交友”为核心内容的大型网站,第一次把人际关系数字化了。现在通过种种流行的社交型网站,我们可以轻松的获得数目足够多的样本,可以得到类型丰富多彩的资料。同时,人际关系也比在纯实验环境中来得真实。举一个简单的例子,在过去,星巴克如何知道饮用自己咖啡的群体特征(年龄、性别、地区分布)?只能到一些地方去发放问卷。众所周知,问卷调查的效果是不好的。很多人并不想回答问卷调查。今天,星巴克只要通过Facebook平台,就可以轻松获知选取“我是星巴克粉丝”这一功能的人群信息。注意,这些信息还是免费的。而喜欢星巴克的人群也可以互相了解,畅谈自己的星巴克故事。这在以前是不可能的。

另一方面,像我之前提到的那样,因为社交型网络把焦点放在了人上面,因此计算机科学和数学的重要组成部分——图论、概率论有了大显身手的地方。目前,利用图论来进行“人际关系挖掘”研究的计算机科学家在海外已经越来越多。比方说,理论校内网,找到某一个大学中,朋友最多的人,朋友的朋友最多的人。如果商家进行推销,那么就可以从这些人下手。以往,这样的信息是不容易得到的。现在,则非常简单。再比如,你电脑出问题了,一时打电话联系不到客服,那你知道该找周围的哪位朋友吗?你知道找哪位朋友最合适吗?Facebook平台会很容易告诉你。因为在Facebook上,每个用户都加入了大大小小各式各样的群组,这些群组都是根据用户个人喜欢,用户自己加入的。于是,如果你的一个朋友加入了很多IT,电脑相关的群组,那么很有可能这个人就是你要找的那位朋友。当然,这仅仅是些小例子。但是通过这些小例子,我们可以看到社交型网络在互联网上的应用的确振奋人心。

随着人际关系、人的喜好都已数字形式出现在互联网上,以往无法建模的很多概念如今都成为了实实在在的数字。数学模型,特别是统计模型为我们去了解社会和了解个人提供了强有力的工具。如今,社会学研究再也不担心试验的问题了,科学家可以转入研究的一些新的阶段。比方说,如果你要开公司,你最好认识谁,谁最能帮助你,这是一个“关系预测”的问题;比方说,如何通过人们提供的标签(tag),来看人的价值取向。现在,计算机科学可以很好地解决这类问题。这在以往是不可能的。

计算机科学和社会学因为社交型网络正以前所未有的速度交融在一起。目前,多所美国大学(比方卡内基梅隆大学、斯坦福大学)都有专门研究这方面的计算机学者。好几个高级互联网、数据挖掘会议都有专门的“讨论组”来讨论这方面的研究进展。社交型网络研究正方兴未艾。

若批评不自由,则赞美无意义?

曾经在三月的事件中处于风口浪尖的《南都周刊》副总编辑长平最近发表了关于“范跑跑事件”的文章——
自由主义的对立面是什么”,从古希腊的根源,再到中国的严复如何翻译“自由主义”的文章,为“范跑跑”的某方面行为,特别是标榜的“自由主义”进行了强烈的辩护。

一方面,长平否认自由主义的对立面是“责任”和“道德”,另一方面,长平又闭口不谈个人的“责任”和“道德”如何约束个人的自由,而大谈公权力的滥用如何阻碍了个人权利的表达。

长平的这些思想并不是什么高深的理论,而是确确实实现在滋生在国人心中的某种想法。长平的想象中,公共权力,说白了,就是政府的权力应该得到极大的限制,而个人的自由,则在某种程度上应该得到最大程度的发扬。比如,长平为自己为什么关闭博客的评论功能辩护道,自己关闭与否,是个人的自由。显然,长平拒绝了别人对其个人的批评,说是“有人疯狂辱骂”。然而,同时他又要求政府必须接受别人的批评,却丝毫没考虑到是否有人会对政府“疯狂辱骂”。古时候我们说,“只准州官放火,不准百姓点灯”,现在长平等一些自由主义者要求的却是“只准百姓放火,不准州官点灯”。

“范跑跑事件”本来是十分简单的职业道德和个人责任的问题,可为什么最终可以演变成为“自由主义”的再次辩论呢?这里面的秘密其实也相当简单。

“范跑跑”发表了某些不符合职业道德,甚至是个人日常道德(比如其发表的关于其母亲)的言论,遭到了全国大范围的声讨。自由主义者也经常发表某些不容易接受的言论(例子很多,去看看长平的博客)。他们害怕的恰恰是和“范跑跑”一样的全国性大范围声讨。长平本人受到过,自然,也就更害怕再次遭到。声讨是一方面的,另一方面,是害怕个人的自由受到侵犯。当然,如果仅仅如此,还是过于肤浅。自由主义者害怕的还有大家讨论的“职业道德”,他们害怕由“职业道德”所带来的“个人责任”的约束。尽管长平口口声声说,自由主义并不排斥“责任”,但是他为什么不去谈谈个人责任如何体现呢?难道个人责任需要通过“自由”体现?

国人对于“自由”有着疯狂的痴迷。但是仔细看,我们却很容易发现某种想达到“绝对自由”的倾向。长平说“若批评不自由,则赞美无意义”。这种强盗逻辑十分让人费解和危险。此种观点强调了“批评”的绝对性,却将“赞美”推于相对的位置。于是,再“美”的东西,再“值得赞美的东西”一旦置于批判的眼光下,又怎么散发出那些耀眼的光辉呢?而一旦举起了带着自由的批判大旗,我们怎么去体会那些值得肯定的,简单的进步?怎么去理解那些在幕后的妥协和复杂的形势?简单的是否观念,再加上不容别人分说地自由和权利论,这其实就是霸权主义的某种体现。

上次,小白龙说,关于社会责任、个人责任的定义和讨论都一致具有争议性。我觉得,是这样的。但是,我认为,争论的可能是具体的体现,社会的责任的存在性是不容置疑的。为什么有人会质疑呢?那另一方面,人们为什么会觉得“权利”就是“神授”,就是“天授”呢?这很矛盾。强行把权利和责任分开讨论,只能带来尴尬和绝对论。长平打着“自由牌”来讨论个人的权利,其最终的结果就是不能让人信服,并且并不利于我们去真正反思那些问题背后的缘由。

范跑跑如果生在美国

最近因为范美忠在汶川地震发生的时候,从都江堰光亚学校的教室里率先跑出从而引发的“范跑跑事件”着实让人深思,目前经过电视台、平面媒体、网络的集体关注,范美忠已经从学校被解聘。事件也已经从某个程度上说,宣告一段落。但是由此带来的讨论却越来越深入。

不过在所有讨论中有一个方向却很让人感到不舒服,那就是“范跑跑如果发生在美国会怎么样”。为什么会有这方面的讨论,大抵潜台词是这样的:如果范美忠的行为在美国并不触犯美国教师的行为标准的话,同时也不违反美国主流社会的道德的规范的话,那么,我们是不是对范美忠太苛刻了?还是我们的道德观太过于陈旧?当然,往深一步就是,范美忠即便做了错事,美国社会会如何对待?有一些所谓“精英”把答案巧妙地和“宽容”、“自由言论”结合起来,似乎范美忠德事件不仅仅是一个道德选择的问题,而是成为了整个社会“言论”的试金石。

当然,有一些在美国生活过的朋友,甚至是当过教师的朋友解了大家的惑。范美忠的行为说来在美国也并不可能得到原谅。原因可能不光是作为一个人的道德,还有作为“教师”这一职业的职业情操和行为规范。范美忠说“曾经为自己没有出生在美国这样的自由民主尊重人权的国家而痛不欲生”,其实到时候他可能会很后悔。

然而,问题的关键不在于范美忠本身,而在于,“如果这事发生在某国…”这样的思维为什么在国人的心中每每泛起。近一点的例子,日本最近也发生了地震,马上就有人做了一些不负责任的对比,可不少人却没有太多的质疑。虽然比较有时候能够发现问题所在,但是如果利用比较来达到个人目的,就让人感到怀疑了。

范美忠强调了“言论”、“自由”、“宽容”这些时髦的语言,却忘掉了做为社会一分子所承担的责任。把什么时候都和美国比较的往往是那些没有到过美国,或者是对美国社会没有仔细观察的人。一说到美国,就把范美忠使用的那些词语不假思索用上,依次来标榜自己。我虽然在美国生活时间不长,但是照样感受到了这个国家“自由”和“责任”并存的多元社会。并且,美国社会的自由是建立在复杂的“责任”和“原则”意义上的。一旦没有履行义务或者责任,带来的是社会的惩罚。举一个例子,现在在国内,青少年有多少人没有喝过酒?特别是大学生,大一大二的学生也就18、9岁,从道理上来说这个年龄并不是一个能够控制自己行为的年龄。但是,如果今天,我们要去教育一个这个年龄段的人不要去喝酒,那么得到的回应很可能是“喝酒是我的自由,你管得着吗?”在美国,大多数州,21岁以下的年轻人不允许喝酒。一旦发现喝酒,不是教育那么简单的,轻则罚款,几百到上万美元都有可能,重则还要被关押。有人可能说,这是法律。但是,我们要思考的是,为什么会有这样的法律存在,这样法律体现的是不是一种社会责任呢?

举另外一个例子,去年股市牛市的时候,政府警告大家投资的风险性,一再告诫大家谨慎,特别是那些完全没有炒股经验的股民。可是,那时候谁听得进去?有多少人想过自己的投资行为对于整个社会的责任?后来,尽管政府的一些政策未必妥当。但是,不健康的股市肯定是要有所调整的。一旦调整,不理性的没有责任心的一些人就大骂出口,认为不是政府就是大投资者抢了自己的财富。把股市看成了提款机,是不是也有一点没有社会责任心呢?

尽管范美忠保全了自己的性命,从这一点来说,无可厚非,但是,我们应该警惕那种挑战社会责任的体现。如果今天范美忠可以堂而皇之辩论自己的行为,我们凭什么明天在灾难的时候要指望政府、解放军、医生和护士呢?这背后是一个道理。

小论公平

昨天看到新语丝上有人报料北大招收博士生的过程可能存在猫腻,那位同学的理由主要是自己是初试考试的第一名,而在复试的时候自我感觉发挥正常,却最终没有能够被录取。

我相信这样的情况,很多人都有曾经经历过或者听说过,也许都司空见惯了。要是放在以前,我也会开始感慨招生过程的种种不公和可能存在的腐败现象。然而,在海外留学的这些日子,让我对这种现象有了一些新的认识。

我自己经历过美国大学本科的录取、美国大学研究生阶段的录取、美国大学导师招收学生的过程、美国大学校内工作的招聘过程、美国本土公司的招聘过程,应该说,想来想去,说句客观话,国内的高考、研究生考试、甚至新语丝上那位博士考生的经历都相对来说是公平的。

先说说一些客观的事实。美国大学本科的录取因素有很多,但是考试成绩却只是一部分考虑。当然,谁有SAT高分(相当于我国的高考)以及平时成绩的高分,对于录取有很大的帮助,但要去那些比较好的大学,甚至是名校,光有这点成绩是远远不够的。比方说,学科竞赛,体育竞赛,文艺竞赛,都是相当重要的。对于国际学生来说,美国大学还要考虑地域、文化、肤色等等方面。所以,也许一个成绩优异的中国学生不被录取,而一个会敲鼓的非洲原始部落的学生则被录取,这是真事。于是,在这种情况下,谁也不会因为自己分数比别人高几分没被录取,去找学校的麻烦。更何况,学校的自主招生体制说白了就是学校想招谁就是谁。美国教育部不更会管这些事情。

那么美国大学研究生的招生是怎么回事呢?对于国际学生来说,托福成绩和GRE成绩是不可或缺的。但是,这两项仅仅是一个敲门砖。除非两项均接近满分,否则对于个人来说,竞争力并不体现在这两项的分数上。学校可能更多考察科研或者项目经历,以此来判断一个学生是否有学习的潜力。同时,大学时期的活动也是十分重要的。另外,平时综合成绩也是必须考察的因素。如果有学生本科阶段就发表过论文,那么无疑会让这位学生增色不少。然而,即便是这些方面综合起来以后,学校可能还要考虑这个专业是否需要这么多学生,国家、地域的问题同样需要考虑。另外,这个学生所在的学校以前是否申请过本学校,如果有,记录如何,等等。所以,一个人被录取了,和另一个人不被录取,可能大家都不知道为什么。

再说说美国大学的教授招收学生(也就是找导师)。美国大学研究生入学以后,特别是博士研究生,不一定有导师。如果没有导师,那就需要自己争取去寻找。绝对不可能出现系里面安排的情况。而导师要不要这个学生,则完全是导师自己的事情,也就是喜欢谁就招谁。那么,一切可能的因素都要参考,一切不可能的因素也要考虑在内。有导师喜欢招收那些已经通过博士资格考试的学生,有的导师不太在乎这些。有的导师仅仅需要那些和自己研究方向完全对口的,已经具备一定研究能力的学生。有的导师喜欢那些相对“白板”的学生,可以日后培养。从这一点看,仅仅凭几个考试的成绩,基本上说和能否找到导师关系不大。

说了这三个我亲身经历过的经验后,我想说,一方面我们宣扬素质教育,一方面我们自己并没有习惯除开分数以外的东西。如果说高考要保持客观公正性需要分数的绝对杠杆,那么研究生的入学考试,特别是博士入学,绝对的考试分数仅仅应该作为某种参考。因为研究生的培养目的不是通才教育,而是培养研究型人才,研究工作和看看课本做做题是两码事。

那么有人会说,如果不完全按照分数做,岂不就是不公平吗?这样岂不是腐败的温床吗?看看我上面描述的美国大学的招生过程,你能想象在其中会发生多少“台面下”的“交易”吗?既可以说没有,也可以说非常多。说没有是因为,招生是对学校自己有好处的事情,招生招得不好直接影响学校的利益,所以学校不会太过于玩火。但是,说完全没有幕后交易,那肯定不是。那为什么克林顿的女儿(能力很平平)可以很轻松去斯坦福大学,然后又去牛津深造?

这里随时都发生着分数高的同学进不了最好的大学,分数高的同学找不到工作的情况。一点不奇怪。当然,大家不要从另外一个极端去理解,这不是说分数不重要,而是,我们要去适应分数不是公平的衡量标准。至少不完全是。

到了美国以后,我才发现,美国人对于“关系”是多么看中。“Networking“成为了中国“关系”在美国的间接翻译。当然,那是另外一个话题了。但是,我只是想说,依靠数字和一些看似可以衡量的标准,并不能保证公平。更何况,这种公平也许并不需要。

再次抛出关于Linux的话题

今天gaospecial给我留言,我回了以后,害怕大家误解一些我对于Linux的看法,固而好好写一篇我对于Linux,特别是Linux开发环境的看法。

我自己有一台电脑使用的是Ubuntu Linux操作系统,我实验室的机器是CentOS,现在上班的机器也是CentOS,学校的工作站是Sun Solari。尽管,我自己在Linux下开发和办公基本没有问题。从我自己的情况看,我没有必要讨厌Linux。2004年的时候,我还在我所参加的学 生组织学生网络中心组织了Linux学习小组。应该说,我个人还是很喜欢Linux的。

但是,为什么我一直都对Linux有意见呢?那是因为我觉得有一些Linux的缺点不应该说成是“强大”的代名词,反而成为了Linux迷炫耀的地方。

比方说,一直以来“易用性”好似不被Linux用户所齿,只要功能强大就行。但是为什么Ubuntu能够成功?这是不是说明了“易用性”的重要性?也许 是。还有一点,以前Linux宣传的口气是,不需要什么图形界面,全部命令行的操作体现了专业和高级。不过,现在Gnome和KDE的界面做得越来越花 哨,还有不同的界面插件证明了,虽然界面不是万能的,但是对于普通用户来说,没有界面是万万不能的。

操作系统和软件的发展还是有一定规律的。强大和易用性不是对立的。这也是汇编语言虽然强大,但是并不是最主要的开发语言的原因,也是甚至C或者C++也会慢慢变成不是最主要的开发的语言的原因。当然,那是另一个话题。

再说Linux的开发。长期来看没有一个标准的集成开发环境其实是阻碍Linux发展的一个潜在因素。回顾Windows阵营,微软的Visual Studio和Borland的系列开发工具(包括C++ Builder、Delphi、JBuilder)真的是功不可没。强大的开发工具提高的是整体软件开发的能力和效率。不仅仅是写程序的效率,更是团队协 作的效率。举一个简单的例子,在Linux下开发,因为调试器的缘故,很多时候,开发人员只能通过输出log信息来达到知道运行状态的目的,但是这在一个 大型系统中,要想通过这样的方式来很清楚认识每一步的运行状态是非常困难的。对于源程序来说,功能代码之间夹杂着无数的调试信息输出代码,也是非常不美观 和影响代码理解的事情。

注意,这里不是否定GDB和G++之类的开发工具的强大性,而说的是易用性以及易用性带来的效率问题。我们不能说,因为有了GDB,就不需要更高级的调试工具了,这是不对的。

我知道通过配置VIM和Emacs还可以听音乐,看电影,还能干这个,干那个。有人说这两个软件能无所不能。我相信。但是,要说开发软件,我不相信这是好 的方法。大的例子太多了,微软、IBM、Oracle和Sun的基本所有软件都是用了集成开发环境开发,单靠VIM和Emacs来编写上百万的代码是不可 能的,这不是怀疑这些编辑器的编写能力,而是软件开发除了编写,还有很多的东西。

所以,Linux阵营要做的是好好开发一个软件开发环境,而不是一次又一次告诫大家使用VIM或者Emacs。这两个软件本身没有错,但是做开发工具,特别是软件开发工具,并不是最适合的。

另外,有人肯定会告诉我,VIM和Emacs的插件如何如何丰富。最好不要提这个。第一个原因是,用户安装好一个软件,这个软件是要可以使用的,能够达到基本需求的。为了语法高亮、为了语法检查都需要寻找插件,这不是什么好的理由。

当然,VIM和Emacs存在的理由,不是没有。在有不少的情况下,特别是终端操作,远程操作,这样的纯文本编辑器是效率最高,也是很有可能唯一提供的工具。

此文仅仅是希望在使用Linux的朋友,真正去看到Linux的不足,去弥补这方面的问题。

实习感言(二)

上周就实习的初步印象抛出了一些感性认识,其实后来我仔细思考以后,还是发现了一些深层的东西。

就整个开发流程和工具来看,公司还停留在上个世纪70-80年代的思路。当然,有人对这种满屏字符,只用VIM、Emacs的方式推崇至极。然而就效率性而言,我还是看不到这样做的意义。有一个强大的集成开发环境已经是80年代以来大多数语言开发能否普及与否的共识。比方说,因为代码深处某个地方的拼写错误,在集成环境下可以不费任何力气找出,而纯文本环境,也许就是一上午的时间。这一点和是不是熟练的开发者关系不大,因为代码量上去以后,再熟悉的人也需要合理的工具。

公司的环境和语言虽然落后,但是我却深深感到了这种方式对于公司发展的合理性。一个能够生存30年的公司,技术的稳定性是最重要的。在早年的时候,关系数据库还没有成形,SQL的国际标准还没有制订,Java还要等上十多年才被发明,一切当然只能自己做。那么现在呢?那天,我带着同样的疑问问了公司的老板,SQL那么成功,公司的数据库软件居然不原生支持,让我有一些不可理解。然而,老板却说了这么一句话:SQL的标准形成才10年,Java也不过流行了10多年,我们有30年的历史,在这30年里,流行的东西来来去去,而我们的技术却稳定了下来

这是一句实话。20年前,最红火的语言和开发平台现在已经无人知晓。谁能保证Java的未来和SQL的未来呢?30年,技术变换风云,唯有客户的需求是永恒的。满足客户的需求是最关键的业务。而要随时都能够去满足客户的需求,技术的稳定性就尤为重要。所谓稳定性就是说,版本的升级、功能的加入要非常平滑。不能上一个版本是C++,下一个版本是Java,然后又想换Python。这其实没有意义。换技术需要成本,况且在实际开发中,特别是已经积累了大量代码的软件公司眼里,语言,的的确确不是最重要的东西。

尽管开发环境丑陋,但是产品只要能够达到客户需求,产品只要能够延续,就是胜利。这一点,我们国内的开发者通常看不清楚,经常爱陷入各种技术平台的论战,而忽略了讨论需求本身。

于是,公司使用一个完全不支持对象的开发语言从1970年代直到现在。所有的产品都能够非常完美的衔接。这不得不说是一个奇迹。

—————————————————————————–

然而,我还是很不理解Linux下开发的一些“习惯”。因为要配置某个运行环境,我的一位同事在我的机器上满屏幕字符的飞快配置了足足4个小时!Emacs和Shell屏幕交相辉映,快捷键用得我眼花缭乱。但是,我一方面佩服这位仁兄的技术水平,另一方面,我着实不明白那么多配置文件和脚本的是为了什么。说到易用性,我不得不佩服微软。在微软的平台下开发程序真的是享受,用过Visual Studio的人,很难认同缺乏那么多功能的开发环境。

实习感言

已经实习了一个星期了,最大的感触还是上课和搞科研的自由度大一些。工作的压力还是比较大。

目前还没有开始做正式的项目,但是到这个小公司的实习却给了我很多启发。有管理方面的,有技术方面的。管理方面的我可能还需要观察一段时间才能看出一些名目,不过这一个星期的开发学习,让我对于这个公司技术方面的感想还是逐渐清晰起来。

这个公司的产品大多数是和报纸出版有关,也就是排版和印刷相关。此公司虽然人数不多,不过客户群体还是很大,目前最近的客户是基于旧金山的全美最大的华人日报《星岛日报》。如此小规模的公司,成立于1975年,已经在淘汰率极高的软件行业摸爬滚打了30多年,不能不说是一个小小的奇迹。

第一天去公司把我吓一跳。公司的开发语言是公司自己开发的语言,编译器是公司自己开发的,调试器是公司自己开发的,数据库是公司自己开发的,网络服务器是集成Apache并且经过改写的。公司10个左右的产品均是又自己的开发语言所编写。这种情况已经持续了将近20年。然而,公司本身的技术人员,特别是开发人员并不多,核心的开发人员也就3-5个人!

吓一跳之后就是痛苦的持续到现在的开发经历。公司的语言是类Pascal语言,我在1997年到2002年有过几年Pascal的开发经历,然而没有集成环境的开发,仅仅依靠编译器,开发进度非常之慢。命令行的调试器对于大型程序来说根本就太过于原始。最后,仅仅是Emacs的语法高亮都成为了唯一能够帮助的奢侈品。整个工作的感觉就像是上个世纪70-80年代。因为没有语法提示和高级开发工具(如Visual Studio、Netbeans和Eclipse)的成员提示功能,根本就不清楚语言库内提供了什么功能。经常为了一个简单的函数要去查询浩如烟海的文档。注意,那些文档的编写都非常差,基没有例子,就仅仅写了一下函数的功能,更何况所有的开发手册有4-5卷本,两三个牛津字典那么厚。没有索引和指导在这样的文档里面找一个函数的使用,简直就是大海捞针。

网络开发环境和一般的Web开发环境,比如PHP、ASP.net、JSP都非常不一样,有一点类似模板外加控制代码的意味。然而整体的流程确实在后台的服务器组件中完成的。这一切都是公司自己的语言编写的。尽管现在有很庞大的软件在这上面编写完成,但并不意味这这套东西就没有问题。首先,后台的服务器组件不能区分POST和GET,有点匪夷所思。并且对于Session的支持也非常有限。没有事件的概念,更没有什么URL重写这些现代的东西。

数据库就更是夸张。首先,公司的数据库都不是严格意义上的关系数据库,而是自己写的数据引擎。并且与SQL不兼容!数据库查询不能使用强大的SQL,这在今天看来很不可思议。然而,整个公司的存储方案都是类似于结构文件的方式。因为没有SQL,关系数据库所带来的一切便利这里都用不上。而很多基础的东西明显缺失。比方说,没法生成唯一的递增序列作为数据的标识,只能使用很丑陋的方法模拟。更严重的局限在于,索引的字段的长度只能是255个字符,单个索引的字段长度不能长于127。常常一个简单的功能都让人困扰半天。

我的同事在另外一个项目中工作,那个项目使用了非CVS也非SVN的自己编写的原始的代码管理工具,效果是,可能还不如没有版本管理。大家经常覆盖相互写的东西。

看我写了那么多抱怨的话,是因为我这几天真的被磨得有一点没有脾气了。我一方面很佩服一个这么小的公司居然能够维持这么复杂的软件体系,一方面我的确非常不理解这样做的真实意义所在。如果说20年前,开发工具、调试工具、数据库工具都没有成熟的话,那么时至今日,市面上随便都能够找到开源的免费的好的替代产品。

最要命的还是编程语言的问题,此开发语言不能和现有的很多语言集成,比方说C,C++,或者Java。再加上人力物力的原因,语言库的开发又跟不上,文档就更旧,让人整个在浪费时间。

另一方面,对于团队开发,不使用开发工具,那完全就是自欺欺人。完全依靠一个简单的文本编辑器和原始的调试器,开发编译器是可行的,开发应用软件,那就是扯蛋。

不过,唯一让人钦佩的是,国内哪个40-50人的小公司想过开发自己的编程环境或者是数据库?考虑到这个公司存在了30年以上,不能不说还是有一些值得借鉴的地方。

变形金刚2在我所在的小镇开拍

变形金刚2在我所在的小镇开拍。有同学已经去报名群众演员了。

新闻:

http://news.aol.com/story/_a/transformers-2-movie-to-shoot-at/n20080517144009990011

http://www.mcall.com/news/local/all-n-l-transformers-060308-cn,0,5721345.story

在美国第一学年有感

明天,也就是周一,我将到本地一家小公司去实习。从而也算是在美国的第一学年彻底结束。

回首这一学年的学习,感慨还是良多的。这里说说主要的一些想法,和大家分享。

我所在的大学并不是美国的顶级学校,比如MIT或者是斯坦福之类,但是30左右的排名也使得我的一些观察可能还是比较符合美国一流大学的情况。

应该说,这有很多东西是和国内大学一样的。比方说,有人逃课。比方说,期末抱佛脚。比方说,炒作业。尽管我是研究生,但是我观察的本科生也经历着我们在国内所经历的类似生活。在这里,大多数学生还是能力平平,至少说也就是图完成作业。真正有能力的并不是多数。两极分化其实也很严重。有人能够每个暑假都找到实习。有人已经开办了自己的公司,并且业务不错(在我所助教的两个学期,都碰到了自己开公司的学生)。当然,也有人作业也没法好好完成。特别是我当助教,有一些计算机的课程需要做课程项目,如果我不在最后一个星期提醒那些学生,鲜有人会真正按照进度完成。很多学生找到我,一脸无辜,说自己如何如何花了时间,但是就是做不出来。有时候一听就知道是瞎说,做不出来情有可原,那是水平问题,可是,有人连编程环境都没有配置好,这就是问题了。当然,最终期末的成绩,好坏真的很分明。

学校有两座图书馆,但真正爆棚的时候也就是期末。平时人流量和学生人数相比还是有差距。美国学生平时的生活除了学习,最终要的莫过于聚会。一般来说,从周四晚上开始大家就去聚会了,图书馆人数就非常少。我们图书馆的书籍馆藏十分丰富。不过就我借过的上个世纪70年代的几本书来说(并不是很偏的书籍,而是经典教材),我经常是第一个或者是第二个借书的人(因为有记录之前谁借过),让我有时候觉得这里的人没有好好利用起资源。

然而另一方面,美国学生对于资源的利用却又让人瞠目结舌。我们学校有两个室内体育馆,有一个足球场,橄榄球场,棒球场,排球场,若干网球训练场地。室内体育馆一个是篮球馆,另一个是健身用的,里面有游泳池,室内球馆,和近一百个跑步机和其他健身器材。注意,这些设施的使用完全是免费的。即便是这样,美国学生依然嫌学校的体育设施不够完善,有人居然在学校的校报上反映,不少学生还花钱到附近的负费健身房去。同时,我们学校有四个食堂和两个学生活动中心和一个和北京音乐厅差不多大小的表演艺术中心,但是学生嫌这些建筑太过于分散,希望学校建设一个集学习、娱乐、餐饮为一体的大型学生中心,内带电影院。当我看到这样的报道,感慨这里的学生真的是生活过于优越。从某种意义上来说,我们希望这样的学生从内心真正去体会世界上其他地方的疾苦,甚至仅仅是去体会困难一点的生活,都是天方夜谭。

美国学生的社团活动和业余生活还是很多。但就我观察来看,学生组织的活动规模都比较小,极少有那种劳命伤财的大型表演性活动,比如晚会(值得回味的是,两次大型晚会性质的活动均是中国留学生会组织的)。这让我印象很深刻。对于国内的很多大学生活动,我们可能过于要求场面性和组织性。但另一方面,美国学生对于“社会性”活动均非常热衷。比方说达尔富尔问题的演讲,整个场地人员爆棚,却鲜见我们中国留学生的身影。甚至是介绍四川西面那个自治区情况的演讲,也看不到中国人的身影(我可能是在那里的唯一中国人)。不得不感慨,我们的不少留学生还过着看看书,打打球的类似中学生活。眼下,那位富有争议的得过诺贝尔和平奖的宗教领袖就要在7月份到我们学校讲学一周,价格不菲的5000张门票在15分钟内售光。不知道我们中国留学生又有什么反应。

在这里,研究生的生活是非常忙碌的。我已经记不起有几次是晚上11点以前离开图书馆的了。大多数时候都要忙到深夜。然而收获却是显著的。最明显的并不是知识上的提高,因为知识本身在哪里都可以学习,最大的提高来于如何指导自己去学习,也就是如何为自己的学习找到动力。仅仅完成课程和导师交给的一些任务是远远不够的。

应该说我们一直有一个偏见,说中国大学里面的课程设置没有太多用,很多东西都过时了,或者说与工作不相干。不少同学抱怨学的东西没用。那我要说一句公道话,这里的很多课程,甚至大多数课程也和国内一样,与工作毫没关系。把自己找不到工作,或者觉得能力不行的责任推卸给学校,是很愚蠢的。事实上,在美国,如果你想找到一份理想的工作,那些工作技能没有一项是直接在大学里面教授的,没有,也不可能。抱怨学校的同学们最好多找找自己的原因。

从8月份开始,我就从系里面的助教工作转去我们学校的高性能计算中心担任研究助理,这对于我来说又是一个新的挑战。