我不懂perl,只是大概知道它能做什么用。严格意义上说,我不符合你所说的“想知道是不是应该学Perl”——我知道我应该学perl——不过我还是仔细看了你的帖子,以及你和其他人的大部分争论。你被删掉的那些帖子,很遗憾,看不到了,所以只能根据我现在读到的这些东西来写帖子:
头一回看到把perl当成邪教的人,我觉得这个说法很有问题。首先perl不是宗教,如果你能接受通常人们的看法的话。若你这个说法是个比喻,那恐怕你得说它邪在何处,又是跟谁比。根据你的说法,perl可以标为或者类比为邪教的问题主要在于它的语法,(你推测的)它的作者以一种什么心态来设定它,以及,同样是基于你的推测,学习perl的人是一种什么思维习惯。
你说语法的一部分是“错”的,这个说法站不住脚。对于自然语言,“Grammar is the study of the rules governing the use of a language. ” 对于人造语言,如果你可以认同,那么语法就是被设计出来的,用于约束语言使用的使用规则。既然是设计出来的规则,那么说它“错”的凭据又是什么呢?其实你说的那些例子,可以归结为你认为perl的语用有问题。你说“当我们赋值的时候,我们隐含地就认为两者相等了”。但是,你是如何认定赋值就必须“隐含地”使得两者相等呢?在日常语言中,“是”这个字的语用功能极为复杂。比如,“今天是晴天”,“昨天是晴天”,可昨天是今天吗?perl既然是语言学家设计的,又有意的模仿了自然语言,那么它和其他语言相比会显得不那么严谨,也是情有可原的。这一点,我个人认为,并不足以成为指摘它“错”的理由。你本能的产生了反感,并不意味着它错了。你说它错,无非是因为它不符合你的看法。但是对别人来说,这未必是错误,可能是灵活性的体现,也可能是perl有趣的地方,或者用多了之后就会发觉这种约定有一些道理。符合(你的)逻辑是重要的,但是缺乏逻辑就得讨厌吗?未必。
至于你说“要理解它,你必须抛弃自己的思路,必须接受Perl的逻辑。对一个真正酷爱自由的人来说,这是一件无比痛苦,无比屈辱的事。”这个就有些泛化了吧,自由永远都是相对的。真正酷爱自由的人(我觉得中国没有,有的话早气死了)不会强迫自己理解什么。你都说了“要理解它”,在这个大前提下又想要不接受它的逻辑,这样的自由太不现实。试问你想要理解莎士比亚,却又不愿意接受十四行诗和古英语的古怪文法,那你怎么达到自己理解的目的?最后你无比痛苦和无比屈辱的理解了,你叫嚷说自己不自由,问题在于你为什么强迫自己理解?perl号称自己是一种自由的语言,是基于它对自由的定义。以我的粗浅理解,它所谓自由主要是指它的弱类型和比较贴近(可能不包括你的)人类日常语言习惯。其实弱类型也是一种贴近人类日常语言习惯的体现,这个离题了,不说。
还有,你提到了“……表达的自由。程序员的思想就是程序,就是算法加数据结构。而这两者和语言是没有关系的。就像苏格拉底和庄子都是伟大的哲学家,但他们的哲学思想同他们用哪种语言来写书是没有关系的一样。”
果真如此么?如果有兴趣参考一下心理语言学和语言哲学的简单介绍性书籍,你就会发现这样一种论断:思想是基于语言的,和语言密切相关。语言是思维的工具,语言的特点也会影响思维。追根溯源的话,两者间其实是鸡生蛋生鸡的关系,只是就当下而论,假设其他条件一致,一个孩子在中文语境中长大,和他在其他语境中长大,其思维方式会迥异。比如中国人不那么在意性和数,更没有格的概念,我们不会去在意门这个词指一扇门还是很多门,“因为”这个词后面的形容词要怎么变化。而对于一个西方人,比如德国人,一扇门是阴性还是阳性,一个原因是与格还是属格是说话时必须考虑的事情。很难想象苏格拉底在语义暧昧、重想象而不是思辨的中文语境中可以发展出有和现在我们知道那样的学说,庄子若生在古雅典,恐怕也不会写出逍遥游。至于程序员,我相信所有读这篇帖子的人,也许不包括作者,都会承认自己若以另一种语言开始编程,那么编程习惯——包括书写、思路和惯用的数据结构——都会有所不同。我有个很合得来的朋友,在我学basic的时候,他学了logo。现在就日常文本处理和数学计算来说,我喜欢用python,他喜欢用lisp。我们经常会发现彼此解决类似问题的时候,所用的手法有着思路上的差异。所以熟练掌握的语言对于程序员的影响是巨大的,你对于perl的不适感就在于此——就好比你说惯了广东话,会觉得北京人卷舌头和加儿化音很怪异一样。更要命的是,有些词要加儿化音,有些不用。哪些用哪些不用?没有一定之规,约定俗成而已。你会想为什么要这样?这样多蠢啊。但是北京人不会这么觉得。这就是不自由么?不觉得有点上纲上线了?而且,这果真影响了它的表达能力吗?也许是吧,不过对于没有熟练掌握一种语言并且每天都对同样熟练掌握此语言的人来说,一种语言绝对不可能是表现力丰富的。如果你说perl在同等条件下表达力更差,那也是需要看这种表达力是否必须的前提之下。对于大型项目来说,perl的表达力不够,但是做一些小事的话,perl会很便捷。哦,这个是我听说来的,有待考证。如果愿意,你可以说说你的看法。
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 讨厌 为什么 语言 perl 问题 Perl 如果 一个 不是 shhgs |
注册
个人空间
