toberich 板


LINE

※ 引述《gpmm (银色)》之铭言: : ※ 引述《StubbornLin (Victor)》之铭言: : 如果你提及的语言的可读性是指 Readability, : 但你所举出所拿来使用的例子却是这种, : 那我真的只能说你已经完全处於逻辑失控的状态了。 你才逻辑失控,你说你有修过程式语言 真的吗? 我不喜欢这样怀疑别人 但你质疑的点都让人觉得你根本就不懂 我是那教授,我铁定当掉你 : 一个语言本身可读性的高低,可以用多靠近人类语言的结构来定义。 : 而可读性的高与低,对这个语言造成的影响或优劣是什麽? 对,某种程度上来说是这样 我手边没有程式语言的书 大概是因为太少用到被我寄回老家了 所以我找一些网路上的资料 请看这个投影片 http://0rz.tw/0Oh4w 的第10页和第9页 Overall simplicity (全部简明易懂) A manageable (易辨的) set of features and constructs Few feature multiplicity (多样性) (means of doing the same operation) Minimal operator overloading Orthogonality (正交性) A relatively (相对) small set of primitive constructs can be combined in a relatively small number of ways to build the control and data structures of the language Every possible combination is legal Control statements (控制陈述) The presence (存在) of well-known control structures (e.g., while statement) Data types and structures (资料型态与结构) The presence of adequate facilities for defining data structures Syntax considerations (语法考虑) Identifier forms (识别符形式) Flexible composition (弹性写作) Special words Methods of forming (形成) compound statements Form and meaning Self-descriptive constructs, meaningful keywords 和这个 http://0rz.tw/9pebr Evaluation Criteria: Readability How is it for one to read and understand programs written in the PL? Arguably the most important criterion! Factors effecting readability include: –Overall simplicity Too many features is bad as is a multiplicity of features –Orthogonality Makes the language easy to learn and read Meaning is context independent 在这里指的Few feature multiplicity,这个不用说,违反Perl本身的精神: "There's more than one way to do it" 你也看见Perl加了这麽多功能在语法,自然违反overall simplicity的原则 再来看 Self-descriptive constructs, meaningful keywords 自我描述的概念,有意议的关键字 请问那些符号哪里有自我描述的概念? 哪里有有意议的关键字? 这些不是我瞎扯出来的好吗? 你不认同可以,你要质疑也可以 但你有做功课吗? 你有先查资料吗? 再举一个例子,你知道COBOL吗? http://en.wikipedia.org/wiki/Cobol http://0rz.tw/d7g0y COBOL因为是商用语言,所以设计上某种程度也希望非程式人员也能读 所以他写出来是像英文的句子 : 是进入这个语言的门槛。 : 是程式人员在学习这个语言的学习曲线。 : 是这个语言本身的容易普及或存活的程度。 : 举一个例子, : 如果某种语言,它的所有判断式要放在一个地方, : 但是判断式的描述区块却统统集中在另一个地方(想想还真可怕), : 如果这样能让语言执行速度比 C 还跳跃 3 万倍, : 那请问你这样的语言依旧是比较糟糕的吗? : 对我来说不是,因为它是「牺牲了自己的可读性」,来「提昇了执行效率」。 你的认知也有点问题 现代的编译技术越来越先进 要牺牲可读性去换效能也换不到什麽 既然如此,为何要换? 有兴趣你可以去看看LLVM等Just in time compiler的技术 http://llvm.org/ http://code.google.com/p/unladen-swallow/ Python有个计划就是打算让Python效能提升十倍 利用JIT compiler的技术 也就是他在执行前才把程式转为binrary code 或进行最佳化等等 : 所以在检讨可读性时,请将他背後的成因一起考虑进去。 : 当你硬是将你「正确的认知」套用在了「错误的逻辑」上, 你的认知一开始就错误了 重修完程式语言再来跟我战 : 提出了语言的可读性,却举出了聚焦在学习门槛的例子, : 还认为别人指出这个部份是在嘲笑你,这实在令人啼笑皆非。 你自己说读到一半笑出来 不然这是指什麽意思? : 你如果告诉一个只会说台语的亲切大妈,英文很易读易懂, : 她也会觉得你是在胡说什麽,那根本是无意义的鬼画符。 英文是computer science的母语 我想没有人会反对我这点吧? 大部份主流的函式库、程式、论文、文件 全都是用英文写的,不用英文难到要用阿拉伯文吗? 说真的,在资讯界不懂英文,你就只能得到二手资讯 等别人翻译好,你可以在天珑书局买到中文书时 那东西差不多也过时了,新的东西又出来了 用英文本来就是理所当然的事 给你看一个有趣的例子 周蟒 : http://code.google.com/p/zhpy/ 他是台湾的高手gasolin写出来的中文版Python 主要是用於教学用的,里面的语法都是用中文写的 对於懂中文的人可读性或许会比较好一点 : 当然,如果你评判程式语言的优劣是依靠它的学习门槛来决定时, : 你的确可以说,对同样不懂程式的人来说, : 可读性是一个语言很重要的优劣指标。 : 另外,能否请你解释一下你的观点, : 你把可写性界定在「熟悉这些符号的人」, 你完全搞错方向了,因为Perl加太多功能再语法,而且是用符号表示 自然学习要熟悉的负担就比较大 Evaluation Criteria: Writability: "Few constructs, a small number of primitives, a small set of rules for combining them" 再一次,请重修程式语言 : 却又把可读性定义在「对这些语言陌生不懂的人」。 : 如此摇摆不定的评论基准点, : 是怎麽让你打出这篇「如何评估比较程式语言」的? 我在我文章一开始就有说过了,我修过的程式语言的知识 加上我自己的经验 : : 这也是张飞打岳飞 : : 组合键只是加速你达成那样的功能 ... : : 6. break 是跳离回圈 : : 7. Python的code block是由缩排来决定的 : : 我想很清楚的是,perl你不懂语法,就是不懂 : : python版的可以猜,换成其它语言也一样 : : 因为没有一个语言像perl做这麽多功能在语法上的... : 老实说,这像什麽? : 这像是因为 Perl 的学习门槛高,语言本身可直接阅读性低, : 造成你学习上的不顺畅,所以让你特地写文章来大肆批评它一番。 : 更直接点,这像是一个明明在写 Python 的程式人员, : 忽然被老板丢了一个 Perl 的 code 要求维护, : 因为没办法用像平常一样顺畅阅读,所以炮轰 Perl 是个劣质语言。 我只能说很抱歉,你没有仔细看我写的文章就要跟我战 我很久以前就在写Perl,当时我的网页都是用Perl-CGI 只是很久没写了倒是真的 但是同样学习语言,这就是语言天生的差异 可以比较,没什麽好说的 你硬要延申成什麽语言优劣 你是劣质语言、我是优等语言这种奇怪的说法我也没办法 再说,好吧,学习上的不顺畅 请你去看程式语言的书好吗? Evaluation Criteria: Readability "Makes the language easy to learn and read" 再一次,我快抓狂了 等你修完程式语言再来跟我战 还有,我从来没有说过Perl是个劣质语言! 莫名奇妙,我只从各种特性探讨语言的优缺点 什麽时候我说过Perl是劣质语言? 你去翻我的文章,我哪里说过Perl是劣质语言? 又来了,说真的,每次讨论到语言就会有人莫名奇妙的激动= = 然後加一堆我没说过的说法,指着我说我嫌某个语言烂 : Perl 会有如此丰富多变的语言标记是有他的历史和原因的, : 我没有那麽清楚,但是请问你清楚吗? 没有那麽清楚也能拿来说嘴,原因很简单: http://en.wikipedia.org/wiki/There's_more_than_one_way_to_do_it 这就是Perl的哲学,这就是为什麽Perl是那个样子 : 今天你如果说因为 Perl 语言本身的可读性不佳,不接近一般语言, : 让你看 code 看的很杜烂,我想大家都能接受, : 但你非要用你无法直觉阅读 Perl 语言本身这件事, : 来评论这个程式语言的优劣,那我真不知道是为什麽如此高估自己。 我累了... 不想再重覆,Perl难读不是我自己说而已 我写那个proxy.py,就是在上网路程式设计时老师的作业之一 原本是用Perl写的,我特地写一个类似的Python版给我同学比较 他们都说Python比较好读 再者,我没有高估自己,我只是就我学到的在写文章而已 你为什麽不照照镜子,你连什麽资料都没查 也不回去翻一下程式语言的课本 就可以打这一篇从一开始就错到底的文章来跟我战 到底是谁高估自己? -- Now.in 网路广播平台 http://now.in 哇咧咧 创意投票系统 http://walele.com 易记学 程式设计教学 http://ez2learn.com/ VICTOR's 个人Blog http://blog.ez2learn.com/ --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.252.68.181
1F:→ TonyQ:你反驳跟说台语的人讲英文易懂那段完全搞错回文方向吧XD 01/15 13:09
2F:→ TonyQ:他不是在跟你说要不要用英文啦(晕) 01/15 13:09
3F:→ TonyQ:另外,你说「可读性是程式语言很重要的一个优劣的参考指标」 01/15 13:12
4F:→ iDestiny:小吃摊可以推出来了吧 改行卖鸡排说不定赚更多 01/15 13:12
5F:→ TonyQ:又说perl的可读性较python差,引申出你认为 perl劣於python 01/15 13:13
6F:→ TonyQ:还不算太牵强吧 XD 01/15 13:13
7F:→ TonyQ:不过你的确只有用相对的基准(相对於python)而没有用绝对 01/15 13:13
8F:→ TonyQ:「perl是个劣质语言」就是了。 01/15 13:14
9F:推 reflynet:单纯讲可读性的话,我可以推 psuedo language 吗? (...) 01/15 13:18
10F:推 superpai:那我可以推SQL吗 01/15 13:22
11F:→ StubbornLin:@TonyQ: 那你可以代我解释他到底那些是想表达什麽? 01/15 13:25
12F:→ StubbornLin:他不是想说可读性和贴不贴近英语没关系 01/15 13:25
13F:→ StubbornLin:是看读的人的背景知识,我的认知是这样 01/15 13:26
14F:→ StubbornLin:所以你觉得他想表达什麽? 01/15 13:26
15F:→ StubbornLin:而我认为英文能力本来就是写程式必备的 01/15 13:26
16F:→ StubbornLin:读的人本来就必备英文能力,这没什麽好说的 01/15 13:26
17F:→ StubbornLin:而优劣有前提的,今天这个语言是给谁写? 写些什麽? 01/15 13:27
18F:→ StubbornLin:团队会这语言的多少人? 学习成本多少? 01/15 13:27
19F:→ StubbornLin:而且我指的优劣是各项目上的优劣 01/15 13:29
20F:→ StubbornLin:要自行解释成整个语言就是劣质语言 我也不知道该说啥 01/15 13:30
21F:→ gpmm:你还是在跳…请你先定义你所谓「优劣」的目的是什麽好了 01/15 13:31
22F:→ gpmm:如果是依循 PL 良善程式语言准则,那自然你说的全对 01/15 13:31
23F:→ gpmm:但是请问业界在使用,是在看哪个语言有多良善吗? 01/15 13:32
24F:→ gpmm:请好好想想你讨论的目的跟出发点 01/15 13:32
25F:→ StubbornLin:我文章标题都写很清楚了 你只是单纯来战都都没读吗? 01/15 13:32
26F:→ StubbornLin:"如何评估比较程式语言" 01/15 13:32
27F:→ StubbornLin:业界在使用,评估条件写那些只是最核心的部份 01/15 13:33
28F:→ StubbornLin:我说过了,我之後会再写一篇更广范的评估条件 01/15 13:33
29F:→ StubbornLin:从可用资源、学习成本、维护成本、人才的可得性等等 01/15 13:34
30F:→ StubbornLin:各方面讨论,但老实说有点不太想写了 01/15 13:34
31F:→ StubbornLin:一堆人连文章都没看清楚就急着要跟我战 01/15 13:34
32F:→ StubbornLin:请问你是怎样决定用某种工具? 你真的有评估过吗? 01/15 13:35
33F:→ StubbornLin:没有比较,你要如何决定使用何种工具? 01/15 13:35
34F:→ gpmm:如果这样,请你标题改成「从语言标准来评估比较程式语言」 01/15 13:35
35F:→ StubbornLin:而比较,又是要比些什麽? 01/15 13:35
36F:→ StubbornLin:我认为我标题写够清楚了,你一来程式语言课在混 01/15 13:36
37F:→ StubbornLin:二来文章没读清楚就一开始就想战而战 01/15 13:36
38F:→ StubbornLin:再来也不查资料,就只靠一张嘴要战 01/15 13:37
39F:→ StubbornLin:你要我说什麽好呢? 01/15 13:37
40F:→ StubbornLin:就算我标题没写,内文也有写 01/15 13:37
41F:→ gpmm:我要你把标题改成「从语言标准来评估比较程式语言」 01/15 13:37
42F:→ StubbornLin:"大家都知道车子我们可以比较它的马力、耗油、安全评 01/15 13:37
43F:→ gpmm:因为你只局限着这个范围在着墨 01/15 13:37
44F:→ StubbornLin:等,但是大多数人不知道程式语言该比较些什麽,而我 01/15 13:38
45F:→ StubbornLin:今天所要说的,就是程式语言该拿什麽来比较" 01/15 13:38
46F:→ gpmm:很好,如果你把前提先阐明了,「我比较的标准是语言规范」 01/15 13:38
47F:→ StubbornLin:我才懒得理你... 凭什麽要改? = = 莫名奇妙 01/15 13:38
48F:→ gpmm:老早就没有人会说什麽 01/15 13:38
49F:→ StubbornLin:嘿... 我整篇文章都是在讨论语言规范 01/15 13:39
50F:→ StubbornLin:我难道还要特地注明: 这是在讨论语言规范 01/15 13:39
51F:→ StubbornLin:为什麽要脱裤子放屁? 文章整篇哪里不是在讲语言的本质 01/15 13:39
52F:→ StubbornLin:算了,第二篇文章我懒得写了 01/15 13:41
53F:→ gpmm:因为你没有阐明基准。凡评论都有其基准在,如果你只依循 01/15 13:41
54F:→ gpmm:语言规范,你就必须阐明他,不然你就无可避免要从各角度来检 01/15 13:42
55F:→ StubbornLin:到时又一堆人不读文章不找资料,一看见"比较语言" 01/15 13:42
56F:→ gpmm:讨,而你并没有这样做 01/15 13:42
57F:→ StubbornLin:就高潮了,急着来跟我战.. 我还得浪费时间解释 01/15 13:42
58F:→ StubbornLin:我就算没有这样做又如何? 我都说了,那是之後要写的 01/15 13:43
59F:→ StubbornLin:你今天就可读性那些部份跟我胡扯都是乱讲 01/15 13:43
60F:→ StubbornLin:被战倒你才再那边跳针要战其它的部份? 01/15 13:44
61F:→ StubbornLin:要麻你就一开始战其它的部份,训练成本、可用资源等 01/15 13:44
62F:→ StubbornLin:你一开始就挑我文章那些写的部份来质疑我 01/15 13:44
63F:→ StubbornLin:现在又要跳针到其它地方去,我懒得理你了= = 01/15 13:45
64F:→ StubbornLin:你慢慢回吧 01/15 13:45
65F:→ gpmm:「我就算没有这样做又如何?」真是经典的台词啊… 01/15 13:46
66F:→ gpmm:我谈论可读性跟你谈论可读性的基准不同,你以语言规范检讨 01/15 13:47
67F:→ StubbornLin:好,可读性的基准就如我文章里写的,那你的是什麽? 01/15 13:48
68F:→ StubbornLin:你说你修过程式语言,但是你的想法又完全跟所学不一样 01/15 13:48
69F:→ StubbornLin:你是打算发一篇论文 "探讨程式语言的可读性" 01/15 13:48
70F:→ StubbornLin:来跟我们说明程式语言的可读性要如何比较吗? 01/15 13:48
71F:→ StubbornLin:我洗耳恭听 01/15 13:48
72F:→ gpmm:不不,你是老大,你的对,小的退场 01/15 13:50
73F:→ StubbornLin:我最後只想说,当你指着别人说你高估自己 有四根指头 01/15 13:57
74F:→ StubbornLin:指着你自己,我所写的都是我所见所闻,我的心得 01/15 13:57
75F:→ StubbornLin:我的经验,要质疑我说的不对,只要理性都很欢迎 01/15 13:58
76F:→ StubbornLin:像这样不引用资料,一股脑的只是为战而战... 01/15 13:58
77F:→ StubbornLin:我只能说是浪费大家时间而已 = = 01/15 13:59
※ 编辑: StubbornLin 来自: 111.252.68.181 (01/15 14:04)
78F:推 bobju:这系列战文谁说得有理暂且不管.倒是StubbornLin提供不少资讯 01/15 14:11
79F:→ bobju:还蛮有用的. 01/15 14:12
忘了说Perl还有个问题很严重 它违反这条 Orthogonality Meaning is context independent 我举个例子,像是它以$/来改变<>的行为,就是context dependent 为什麽呢? <>到底会怎样读得看$/到底被改成什麽 一来读起来会需要看上面到底有谁动了$/ 事情还不只是这样简单 例如张三写了这样的程式 sub getFirstColumn { // 改变<>以逗号来当资料读取的分界 $/ = ","; // 读取一栏资料并回传 (Perl放最後一行是回传值) $firstColumn = <$FILE>; } 好像没什麽问题对吧? 李四接手这个程式,然後这样写 $column = &getFirstColumn(); $allRemain = <$FILE>; 他原本预期$/是空的,所以<$FILE>会读整个档案的内容 但是不幸的是$/在getFirstColumn中被改掉了... 李四对於跑出来的结果会觉得莫名奇妙 为什麽会是这种鬼打墙的结果? 他得浪费宝贵的开发时间去检查到底问题出在哪? 如果他有些经验,他知道这是之前有人改了$/ 他得翻一堆别人写的程式才能知道他在哪里改了那个值 这就是上下文相关的问题所在 因为有太多语言相关的问题会影响到开发的效率 也是为什麽我这麽重视语言的本质和特性 花那麽多心力和时间在比较和评估上 像Perl就很不适合团队开发,因为上面提到的特性 使它容易写出很"脏"的程式 用改全域变数来改变程式的行为 使得别人要写会容易产生非预料中的结果 ※ 编辑: StubbornLin 来自: 111.252.68.181 (01/15 14:25)







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灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP