程序中的平衡

Category: /blog /programmer
Tags: programmer

以前我写程序总是想着追求极致, 尤其是学了编译原理后老想着怎么写省内存, 怎么写执行快. 现在好象越来越中庸了, 而且无论是生活体验还是编程心得都是觉得应该注重平衡, 不知道是不是心态变老了. 有一个有趣的发现是我以前写程序时觉得这是给计算机看的, 现在越来越觉得人看这代码时的感受更重要. 以前写网文时觉得这是给人看的, 现在觉得让电脑明白也很重要. 呵呵. 写程序不仅能让高手看了夸奖, 更重要的是要让新人也能看懂.

也许下面的话低手认为是臭拽, 高手觉得是废话. 反正是俺现在的真实感受, 以后再更新看有没有新的体会吧.

Mathematica

最初写程序的时候我是想方设法把程序写得精简. 小时候特震撼的一段经历是玩过一个叫 “Mathematica”的软件. 我上大学时还拿它来写过微分和积分的推导, 求导虽然明白点基本原理, 可对于电脑能推导出积分觉得不可思议. 那时我的小脑瓜里就已经有定式思维, 觉得电脑就是用来算数的, 人脑的优势在于可以推导, 会发散思维. 而Mathematica的表现简直在侮辱俺的智商. 感谢中国的盗版事业, 让俺这个穷孩子有机会接触这么精彩的软件. 即使到了美国大学我也没怎么再见到它. 不知道有多少人知道这个软件, 并且看过用它写出来的程序. 它如果用 functional programming, 能把特难的数学问题用几行代码来解决. 那代码真是可以天书来形容. 当时的体会是我看到了我一辈子也写不出来的代码. 后来一个常在一块玩儿的朋友毕业去了出品Mathematica的公司Wolfram工作, 让我马上刮目相看. 学习Mathematica落下的病根是让我以为用越短的程序解决高深问题让自己显得象个高手. 直接影响是后来我用心学了两年perl, 用一行代码做很多事时也很兴奋. 用如今的词儿是象打鸡血, 高了. 现在俺内心深处还有一个小小心愿就是等我的孩子长大学数学时, 我还要趁机把Mathematica再学一回. (更新: 前不久有个机会我得到最新的Mathematica可以免费使用一年, 不过目前已经没有时间了)

接下来写我用perl的痛苦经历. 我学perl完全是出于实际需要. 我的老板需要发布一个网络应用. 那时系里的机器只支持CGI, 而且只允许perl或C. 老板问我愿不愿意用perl实现CGI. 我说成, 就这么上了perl的贼船了. 那时真是兴奋啊, 想想全世界的教授和学生都来用自己开发的程序来做研究, 动力十足. 我和另一个印度学生经常熬夜奋战, 他完善设计我来实现, 俩人一起DEBUG. 网站发布的前一周我俩一直做到早上七点,测试结束, 回家洗澡刮脸, 九点回来开会向老板汇报.

网站刚发布时反响很好, 很多人来信询问细节和提供回馈, 我们及时更新. 可是过了两年开始出问题了. 和我一起并肩作战的印度学生到别处读博士去了, 这样所有的维护工作都交给我了. 而这些工作越来越成为routine, 对我的学业研究没有一点帮助. 看到一些未曾谋面的博士硕士生得到帮助而我没有任何进步, 心里真不是滋味.
终于有一天, 网站需要增加优化. 当我不得不仔细修改代码时大吃一惊. 这是我写的代码吗? 怎么几个月没看就变得这么难懂. 当时一下子就想到了那个关于perl和python的笑话. 于是从那以后我就彻底地抛弃了perl, 改投python了.

未完待续

讨论

提示

  • 如果看不到讨论部分, 请暂时关掉adblock in Firefox/Chrome
  • 本网站使用Javascript实现评论功能, 此处外链对提高您的网站PR没有帮助. (潜台词: 请不要灌水, 谢谢)