对一门编程语言的基本尊重
在大学里我们就知道一个著名的论断:程序=数据结构+算法,无数人奉为圭臬,衍生出很多变形体,比如"编程语言不重要,思想才重要"。
现在网络社群发达,一个实际上在某一个领域才刚入门没多久的人,在解决了新手提出的几个 hello world 级别的问题之后,就会被称为大神。然后他就能开始散布一些言论了。
这些言论本身放在一定的限定条件之下是没有问题的,比如 “Python 可简单了,看一个下午手册就能开始干活了”,他至少得有几个限定条件,比如你之前熟悉过其编程语言。即使在这些限定条件之下,你也得踏踏实实花几个小时到半天的时间来看手册不是么。
可是现实的情况简直令人啼笑皆非。比如,在一个 OpenResty 的群里,关于 Lua 如下的问题简直层出不穷:
- 为什么我定义了一个数组,下标 0 处没有我想要的数?
- 为什么我在循环里写个 continue 会报错?
a.b
、a["b"]
、a[b]
等等这些表达式为什么总不能按我的设想工作?- 为什么正则表达式在 string.find 中不好使?
- 为什么…
起初,碰到这种问题,我都会善意的提醒:
看看《Lua 程序设计》这本书吧,Lua 的作者亲手所写,绝大多数这些问题,在前几章都能找到答案。
但是几次下来之后,很明显提这些问题的人并没有去看。因为在解决了当时的问题之后,他们很快又会提出第二个类似的问题。
看来以后编程的流派要在面向过程编程、面向对象编程、面向工资编程、面向 Google 编程、面向 Stack Overflow 编程中,加入一个面向 QQ 群编程。
在我看来,这些人就缺少对一门编程语言的基本尊重。也许,他就是受了某些所谓“大牛”的某些论断的影响。这些论断里可能就有这么一句 “Lua 啊,可简单了,看都不用看,直接写吧”。