Fwd: [TL] [圣战] Python 是个烂语言

15 views
Skip to first unread message

Junkun Huang

unread,
May 17, 2013, 7:44:18 AM5/17/13
to ?"


在 2013年5月13日星期一UTC+8下午12时44分27秒,nwang写道:
希望所有人在参与语言争论之前都先认真读一读Richard P. Gabriel的Worse Is Better。这篇文章(其实是讲稿的一节以及一系列后续文章)本身极具争议,但为所有诸如“为什么X比Y好却不流行”之类的讨论提供了一个很好的框架。最重要的是,语言是否流行与其设计优劣并不完全相关,其中工程和社会因素都有影响。


比如说:
  • 大部分公司程序员并没有权利决定项目的主要语言
  • 决定主要语言的常常不完全是技术因素
  • 语言在流行后有可能快速的修复和进化
比较近的一个例子是Facebook和PHP。HipHop的出现符合Worse Is Better里说提到的“烂”系统的“进化”。还有一个鲜活的榜样是JavaScript。另一面,尽管有深厚的学术渊源和Paul Graham的榜样鼓吹,优雅的LISP仍然没有成为硅谷创业公司的主流。这些可以看作是Worse Is Better的当代版。


另一个例子是C++。许多人以批评C++为乐,却故意忽视它流行多年且依然屹立不倒的基本事实。以下几条优点足以是C++成为高性能大团队项目的主要考虑之一:
  • 性能模型直观清晰(相对各类解释型语言和函数式语言),直接映射硬件的性能模型对编码和优化都有巨大帮助。
  • 提供丰富的抽象机制(相对C),适合大团队协作。
  • 编译器成熟高效(不考虑编译速度),经过多年发展,严重BUG已经很少。
而C++的主要问题之一——特性滥用——也可以通过内部规范和代码审查基本解决。我更喜欢Go的语言设计(有一定保留),但很难看到未来五年甚至十年内Go(以及许多其他“主流”语言)的编译器和类库能够进化到今天C++的成熟度。这可能也是一个“烂”语言成功的例子。


抛开具体场景谈论语言的优劣很容易误导初学者。 我觉得Dreyfus模型中的初学者和高级初学者更喜欢简单化和绝对化的比较,而熟手和专家能够全面综合的考虑,不轻言孰优孰劣。“X好,Y烂”之类的表述对专家没营养,对新手有毒害。让计算机系的学生以VB入门属于误人子弟,而教技校的孩子Haskell搞不好会饿死人。当然,这涉及到“大学”和“计算机系”这两个词的定义,不展开谈。


如果倒回十五年,我希望告诉年轻的自己这几件事情:


2013/5/12 snow8261 <snow...@gmail.com>
python 好也吧,坏也吧。吐槽对于python的使用流行没有任何影响。国外很多课程都是用python作为计算机入门的语言。每钟语言都有自己的定位和用处。有优势也有缺点。

--
 
---
您收到此邮件是因为您订阅了 Google 网上论坛的“TopLanguage”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 pongba+un...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com/groups/opt_out。
 
 

Reply all
Reply to author
Forward
0 new messages