Ruby 板


LINE

※ 引述《ericyu (Eric)》之铭言: : == 程式语言的重要性 == : 因为语言是人类思考的本质。语言会影响说话者的思考。(这里还提到 : Sapir-Whorf 假说,请见 http://tinyurl.com/krz6nv 在这本书里: http://en.wikipedia.org/wiki/The_Language_Instinct 作者嘲弄了这个假说里的一个范例: "Steven Pinker in the Language Instinct ridiculed this example, claiming that this was a failing of human sight rather than language." quoted from http://en.wikipedia.org/wiki/Linguistic_relativity 我的解读是, Pinker 认为思想是在语言之上,人会因语言而有不同的表达, 但不会因为语言而有不同的想法,那多半来自文化或其他环境因素。 也就是说,其实我们有一个「心智语言」,利用这样的语言来思考, 再将之翻译成自然语言。打个比方,应该能够在心中想像一个立方体, 让他用各种方式翻转,但这件事是很难用自然语言表达出来的。 anyway, 程式语言和自然语言也差很多就是了,毕竟自然语言可以任意表达, 而我们写程式确实是会受限於程式语言,我们没办法表达超过语言本身能表达的, 就像在不是 Turing complete 的语言上,自然无法表达 Turing complete, Ruby 如果不呼叫 C, 也没提供 system call API, 当然也无法做 system call, 而我们自然不会去想用那种方式来解决问题,毕竟本来就是办不到的事... : 20 年来的名着「人月神话」也提到「程式人员一定时间内能产出的程式码 : 行数是一定的,不论用什麽语言」。假设这是真的,那麽一天五百行, : 用组合语言,C,或是 Ruby 都是五百行。 我不记得人月神话有提到这句话 XD 不过假设我们现在在使用一个极端语言,例如没有回圈,什麽都没有, 但我们需要让某个工作重复做五百次, 那我一天的产生,也肯定不只五百行了... XD 写 Java 我产生程式码的速度也极快,因为有些时候必然需要大量程式码, 这点在 C++ 有时候也有类似的状况。但写 Ruby, 有时候我会写得很慢, 同一个程式码前後花很多时间在调整。而 Haskell 更常常因为需要思考, 而停下来,不太有办法写得很快。有时候写了一整天也只短短几行, 但是做的事情,可能就是 C++ 几千行在做的了... 我想这假设应该不太可能为真 XD 这假设要成立,恐怕需要先假设每个语言的表达能力是相同的。 : 演算法相同,但 Ruby 的看起来密度较低。Ruby 不需要明确给定型别, : 不必要的型别指定可以省略,因此可以较简洁。 这比较可能略嫌粗糙了点... XD static typing 与 dynamic typing 在本质上就不同了, 从这点出发的话,恐怕是需要比较 trade off. 或许可以从这边看出,Matz 并不太喜欢 static tying. : 演算法教科书使用虚拟程式码来描述演算法,若要实际使用,就要处理类 : 似指定型别这些非本质的部份,而无法集中在演算法的本质部分。 我不是很同意 static typing 算是非本质的问题, 如果我们假设 programmer 绝对不会犯错,也绝对知道所有的问题, 那或许因为已经不用解决 typing 的问题,因此可以不视为本质问题。 但很多时候,其实我们是需要 static typing 来验证问题与答案, 也很可能 static typing 最後告诉你,想解决的问题本身是矛盾的。 我觉得 dynamic typing 的好处大概有两点: 1. 方便 2. polymorphic 有很大的发挥空间 当然这都是相对 static typing 的。 : (1993) 没什麽人认为可以在 script 语言里用物件导向程式,连内建型 : 别都是都以 class library 方式提供的可说是相当稀奇。之後看 Ruby : 的成功,我想这个判断是成功的。 虽然我不是很熟,不过 Smalltalk 比 Ruby 早诞生很久很久 XD 也听过别人说,Smalltalk 藉由 Ruby 复活了... 没弄错的话,Smalltalk 也比 Ruby 更加 OO 许多。 : 若导入巨集功能,会引起严重的副作用,这里到底是函式呼叫,控制结构, : 还是要代入什麽,得再查文件才能知道。 : 嗯,也许世界上也有不会为此所苦的 Lisp 程式人员,不过我认为这只是 : 少数人。 : 要能在世界上普及的程式语言,我相信必须要有「不为风所摇动的核心」 : 的文法。 噢,原来原因是这个,那我完全能理解 XD 之前看 Lisp 就常常搞不清楚 macro 跟 function 之间的状态... 如果全部都是 function, 那很多事情就会变得一致了。 : == 都是为了乐趣 == : 程式语言存在目的是为了生产程式,以及尽可能有效率地生产。还有与程 : 式设计的快乐连结在一起。 : 在国外活动等演讲後,有许多人跟我交谈,其中典型的就是「用了 Ruby : 以後又能快乐地写程式了,谢谢。」 : 写程式本来就很快乐,是既刺激又富创造性,让人兴奋的知识活动。我想 : 起中学时用 BASIC 这种贫弱的语言写程式时也很快乐,不过也有因为工作、 : 期限等而造成不快乐的程式撰写,这是世间常情。 : 即使如此,Ruby 所提供的生产力若能解开程式人员身上的枷锁,重新找回 : 程式设计的乐趣的话,那就是我开发 Ruby 的理由。 同感 XDDD 以「乐趣」而言,写到现在还是 Ruby 最高 ~ -- 生死去来、棚头傀儡、一线断时、落落磊磊 《花镜》-世阿弥 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.28.18







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP