我们本学期学了数字图像处理,上机实验使用C语言,内容都相对比较简单。唯一复杂一点的是如何从BMP文件里读取图像信息,反倒是真正与课程相关的算法却如加减法般简单。我觉得课程安排上有很多不合理之处,往往在学一门课程时需要很多前置知识。比如学“计算机图形学”时要求上机用C++和OpenGL,结果很多同学上机不成功不是因为课堂内容不理解,纯粹是因为OpenGL不晓得怎么使用。
我一直憧憬着我们的计算机能平民化、大众化,降低大家的学习、使用门槛。如果我们学习时,有一门语言能屏蔽大部分和课程无关的细节,而能让我们专注于问题本身,这样的效果会更好。好比我有一个月假期,我想去北京旅游一趟,而导游一路上一个劲地介绍说杭州有名胜、南京有古迹、山西还能看兵马俑……这样一路下来,估计一个月也未必能到达目的地北京,或者到了也不能尽兴。索性抛开一切坐飞机直达目标玩个痛快!
本着这样的理想,我很想设计一门新的语言,降低大家学习的难度,能专心去做感兴趣的事情,苦于一直没找到一种通俗易懂、老妪能解、雅俗共赏的方式。传说面向对象的思想很接近人类的思维方式,理论上讲应该很好学、容易被普通人所接受,但事实是我们这些科班出身的人也未必能领悟到其精髓。
我们所学的知识很多时候就像是工具,掌握它们是希望能改良工作方式、提高效率,绝不会为了自寻烦恼而学习。可惜很多人就是喜欢摆弄自己的学识以求与众不同。
例如,语言作为我们沟通的工具,其意义在于能相互交流思想,能将自己的想法传播出去。但很多专家就是喜欢玩弄语言:正话、反话、倒话连着说,十个人来理解能看出二十种意思,没人能明白其真正含义,但他们依然我行我素,陶醉于其中,完全脱离实际。做这样的学问,不免有些孤芳自赏。再比如,如果周围的人都认为“下里巴人”是个贬义词,我觉得这时候为了能正常沟通而放弃一下自己的原则也无可厚非。
因此,处理最本质的事情被,解决最关键的问题才是首要的,避免卷入旁枝末节的漩涡。眼下社区中出现了一些不“和谐”的论调:比如优秀的程序员就用C++、聪明的程序员用Delphi;Unix是高手们用的,汝等草民还是回归Windows等。这让我联想到《无根的根》中无名师与最终用户的对话:
无名师又一次布道时,一个最终用户听说了他的智慧,跑来求教。
他对无名师三鞠躬。“我欲学习Unix大道,”他说,“但是弄不懂命令行。”
一个旁观的新门徒开始嘲讽最终用户,说他脑子一锅粥,说只有经训练者、有智慧者才配使用Unix。
无名师抚手不语,命这个嘲笑最终用户的新门徒前坐,坐到最终用户身边。
“告诉我,”他对新门徒说,“你写过什么代码,有过什么突出设计。”
新门徒嗫嚅了两句,然后沉默了。
无名师转向最终用户。“告诉我”,他问,“为何你要寻求大道?”
“我用的软件并不能令我满意既不稳定,也不美观”,最终用户答,
“听说Unix之道尽管艰难,但超越一切,我愿抛去一切诱饵和虚像。”
“那么,”无名师问,“你为何想尽办法让软件帮你做事?”
“我是个建筑工”,最终用户答道,“这座城里的很多房屋都出自我手。”
无名师转向新门徒。“家猫也能欺负老虎”,无名师说,“但是猫叫永远比不过虎吼。”
我们应该时常扪心自问,我是不是在孤芳自赏?也许计算机也要时刻谨记党的宗旨:以广大人民为中心!