最近喜欢上了python,吸引我的地方的是其简洁之美以及方面的类库,于是最近一个月我几乎都将业余时间交给了python,但是越学习越觉得迷茫。
“学习编程语言的过程实际上就是学习该编程语言的语法+该编程语言的类库”,这句话不是我说的,也不止一个人提到过。一门编程语言的语法其实也很简单,估计会任何一门编程语言的人拿出来一天甚至是半天的时间都可以学会,但是学习该编程语言的类库又是一个漫长的过程,浩如烟海的类库不是一朝一夕就可以搞定的,难道学习一门新的编程语言就是为了从一门语言的类库泥潭中跳入到另外一门语言的类库泥潭中吗?
我也曾经想借python的学习,来系统的学习一下编程语言的设计,也曾掌握过大致编程语言的语法结果,这些东西估计在《形式语言在自动机》中会有更系统的阐述,但是有的时候琢磨琢磨学习这些有什么用呢?除非是要设计一种范式或者设计一门新的编程语言,当前之下,编程语言五花八门,再怎么设计也赶不上现在的,何况也没有那个功力。编程语言也就是一种编程的协议而已,我觉得跟HTTP协议、FTP协议差不多少,无非定义的就是动作+数据。
再说说那些浩如烟海的类库,这些类库其实就是造作考究的轮子,在解决问题方面,不过是多线程,还是网络通信,还是其他的什么遍历,都有一些比较成熟的模型和算法,各种不同的语言只不过根据这些模型和算法实现了轮子,这些轮子经过技术大牛们的精雕细琢,也经过广大码农们的“联合测试”,相对已经比较成熟,所以我们不需要重新造,直接拿过来用即可。但是在没有遇到对应的case情况下,我觉得我很难去“精通”这个轮子,也许仅仅是用这个轮子写了一个“Hello world”,或者使用场景有限的情况下也很难体会到其中的设计之妙。
语言只是工具,只是媒介,相当于手中的剑,不管使用的铜剑,还是铁剑,还是一把木头剑,都可以去练那些高深的剑谱,都能玩出花来,只不过制造考究的剑能够锦上添花而已。在这一点上,我觉得选择C这把剑。python就当是一把枪好了,随身携带,使用方便。
原文参考自web开发网:http://www.software8.co/wzjs/cxyyg/3635.html