livid刘昕:在辞职之际的一些想法

2010-08-28 10:47:53来源:西部e网作者:

    在最近这段时间,我为自己完成了一个决定——离开我已经为之服务了约半年的庞升东的 51.com 公司。做出这样的一个决定基本上是因为两个原因。

    1、我自己现在的健康状况

    虽然我的视力依然处于双眼 5.2 左右的水平,但是每次看镜子中的自己的时候,都觉得那双眼睛红得恐怖。由于这几年大部分的时间都是在各种各样的计算机前度过的,对我而言已经彻底没有了白天和黑夜的区别,每天的生活大概就是睡够了起来做事情,做累了就睡。而全身的主要活动部位就是那十根指头,所以活动量可以说是非常非常小,这样造成的直接后果就是不会感到饿,所以很久以来基本上一天只吃一顿饭。
 
    我已经越来越难在自己的身体上找到舒服的感觉,更严重的是,现在如果不借助大剂量的咖啡,我甚至不会有任何的精神和人说话,至于耐心更是彻底全部散失。这一点我以前在上海的同事林融或许深有体会,那个时候我用的 isQ(Mac OS X 上的 Cocoa QQ port)没有办法添加黑名单,于是我几乎每周都要借用林融的 WIndows 2003 机器上的 QQ 来添加长长的一串黑名单,因为 QQ 上的很多对话很容易就会让我丧失所有的耐心。

    我觉得这种健康的丧失,尤其是身体上的,将需要对自己进行一次自我挽救来解决。

    2、我看不到我工作的必要

    首先,我觉得,对于我而言,是否有必要去做一件事情,必须是我自己确实觉得有这样的必要,然后去做。

    任何人告诉我的“你有必要去做什么什么”基本上对于我而言就是 >>/dev/null。

    总结我在过去两年内做的大部分和计算机有关的事情,可以得出一个结论,我在做的是 web application。

    而在我看来,大部分的 web application 的本质,高层一些的话,是对字符串进行处理。

    更底层一些的话,所有的 application 都可以由图灵机完成,而我过去每天所做的那些关于 web application 的事情却绝对没有为一台图灵机设计正确的 5 元组有趣。

    那些都是一些可计算的问题,而我生活在这个世界是一个不可计算的世界。可以通过编程来检测一张数码相机拍摄的照片上是否有坏点,却无法通过编程来告知这张照片是否好看。

    于是具体说来,我在过去的那些公司里能够完成的有关编程的事情,也可以由任何其他知道怎么对字符串进行处理的小伙子们来完成,于是对于我来说,我没有必要一定要由我来完成这项工作。

    没有工作意味着没有收入,进而意味着我可能没法在今年 11 月 XBox 360 上市的时候买齐所有的豪华版配件及我极其期待的 PGR 3,但是,没有收入对我每天的吃饭,睡觉,看书,看 DVD,逛大街没有什么影响,于是这个问题我真的可以不在乎。

    由衷说来,我是真的不希望自己什么时候能成为所谓的成功人士。所谓“成功”,是一个被别人所定义的概念。每个人心目中都有自己的关于“成功”的标准——驾乘 BMW 是一种成功,如 Keso 一样一呼百应是一种成功,像超女们那样被全国关注或许更是一种成功。

    而“成功”与个人生活的 lifestyle 无关,在我看来。甚至非常个人化的 lifestyle 会受到所谓的“成功”的牵制。

    无论如何,我喜欢不来“成功”这个劳什子,我只想要我自己。

    于是,被大部分人所认同的工作的必要性的两个构成因素——收入和成功,在我这里不成立,于是就我个人而言我没有工作的必要。

    那么我自己想要什么呢?

    如果对我的一些大体状况进行归类的话,我大致是属于 geek 那一类的人。geek 们的特征之一是手指放到键盘上就可以敲得飞快,而这只是表象。如果深入到 geek 们内心,作为 geek 的美德之一就是永远乐于去尝试不同的东西。

    在我过去的 geeky 生活中,我进行了相当数量的关于 web application 的冒险,而现在我觉得是时候进行一个转换了。

    图形图像是一个或许在我现在看来更有趣的话题。从 Jef Raskin 设计的 Canon Cat 开始,计算机的 GUI 的基本单位是 window,GUI 被切分为一个又一个的矩形的 window。随着硬件能力的发展,当代的窗口系统如 Aqua 和 x.org 可以实现多个 window 的 cascade,window 本身的 transparency 的变化,及 window 边框周围的 dropshadow,etc。

    这些当代的窗口系统都对 window 这一基本概念进行了相当程度的装饰使得其变得非常漂亮,这方面的杰出作品的典型比如 Carsten Hitzler(a.k.a. Rasterman)的 Enlightenment 17。

    window 的 cascade 及 window 边框的 dropshadow,我觉得就是一种在 2D 平面上对 3D 世界的模拟。

    那么,如果我们来像这样思考问题如何?或许计算机的 GUI 本来就应该是一个 3D space,在这个 3D 空间中的 window 或者说 object 具备基本的如光照及影子这样的光学表现,同时可以使用 object 的 Z 轴来决定一个 object 的 active 程度,比如当前正在使用的 application object 的 Z 为 0.0f,而之前打开的那些程序就是 -1.0f、-2.5f 等等之类。

    并且,我觉得并不是所有的 application 都必须拥有一个矩形或者近似于矩形的形状,比如像音乐播放器这样的 application 或许就可以是漂浮在 3D 空间内的一堆歌曲的名字,那些 higher rated 的歌曲拥有相对较大的字体,用户用鼠标点击了或者用手触摸了歌名之后开始播放,当用户切换到其他 application 的时候那些歌曲名字就被全部收进 3D 空间内的一个可爱的圆圆的标有表示播放的箭头的 object。

    另外就是,如果 GUI 是一个 3D space,那么每个拥有矩形外观的 application 或许可以使用其翻转过来才能看到的背面来设定其 preferences,这样的设计在 Tiger 的 Dashboard 上已经有了,我个人觉得非常不错。但是如果深入研究其实现的那些 JavaScript 源代码的话,则实在是不够优雅。

    科学理论和实现的进步不是一个线性的可以预测的过程,但是我想现有的基于 window 这一基本概念的 GUI 在未来将逐渐过时,在 2019 年的时候应该可以用上这样的 3D space 概念的 GUI 了吧。

    我有一种强烈的愿望想在这个方向进行一些探索。所以我开始学习 OpenGL 同时复习数学。就像 C 语言概括了计算机的基本架构一样,OpenGL 概括了使用计算机进行图形显示的那些最基本的操作。

    今年我 20 岁,John Carmack 在我这个年龄的时候使用只具备 VGA 显示能力的计算机研究 Wolfenstein 的第一代的算法,而现在我在使用一台支持 Pixel Shader 的 PowerBook 学习 OpenGL,时代在变,但最基础的那些东西没变,为了获得高性能,关于寄存器和中断的那些知识不会过时,关于数学和物理方面的那些知识更是永远都不会过时。学习这样的一些东西或许会让我的时间过得更快一些,这样想来还是相当高兴的一件事情。

赞助商链接: