2013/6/19 19:40 写于 立诚 1-213
第十二章 拒绝平庸
埃里克 雷蒙德写过《如何成为一名黑客》,里面写了一个黑客应该掌握的语言,包括 python,java,c(针对UNIX系统),per(针对系统管理和开发CGI脚本)l,lisp.
Lisp很值得学习,你掌握它以后,会感到它给你带来的极大启发,这会大大提高你的编程水平,使你成为一个更好的程序员。尽管在实际工作中极少人会用到lisp.
对于一个画家来说,如果有一支笔可以让他画得更好,那么他一定会用这只笔的。但是程序员却不是如此。雷蒙德对lisp的评价这么高,但是为什么却很少人用它去开发呢?这还要考虑到公司的发展。对于一个创业公司来说,它不能失败,每一步都要小心翼翼的。创业公司要么赢得一切,要么输了一切,所以技术的选择就相当谨慎了。
大部分的创业公司会和大公司一样,走平稳的发展路线。这意味着什么?大公司的平均水平是收益年均增长10%,但是创业公司的平均水平是50%的公司会倒闭。这意味着,如果创业公司也是走那种很平坦的路,就意味着它会失败。
所以,创业公司在选择技术的时候,不应该去想,别人用的是什么技术,而是应该去想,什么技术可以好又快的解决这个问题呢?如果你忘记了你有自由去选择编程语言,而你的竞争对手却记得,那么你很可能就输在起跑线上了。对于创业公司来说,它们唯一比较突出的优势就应该是技术方面。所以,不能放过任何在软件开发上面有助于获得优势的事情。
还有,如果你的编程语言选的正确的话,那么可以有助你加快开发周期,你的团队规模也会相应的减小。而且,最好不要让别人知道你是用什么语言开发的。因为创业公司伤不起啊。。
那么,让我们来讨论一下,lisp到底有多好呢,以及为什么很少人用它。
lisp的最大优点就是,它是目前最好的编程语言,而它没有得到很好的推广是因为编程不仅仅是技术,也是一种思维习惯,非常难以改变。
作者首先表明了,编程语言是有能力的差异的。
大家都认同机器语言比高级语言低级吧。但是高级语言和低级语言是没有明确的分界线的。语言的抽象性是一条连续曲线。从最强大的语言一直到最底层的机器语言,每一种语言的能力都有差异。
不同的高级语言之间是有差异的。假设有A, B两种语言,A 语言有B语言的功能,而且还有一些B语言没有的功能,按照道理来说,A语言要强于B语言吧。所以,在正常情况下,你都要使用最强大的语言。
但是,程序员非常忠于自己用了好多年的编程语言。认为它已经足够好了。假设程序员使用A 语言多年了。当他在语言的曲线上往下看时,就会说,这个语言不好,功能实现很麻烦。但是当他们往上看的时候,却会说,这个语言虽然和A差不多,但是怎么会有那么多乱七八糟的功能啊,还不如 A实现的方便呢?事实是真的这样吗?我看未必吧。程序员已经偏向A了,心理上当然认为A好了。他的思维已经被同化了。熟悉了某种语言的人,他们都满足于自己碰巧用熟的那种语言,他们的编程思想都被那种语言主宰了。
所以说,唯一洞悉所有语言优劣的人必然是懂得最强大的那种语言的人。
但是现实是lisp语言确实很少人在用。可是,这也是一个好事啊。如果你的竞争对手只是个会拿弓箭的人,你可以一枪就解决掉它。
要知道,人类天性变化的速度大大慢于计算机硬件变化的速度,所以编程语言的发展通常比CPU的发展落后一二十年。lisp老早以前就提出了垃圾回收机制,宏,动态类型等,现在都被各种流行语言所借鉴了。lisp它是最好的编程语言。
可现实是,很多普通的编程语言正在主导一切,我建议你向日本合气道选手学习,利用这种势力削弱你的竞争对手,让他们自食其果。要知道,他们的技术永远都追不上你使用的技术。
当你为创业公司工作时,你可以去关注竞争对手的招聘广告,越是用的IT专业词汇多的公司就越不可怕,如 oracle,java等,就不要担心了.但是如果是perl Python就有点威胁了,如果是 lisp,那么就要相当重视了。
转载请表明出处
http://www.huangweibin.com/