1
swulling 2013-04-19 19:45:45 +08:00
我觉得这种不应该举个抽象的例子,而是实打实的说个应用场景。甚至可以附上代码。
否则泛泛而谈没啥意思 |
2
binux 2013-04-19 19:53:17 +08:00
如果出现了没有头的人,并且它活得好好的,说明它就是可以存在的。
国王不去想怎么解决这个问题,而是想怎么解决出问题的人,这到底是谁的错误? |
3
zuroc 2013-04-19 20:32:37 +08:00 1
just say : " Stop talking and show me your code"
|
5
clino 2013-04-19 21:11:43 +08:00
话说看了 scheme 的代码只觉得一阵阵的恶心,完全没兴趣再多了解一点这"一种非常严谨的语言",所以不知道博主喜欢的这种"动态语言"到底好在哪里
其实我觉得语言本身的使用者更有发言权,过多地去担心"这个国家到处跑着没有头,三只手,六只眼的怪人",可是我印象里没看到过动态语言的使用者有过这种抱怨 |
6
flypiggy 2013-04-19 21:59:38 +08:00
@clino 稍微深入了解一点,scheme还是很舒服的=.=尤其是racket已经做的很友好了~很多语言了解一下很有意思的...至今为止让我最不适的语言是php....
|
7
keakon 2013-04-19 22:03:13 +08:00 1
有的人就是不懂 putOnHat(people) 和 people.putOnHat() 的区别。
|
8
whtsky 2013-04-19 22:03:21 +08:00 via iPhone
按照作者的说法,他写了 Jython ?
|
11
muzuiget 2013-04-19 22:38:56 +08:00
不明觉厉
|
12
yangxin0 2013-04-19 22:39:19 +08:00 1
@swulling 不应该叫人家去show code,而是自己主动探索。建议看看SICP,我反正看了一些,做了部分题目,感觉发现了更大的世界, 现在可能功力不够,还不能道出。
|
13
lightening 2013-04-19 22:46:40 +08:00
@keakon 嗯,说得好
|
14
clowwindy 2013-04-19 23:04:36 +08:00 4
总结起来就是,给 duck typing 的语言写静态类型分析器,没写出来,怪这个语言设计错了。
|
15
nine 2013-04-19 23:11:57 +08:00
“当然,我在扯淡”
|
16
GordianZ MOD 请不要全文转载。内容已删。
|
17
reorx 2013-04-19 23:19:54 +08:00
看这种文章中经常链接到自己其他文章的博客,你会很快被作者的世界观洗脑的。
|
18
dreampuf 2013-04-19 23:35:28 +08:00
拿CPython的实现去复合"程序语言的常见设计错误(2) - 试图容纳世界"
|
19
enotey 2013-04-20 00:17:14 +08:00 via Android
哈哈,作者好可爱
|
20
knightliaotest4 2013-04-20 00:46:18 +08:00
|
21
cassyfar 2013-04-20 06:31:06 +08:00
比喻都是对学术严谨的最大侮辱 这更向一篇科普
我觉得如果yingwang真的有这么多idea,为什么没有做出一些得到业界认可的成果。比较怀疑他的墨水真的有多少,或者太过浮躁了。 |
22
hooluupog 2013-04-20 11:06:43 +08:00
说的很有道理。感兴趣的人可以看看http://www.python.org/dev/peps/pep-3117/#id14
|
23
skywalker 2013-04-20 12:08:44 +08:00
scheme很好,python不完美,那又怎么样? 语言只是工具,它们产生的原因不是为了完美,而是解决问题,就像菜刀虽然会切到手,但是只要小心点还是很好用的。 python这个不完美的工具所创造的东西比scheme要多得多,王垠要真像证明scheme比其它语言强大,不妨写个实际的东西出来。
|
24
hooluupog 2013-04-20 12:34:29 +08:00
我觉得王垠一个劲的夸scheme是有私心的。1.他的导师是《The Little Schemer》的作者,对scheme爱屋及乌;2.他是研究编译器的,所以他所说的东西都是站在一个底层编译器,解释器的设计者的角度去谈语言的。刚才看了篇http://coding.smashingmagazine.com/2013/04/18/introduction-to-programming-type-systems/(hacker news上的一篇)文章,这里面又涉及到静态vs动态,强类型vs弱类型等等历史争论,不是三言两语说的清的。但那篇文章的结论很好:Dynamically typed languages are popular now. The pendulum will swing back and forth many times in the coming years. The only solution is flexibility. Learn to work in each environment and you’ll work well with any team.
|
27
burnex 2013-04-20 15:13:52 +08:00
w
|
29
venglide 2013-04-20 16:46:46 +08:00 2
show me the code?我可不觉得语言设计层面的东西是show了code大家就都能明白的了(先不管正确与否),如果某个具体场景或算法什么的来点代码或许大家还能有点头绪。不要把show me the code当板蓝根用好不。
——难得的吐槽 |
30
feiandxs 2013-04-20 18:18:08 +08:00
对绝大部分用python都写不出个像样的架构合理的错误极少的项目的人来说,参与讨论语言设计方面的东西基本也可以类比成白菜命白粉心。
|
31
aisk 2013-04-20 18:39:13 +08:00
垠神这种学院派哪里知道我等码农的辛苦,我们为了开发效率宁愿留着这些语言dirty的地方。
|
32
perrywky 2013-04-20 21:34:01 +08:00
他说的这个问题可以通过良好的架构设计来避免,根本就不是什么大问题
再好的语言配上垃圾的架构设计一样漏洞百出 如何在代码不断膨胀的情况下依然维持一个良好的架构,考验的是你的耐心和技巧,和你用什么语言一毛钱关系都没有 |
33
e1443367 2013-04-20 21:40:43 +08:00
+ + + +
|
34
RisingV 2013-04-22 13:51:35 +08:00
就事论事就行了,针对问题讨论问题。景德镇居民的特点就是说着说着就扯到人了,进而因为捍卫自己对问题的立场而去质疑人的品格和能力。问题还是那个问题,无论是谁提出来的。这才是基本的治学态度。
|
35
zaeneas 2013-04-22 14:31:41 +08:00
我倒是觉得这像是在说类型检查或者说静态语言和动态语言之争
如黑客与画家提到了,某些程序元不喜欢程序去限制他们的自由,于是他们偏好于动态语言;但是还有一些觉得应该有很多的类型检查之类防止程序猿犯错,所以他们偏好于静态语言或者有类型的语言 |
37
venglide 2013-04-28 13:43:23 +08:00
|
39
nullptr404 2013-04-28 14:04:12 +08:00
@zuroc 他有github账号的https://github.com/yinwang0 那个ydiff写的很有水平
|
40
nullptr404 2013-04-28 14:24:02 +08:00
|
41
banxi1988 OP @nullptr404 同意,今天安装了racket试试了试,感觉
用DrRacket写代码的感觉也挺不错的。而且racket确实对于常用的功能都有库函数提供。 #lang racket (define readability "这个东西很多时候跟母语一样") (define (reaable lang) (you have learn it)) |
42
davepkxxx 2013-04-28 16:06:40 +08:00
非常同意王垠说的,所以说我更喜欢 scala 和 golang 。
|
43
clino 2013-04-28 16:06:49 +08:00
@nullptr404 我接触perl比python早,入门早,怎么没觉得perl可读性比python好呢? scheme那么多括号真的是给人读的吗?为什么不设计成其他的方式?我现在在了解不多的情况下凭自己的好恶只能得出这个语言的设计者脑子进水鸟.
|
44
davepkxxx 2013-04-28 16:11:39 +08:00
对了,他说给 Python 写过一个静态分析器,是他在Google实习的时候写的,这个分析器有可能是用在Google Code项目上。
|
45
nino 2013-04-28 16:16:32 +08:00
@davepkxxx 请看王垠批golang的文,http://www.yinwang.org/blog-cn/2013/04/24/go-language/
|
46
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有实力开发于推广一们优秀的语言,虽然它还没有先例。 |
47
hooluupog 2013-04-28 16:58:48 +08:00 1
我对王垠批Go的原因就一句话概括:做学术的人看不顺眼一个以优化软件工程为目标的语言。如果他能看顺眼,那才怪了。他那么推崇lisp系的东西也是也是爱屋及乌。
|
48
nullptr404 2013-04-28 17:09:37 +08:00
@clino 怎么是脑子进水呢,当然是有历史原因的。建议了解下lisp系的历史再来评说。
|
49
kaidee 2013-04-28 23:11:42 +08:00
通看一遍他的文章(也值得全看一遍),能免去很多不必要的争论。
|
50
lfhong 2013-04-28 23:25:44 +08:00 1
以前在stackoverflow看过一个大牛谈到过不同语言,不同framework的对比(他自己是一个著名framework的创始人), 基本上他能回答所有的这些争论。 答案就是
”它们就是被设计成这样的“ 每个语言,每个framework,最初都是为了一个比较特定的目的而设计的,因为这样,所以一些项目成功了,成功以后,它们会被用到更广泛的地方,然后最初的那些特意为之的东西,就变成这个博里说的”不足“。 所以专门把几种不同的语言拿出来挑刺,就显得狭隘了。 |
51
guoquan 2013-04-29 00:57:38 +08:00 via iPad
这不就是prototype机制么,如果这叫设计错误,那面向对象也是一种错误了,因为他使得数据结构很复杂,你需要维护类的许多信息,当你遇到派生,多态,你简直觉得图灵机上设计编译器是np问题,这使得c++,java,c#等标榜这一特性的语言笨重不堪。
|
52
davepkxxx 2013-04-29 12:46:49 +08:00
其实关于Python这个语言如何,你看看Python的IDE和其他的语言的IDE就知道了。
|
53
ShiningRay 2013-04-29 22:30:04 +08:00
王垠每次写文章都在自吹自擂,强调自己多牛逼,我不否认他牛逼,但他反复提总是让我很不爽
|