toberich 板


LINE

※ 引述《StubbornLin (Victor)》之铭言: : 你自己都说你认为的可读性(Readability)是风格(programming style)了 : 那你硬要来跟我说的可读性搭在一起 : 不是张飞打岳飞吗? : 我的文章的可读性是指跨语言的比较 : 语言的天性有些就使得他们难读 : 我随手找篇文章你可以读读看 : "What Makes a Good Programming Language?" : http://0rz.tw/U0NKe : 里面提到Objective-C的可读性 : 语言本身就有可读性的差别 : 如果你有修过Programming Language这门课就会知道 : 里面有一些章节是在讨论语言的可读性 : 你硬要拿错误的认知来嘲笑我的文章是你的自由 如果你提及的语言的可读性是指 Readability, 但你所举出所拿来使用的例子却是这种, 那我真的只能说你已经完全处於逻辑失控的状态了。 一个语言本身可读性的高低,可以用多靠近人类语言的结构来定义。 而可读性的高与低,对这个语言造成的影响或优劣是什麽? 是进入这个语言的门槛。 是程式人员在学习这个语言的学习曲线。 是这个语言本身的容易普及或存活的程度。 举一个例子, 如果某种语言,它的所有判断式要放在一个地方, 但是判断式的描述区块却统统集中在另一个地方(想想还真可怕), 如果这样能让语言执行速度比 C 还跳跃 3 万倍, 那请问你这样的语言依旧是比较糟糕的吗? 对我来说不是,因为它是「牺牲了自己的可读性」,来「提昇了执行效率」。 所以在检讨可读性时,请将他背後的成因一起考虑进去。 当你硬是将你「正确的认知」套用在了「错误的逻辑」上, 提出了语言的可读性,却举出了聚焦在学习门槛的例子, 还认为别人指出这个部份是在嘲笑你,这实在令人啼笑皆非。 你如果告诉一个只会说台语的亲切大妈,英文很易读易懂, 她也会觉得你是在胡说什麽,那根本是无意义的鬼画符。 当然,如果你评判程式语言的优劣是依靠它的学习门槛来决定时, 你的确可以说,对同样不懂程式的人来说, 可读性是一个语言很重要的优劣指标。 另外,能否请你解释一下你的观点, 你把可写性界定在「熟悉这些符号的人」, 却又把可读性定义在「对这些语言陌生不懂的人」。 如此摇摆不定的评论基准点, 是怎麽让你打出这篇「如何评估比较程式语言」的? : : 如果当我们将可读性误植在「语言」本身时, : : 会产生一个极其荒谬的情况 - : : 也就是语言的可读性,变成了你对於这个语言的熟稔程度的指标。 : : 如果依照这个逻辑,当我们在使用 windows 时, : : 用滑鼠点选切换视窗的人,也会觉得这是比起键盘按 Alt-Tab 更好的技巧, : : 只因为这个「组合键」的操作,你无法在键盘上直接看到。 : 这也是张飞打岳飞 : 组合键只是加速你达成那样的功能 : 但是和可读性完全搭不上关系 : 你大不了不用组合键,用滑鼠慢慢点 : 可是写程式就不一样了 : 你老板要你维护的perl程式丢给你 : 程式码一行一行地写在里面 : 请问你可以大不了不读算了吗? : $| = 1; : 你可以在没有看文件的情况下回答我这行的用意吗? : 如果当初写的人没加注解 : 没有文件,那你只能查文件 : 好,那你可能会说这是看语言熟不熟来评断可读性 : 那我们设同样的条件,两个一样不熟的人来看同样的一份程式呢? : disableBuffering(); : 一个不熟你要查文件 : 一个不熟你光看名字就能猜到 : 你要不要跟我说这两个差别在哪? : 当然,你会说,Perl也可以这样用函数来写 : 问题是Perl本身提供那些$$ $% $^ $&就会有人去用它们 : 再说有些情况非用这些不可 : 通常都是大量被使用,别人在程式里用到这些,你没有选择 : 你只能去读他们....,而且要读懂 : 这就是我所说的问题所在 : ###### 补充例子 ##### : 那个disableBuffering()的例子实在很糟 : 我另外找个例子 : Perl版: : while (<$CHILD>) { : print $_; : last if ($_ =~ /^[\s\x00]*$/); : } : 用Python的话 : import re : for line in child.readlines(): : print line : if re.match(line, '^[\s\x00]*$'): : break : Perl版你要知道的知识有: : 1. <> 是读一笔资料 : 2. $/ 会影响<>读的东西是由什麽东西来分开的,预设是断行 : 3. last 是break的意思,也就是跳离回圈 : 4. last if 是当後面条件成立时跳离回圈 : 5. $_ 是<>每次读进来的资料所放的变数 : 6. =~ 是匹配用的语法 : 7. // 是用来表述regualr expression的语法 : Python版你要知道的知识有: : 1. import 是引入函式库 : 2. re 是regular express的函式库 : 3. for value in sequence: 是foreach的意思,一次从seq中取一个value : 4. file.readlines() 是以行为单位回传一个list : 5. re.match 是匹配regular expression的功能 : 6. break 是跳离回圈 : 7. Python的code block是由缩排来决定的 : 我想很清楚的是,perl你不懂语法,就是不懂 : python版的可以猜,换成其它语言也一样 : 因为没有一个语言像perl做这麽多功能在语法上的... 老实说,这像什麽? 这像是因为 Perl 的学习门槛高,语言本身可直接阅读性低, 造成你学习上的不顺畅,所以让你特地写文章来大肆批评它一番。 更直接点,这像是一个明明在写 Python 的程式人员, 忽然被老板丢了一个 Perl 的 code 要求维护, 因为没办法用像平常一样顺畅阅读,所以炮轰 Perl 是个劣质语言。 Perl 会有如此丰富多变的语言标记是有他的历史和原因的, 我没有那麽清楚,但是请问你清楚吗? 今天你如果说因为 Perl 语言本身的可读性不佳,不接近一般语言, 让你看 code 看的很杜烂,我想大家都能接受, 但你非要用你无法直觉阅读 Perl 语言本身这件事, 来评论这个程式语言的优劣,那我真不知道是为什麽如此高估自己。 滑鼠 / 键盘组合键这个例子的意义就在於,你完全搞错方向了。 这也是张飞打岳飞 组合键只是加速你达成那样的功能 但是和可读性完全搭不上关系 你大不了不用组合键,用滑鼠慢慢点 可是写程式就不一样了 就像组合键可以加速操作一样, 熟悉 Perl 的人可以透过各种语言标记符号来达成更精简快速的操作, 当你看不懂的时候,你必须要去查手册, 就像当你不知道 windows 有 alt + tab 快速键的时候, 你也需要去找 windows 的快速键表。 -- 明明说好不回的,到底为什麽又跑出来(猛撞墙 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.80.28.216
1F:→ TonyQ:嘴巴说不要...XDDDDDDD 01/15 11:32
2F:推 superpai:变数没$的语言都很难读啊啊~~(战 01/15 12:08
3F:→ rshadow:如果以贴近人类语言来说,VB就会比C++优越了= = 01/15 13:14







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

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

TOP