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

請輸入看板名稱,例如:WOW站內搜尋

TOP