Python的设计错误:yingwang:程序语言的常见设计错误(2) - 试图容纳世界

2013-04-19 19:43:00 +08:00
 banxi1988
我觉得说得挺有道理的,而且我知道这里很多Python高手,转来给大家评评。
http://www.yinwang.org/blog-cn/2013/04/18/language-design-mistake2/

PS:yinwang同学最近博客更新比较多,我是每天都会打开他的主页去看看的。
8740 次点击
所在节点    Python
53 条回复
banxi1988
2013-04-28 15:54:14 +08:00
@nullptr404 同意,今天安装了racket试试了试,感觉
用DrRacket写代码的感觉也挺不错的。而且racket确实对于常用的功能都有库函数提供。
#lang racket
(define readability "这个东西很多时候跟母语一样")
(define (reaable lang)
(you have learn it))
davepkxxx
2013-04-28 16:06:40 +08:00
非常同意王垠说的,所以说我更喜欢 scala 和 golang 。
clino
2013-04-28 16:06:49 +08:00
@nullptr404 我接触perl比python早,入门早,怎么没觉得perl可读性比python好呢? scheme那么多括号真的是给人读的吗?为什么不设计成其他的方式?我现在在了解不多的情况下凭自己的好恶只能得出这个语言的设计者脑子进水鸟.
davepkxxx
2013-04-28 16:11:39 +08:00
对了,他说给 Python 写过一个静态分析器,是他在Google实习的时候写的,这个分析器有可能是用在Google Code项目上。
nino
2013-04-28 16:16:32 +08:00
davepkxxx
2013-04-28 16:45:24 +08:00
@nino 我基本同意他的观点,我去年花了2周的时间自学Go,接触不到2个月我就放弃了。还因为一些给不出原因的地方和google groups上的golang-cn主题里的人产生了些许不快。

我把我当时的观点说一下:

1、语法很奇怪,除了能省几个括号。谁能看出这么写有什么特别的好处吗?设计语言的人有多讨厌 Lisp 啊……
for i := 0; i < 10; i++ {
if i > 5 {
}
}

2、Go的接口设计更像组合,而不是继承,作为一个Java Developer觉得不适应是理所当然的。而且我看不处这么设计有什么好处。

3、不少地方性能亟待提高,比如 int to string 和 反射。

4、在Windows上要使用Go很麻烦,我看不出用Win编程有什么不合理的地方。

5、没有好的 IDE,不是文本编辑器。

那么说说我放弃Go这么久依然看好它的原因吧。

首先这个语言很年轻,我觉得它很有潜力。

静态类型语言很棒,动态类型语言的缺点王垠已经说过很多了。

其次它的设计理念值得肯定,多线程肯定是未来的方向,从一开始设计的时候就考虑这点肯定比以后打补丁要强。

Google有实力开发于推广一们优秀的语言,虽然它还没有先例。
hooluupog
2013-04-28 16:58:48 +08:00
我对王垠批Go的原因就一句话概括:做学术的人看不顺眼一个以优化软件工程为目标的语言。如果他能看顺眼,那才怪了。他那么推崇lisp系的东西也是也是爱屋及乌。
nullptr404
2013-04-28 17:09:37 +08:00
@clino 怎么是脑子进水呢,当然是有历史原因的。建议了解下lisp系的历史再来评说。
kaidee
2013-04-28 23:11:42 +08:00
通看一遍他的文章(也值得全看一遍),能免去很多不必要的争论。
lfhong
2013-04-28 23:25:44 +08:00
以前在stackoverflow看过一个大牛谈到过不同语言,不同framework的对比(他自己是一个著名framework的创始人), 基本上他能回答所有的这些争论。 答案就是

”它们就是被设计成这样的“

每个语言,每个framework,最初都是为了一个比较特定的目的而设计的,因为这样,所以一些项目成功了,成功以后,它们会被用到更广泛的地方,然后最初的那些特意为之的东西,就变成这个博里说的”不足“。

所以专门把几种不同的语言拿出来挑刺,就显得狭隘了。
guoquan
2013-04-29 00:57:38 +08:00
这不就是prototype机制么,如果这叫设计错误,那面向对象也是一种错误了,因为他使得数据结构很复杂,你需要维护类的许多信息,当你遇到派生,多态,你简直觉得图灵机上设计编译器是np问题,这使得c++,java,c#等标榜这一特性的语言笨重不堪。
davepkxxx
2013-04-29 12:46:49 +08:00
其实关于Python这个语言如何,你看看Python的IDE和其他的语言的IDE就知道了。
ShiningRay
2013-04-29 22:30:04 +08:00
王垠每次写文章都在自吹自擂,强调自己多牛逼,我不否认他牛逼,但他反复提总是让我很不爽

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/66354

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX