toberich 板


LINE

整理一下 Python v.s. Perl ... ;) → minstrelsy: 這個說法跟可讀性還有程式語言的優劣有關嗎?這只是說明了隨著時代變遷某些語言會受 到不同的重視。拿這樣來判斷說某個語言比另一個語言好,也不是不行,但這是政治考量 跟商業考量,跟可讀性什麼的有很大關係嗎?頂多只能說明 python 比起 perl 來說,現 在的人比較馬上看懂,而商業考量跟可讀性也不必然有關, C 有很多不好懂的部份,但實 際應用上還是一大堆地方在用,頂多是邊用邊罵而已。C的商業應用之廣泛跟許多C難以理 解的怪寫法就不用舉例。 → StubbornLin: 可讀性只是一小部份,還有太多要考量了,可用現成的函式庫、資源有多少、顧不顧得到 人、團隊能不能接受、學習成本和現有的系統的整合問題,商業的支援、社群的支援、未 來的發展等等,像很多人會擔心某個支持該工具的公司倒掉,一瞬間自己用的工具就會失 去支援。像是PowerBuilder,如果Sybase倒掉,工具大概就完了,所以工具未來的發展性 、風險等等也要考慮進去。社群發展的語言雖然不會倒,但會沒落,當使用者其它社群吸 走,這社群大概也沒戲唱了 → minstrelsy: 既然可讀性只是一小部份,既然還有其他很多要考量,像是現成的函式庫、資源、團隊、 成本、整合等等,光以 python 跟 perl 在這幾方面,有很大的差別嗎? perl 的資源社 群函式庫相對於 python 來說應該是更豐富吧?以你自己的標準來判斷的話,看不出為什 麼 perl 不如python → StubbornLin: perl 因為他語言的天性,學習曲線高,應該說陡才正確,所以較難找真正開發大型軟體的 人才。而且我也說過,使用全域變數來達成某些工作,使perl寫出來的程式容易很髒,很 不利團隊開發。如果是寫小型的程式,Perl可以很快解決,但是當專案變得很大,perl的 天性使它很難勝任。當然有人做得到,但如我說的: 成本問題,Python有很多成功的大型 專案的例子 → minstrelsy: 學習曲線陡不陡跟好不好找開發大型軟體的人才沒關係吧,C學習曲線陡但開發大型軟體的 人一堆,VB類的學起來簡單,但真要找大型軟體的人似乎沒那麼多,而且 perl成功的大型 專案難道就少了嗎?國外一堆,歐洲有許多大型跨國的金融系統都是建在perl之上的。 → StubbornLin: 當然有關係,你自己一個人寫程式怎麼寫都無所謂,團隊寫得考慮到設計層面的問題 → minstrelsy: 另外,全域變數是會讓程式變髒,但跟利不利團體開發無關,linux kernel中全域變數多 到爆,但協同開發者也多到爆。 → StubbornLin: 為何無關?今天張三在他的程式裡改了$/,就會影響整個程式的行為,哪裡無關了?李四 不知道張三改了$/,跑出來的結果不同,這不是團隊合作上的問題是什麼? → minstrelsy: 因為你認為絕對有關,所以我只要隨便找個反例就可以反駁,而且這種例子太多了,開源 的大型專案,愛用全域的一堆 → StubbornLin: 你開發專案要去哪裡找一堆linux kernel那種geek?如果你覺得你可以找到那堆geek都加 入你團隊,那你要用什麼開發都可以,說真的。我今天說的是一般情況,你只有一般的工 程式。 → minstrelsy:所以扯回來又扯成是開發者能力的問題,跟團體開發又無關 → StubbornLin: 你要拿玩linux kernel的一堆geek打一般工程師,能比嗎?我問你,開發者能力是不是成 本?需不需要成本? linux kernel 能玩到那種地步的人你要多少錢請他?還有你要請多 少個那種人才夠你專案的開發?你要不要說請linus本人幫你開發專案算了。 → minstrelsy:所以你是認為玩perl的要夠強才能發揮,玩python的則不用? → StubbornLin:軟體工程師要在台灣找到好的更難,因為都被硬體吸走 → minstrelsy:所以以開發者成本來說,python會比perl來得省?一般的programmer,一 個強的至少可以打2-3個一般的。我找一個perl夠強的來抵2-3個python一般的好像還是省 。 → StubbornLin:學習曲線較平緩,要知道的pitfalls比較少,自然在能力上可以不需要額 外的知識來避開那些問題。嗯,如果你的專案只需要一人開發,我覺得很OK → minstrelsy:要學習曲線平緩,我找10個會php的不是更好,這種人更多,可以找1個 perl來抵2-3個 python,就也可以同理擴大十倍 → StubbornLin:但是說真的,一個人能寫得出來的程式,你隨便找都可以。php初期的學 習曲線很緩,但後面呢? → minstrelsy:你覺得找二三十個工程師來溝通有比找十個來得輕鬆? → StubbornLin:哈哈,那你就錯了... 軟體開發不是收割小麥 → minstrelsy:同理 perl前期的學習曲線很陡,但後面呢? → StubbornLin:你找10個強者來不會就擴張十倍的效率,你可以參考一本書 "人月神話" → minstrelsy:同理,你找二三十個來做,大概還不如找十個 → StubbornLin: 裡面有提到那個問題,就是人數擴張需要的溝通更多,還有,如果你能找十個perl強者, 為何不找python的? → minstrelsy:所以我覺得你講的python利於團隊開發的優點有問題,如果可以1個抵10個 ,就成本考量,我為什麼要找10個? → StubbornLin: 就語言可讀性上,還有可靠性都比 perl 佳,那選擇perl的理由在哪裡?我們談的是現實 的狀況,你找得到一個抵十個的嗎?好,你找到了,恭喜你,然後呢?你要花多少錢留住 這個人才?要是這個高手離職了,你要怎麼辦?Perl的可讀性較差,你之後請的人讀不懂怎辦? → minstrelsy: 等等,你所指的可讀性如果是說自然語言的可讀,這沒問題;但,這跟 perl 可靠性好不 好有什麼關係? → StubbornLin: perl因為使用全域變數來改變行為,使它的可靠性較差,所謂的可靠性是什麼,我不想再 貼,你自己搜尋 → minstrelsy: 可靠性的問題,只跟專案本身的執行與開發者有關吧,跟語言有什麼關係?你講的那一堆 我看過了,照你的標準來看,C的可靠性更差 → StubbornLin: 錯,可靠性好的語言,應該要盡量避免容易寫出錯誤。對,你說對了,C 語言可靠性真的 很差,但是他有個優點,就是他比低階高一點 → minstrelsy: 但不好意思,你我現在的電腦世界,絕大部份都建在C之上,包含你所說的python.python compiler也是c寫的,所以python可靠性也很差,推論完畢 → StubbornLin:我從來都沒有說過任何語言可以應用在任何場合阿 → minstrelsy:所以如以上所言,python也不是萬能的,完畢 → StubbornLin: 我真的覺得很困擾,又一個不查資料要戰的,我從來沒有說過python是萬能的= = → minstrelsy: 我是個以c/python/外加一點perl/偶爾再來點php維生的人,請問我要查什麼資料?你所說 的這些都是我每天的工作 → StubbornLin: 我從來都不知道語言直譯器用什麼實作,語言特性會有遞移性,還挺好笑的= =。Python的 直譯器版本有 Jython Java版、IronPython .Net平台的版本 → minstrelsy: 所以語言的可靠性會遞移到專案執行的好壞也很可笑,這些我都很清楚 → StubbornLin:沒有絕對的好壞,但是有差別 → minstrelsy:有差別是語言本身的差別,跟專案有啥關係? → StubbornLin: 我們今天討論的是程式語言,你說的那些我都有寫過。當然有,語言本身容易寫出未預期 結果的情況,你的專案成本不是因此增加嗎?就像我說的$/問題,還有很多類似的情況, 關於語言的可靠性,有一款語言叫Ada,他就是以可靠性為重點所發展的語言 http://0rz.tw/ZXanN ,你可以去看看到底什麼是可靠性。如果一款語言天生就容易寫出 錯誤,另一款較不容易,那是不是有差別? → minstrelsy: 這是專案本身執行的問題,跟語言的關係不大,專案執行不力、文件不完整、溝通亂來, 就算用python照死;專案執行得當、文件清楚、溝通良好,用什麼語言都沒差 → StubbornLin: 你當然可以說就算怎樣就算怎樣,但是比較下就有差異阿。我說過perl過度自由,你在定 風格,是不是很細節都得定,你可能得連$/那類全域變數都得規定要怎樣用,你的程式設 計師得嚴格遵守,接著還得要檢查風格是否符合,這些不都是"額外"的成本嗎? → minstrelsy: 難道我非要說這些專案我都做過帶過執行過?用python或許在coding style上會比perl來 得佔優勢,因python的coding style先天就定好了,perl太自由,但這跟專案做得好不好 成不成功沒關 → StubbornLin: 一款這麼自由的語言,在開發時要花額外的心力限制,這不是多餘的浪費成本嗎= =。我沒 說用了perl就會失敗,用了python就會成功,我只是很在意能不能做到更好、更省成本 → minstrelsy:就算是python 也是一樣要訂好溝通方式,界面命名的方法,用perl也一樣 ,在多人專案中,溝通界面的一致才是最重要 → StubbornLin:對,但是就不用花心力在$/那些過度自由的東西上,因為給太多自由倒頭 來在合作還是得限制,你的程式設計師得心理一直想,這個是否合規則 → minstrelsy:而這些溝通界面的訂定等等,跟coding方式自不自由,沒多大關係,反而 是跟專案執行溝通時,執行是否良好有關 → StubbornLin: 查看看發下來的風格表,在裡面搜索關於$/的規定,我請問你這不是浪費成本是什麼?, 你的設計師一直花心力在之前給的過度自由變成限制所造成的落差上 → minstrelsy: 你講的情形,代表的是,你找錯工程師了,而這在perl或python或c或php上都會發生 → StubbornLin: 所以你所謂的好工程師是什麼?當然都會發生阿,但是程度上有差別= = → minstrelsy:專案會有這種情形 代表一開始工程師的篩選就出了問題,找個python很弱 的工程師一樣會有這種問題 → StubbornLin:好,那我問你,工程師不看風格的規定,他要怎樣知道寫出來是否合風格? → minstrelsy:工程師不看風格,代表1.你找錯人2.執行不力 → StubbornLin:我們討論的都是一般情況,你一直要跳針到很弱、超強 → minstrelsy:這跟語言無關,每種語言都有這種人,也都有守規矩的人 → StubbornLin: 我指的是 "工程師為寫合風格的程式,要花的心力",我什麼時候說過工程師不看風格? → minstrelsy:並不是python的工程師就一定守規矩 → StubbornLin: 你一直在跳針,我一直在說要寫出合風格要花的成本, perl 那麼自由,你開出來的風格 規定不會瑣碎嗎?一來你得開得非常詳細,二來工程師也得仔細才能遵守,這不就是額外 的成本= =?python當然也要風格規定,但是因為他限制性強,所以風格規定自然就較少, 花的心力少,成本自然低 http://www.python.org/dev/peps/pep-0008/ ,Python的風格 甚至有官方的版本可以參照 → minstrelsy: 你所說的,並不會。像我所提的 python/perl的案子,我都做過也都帶過,語言風格本身 對專案執行的差異,小到看不出來,不同的語言對專案來說,只是不同的工具,看用的人 怎麼用 → StubbornLin:當然風格有差別,可讀性可寫性可靠性也都有差 → minstrelsy:請問你本身有執行過python與perl的案子嗎?自己做過與帶過大型團隊, 如果沒有,你所說的都只是你個人的想像,那些並不存在 → StubbornLin:有Python,沒有Perl。喔,那你認為別人的說法也都是想像嗎?我說的 說法當然不全然是我說的,可讀性可寫性可靠性等 → minstrelsy: 專案執行時,語言並不是重要的考量也不是成敗的主因,所以你認為我的說法都是想像? 我個人對python/perl/c/php等專案得到的經驗都是假的? → StubbornLin: 我沒說那些都是假的,我也從沒說過那些是成敗的原因,只是我很在意工具對專案的影響 。當然你可以以你的經驗說沒有影響,但你能不能說出在什麼樣的評比條件下沒影響?軟 體開發的效率本來較很難評估 → minstrelsy: 既然不是成敗的主因,選什麼語言都沒差只有適不適合而已,會說沒差的原因是,語言風 格等會有一定影響,但不很重要 → StubbornLin: 成敗沒差,但是成本上有差別。你怎樣下出不重要的斷定?你依什麼評估效能 → minstrelsy: 重要的往往是溝通、界面、文件,而跟這些比起來,你在意的小到不行。以複雜程度來評 估,一個可以搞定溝通界面文件的團隊,就算用了搞怪的語言,也可以很容易搞定那個語 言,語言本身的差異比這些都小 → StubbornLin: 小到不行的結論是怎麼下出來的?你從頭到尾也都只是主觀的說小到不行,你從頭到尾也 都只是主觀的說小到不行 → minstrelsy: 用c或perl的團隊成功的不少,用python的團隊失敗的也有,那我是不是可以說你從頭到尾 只主觀說可靠性很差? → StubbornLin: 你能不能拿出什麼來證明可讀性可寫性可靠性的影響小,我有提出實例,$/就是一個,還 有很多個,我沒辦法在短時間內全想起來 → minstrelsy: 我舉了一堆反例還不算?我過成做成的專案算不算?而且,目前我失敗的專案,沒有一個 跟選擇的語言有關 → StubbornLin:你舉了什麼反例? 就算組語能寫出同樣的案子又如何? → minstrelsy: 這樣算不算?你要我舉例,我講了實例你又不信,反正你也只是主觀認定。算了,懶得講 ,你就活在你自己的世界吧 → StubbornLin: 我指的一直都是語言特性在成本上的差異,你一直講專案的成敗,我也懶得講,結果語言 的特性本來就會造成開發上的差異 → minstrelsy: 我隨便可以講一堆我的案子的成本與語言特性無關,反正那只發生在你想像的世界,真實 世界沒這回事,反正世界上這些真實發生的案子都是假的,反正什麼語言特性跟開發差異 有關係也只是主觀的 → StubbornLin: 喔,那我也會說,反正學術研究討論什麼可讀性可靠性都是個屁,你的專案開發就是全世 界 ---個人想法或摘要--- 1. 可讀性也許對個人學習所投入的成本有差異,但對專案影響不大 PHP > Python > Perl 2. 專案的可靠性跟語言的可讀性不會有顯著的關聯,關鍵在執行者或團隊 3. 只要是熱門語言就不乏大型專案的例子 4. 團隊開發的例子,文字描述與實際體驗有顯著的差異,因為團隊開發有太多不能說的 秘密 ;) 5. 眼前應該沒有人會因為太過自由而放棄民主吧?所以自由也許不是什麼批評的好理由 6. 真有心要得到結論,不妨就拿來當你接下來的論文吧,用科學的方法去證明 7. 如果多花一百萬可以讓公司成功生存,為什麼要省這個成本看公司消失?所以專案的成 敗在重要性遠高過工具或僱用操作工具者的成本,而專案的成敗取決於執行者或團隊,此 時工具的成本有什麼好探討的? --- kiang --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.103.49
1F:推 SMUGEN:推這篇文章的可讀性XD 01/16 02:22
2F:→ mlwmlw:心得:不是要賺錢嗎,軟體價值應該是由市場決定吧~~ 01/16 05:56
3F:推 crazybad: 賺錢?我以為是賺P幣~XD 推這篇用心~ 01/16 10:01
4F:推 bobju:儘管說popular的語言皆不乏大型專案的實例,但是開發及維護期 01/16 10:22
5F:→ bobju:間的成本差異或許會跟當初選用的語言有關.國外大公司錢多玩 01/16 10:22
6F:→ bobju:得起,即使因為選了'成本高'的語言來開發大型專案,照樣能夠玩 01/16 10:23
7F:→ bobju:得下去.只是'成本'及'語言'之間的關聯性我也缺乏資料去證實. 01/16 10:24
8F:→ bobju:只是推測應該有關聯. 01/16 10:24
9F:→ bobju:跟'可讀性','可靠性'相比,業主對'成本'更感興趣.若能夠從'可 01/16 10:27
10F:→ bobju:讀性','可靠性'這些因素跟'成本'建立起聯結來說服'業主'採用 01/16 10:28
11F:→ bobju:哪種工具,這樣的思維應該是沒錯.我看到 StubbornLin 的思路 01/16 10:29
12F:→ bobju:就是在這條軸上. 01/16 10:29
所以才需要科學的方法去證明,因為數字會說話,文字只會引發更多的誤解,不可能要每 個業主都去學各種程式語言來理解上述艱澀的討論內容,難道就因此一直說懷才不遇?別 鬧了,物競天擇,人需要去配合環境做改變,而不是環境配合人。如果人能夠說服業主, 讓業主專心在自己原本擅長的事務上,透過任何工具為業主達成預期目的都可以,這才有 辦法創造最大效益。企業是為了追求最大利益,而不是世人所認同的真理 ※ 編輯: olctw 來自: 114.32.103.49 (01/16 10:46)
13F:→ bobju:當然專案團隊成員的素質影響力還是比語言本身來得大.只是高 01/16 10:35
14F:→ bobju:素質代表高成本(對業主來講),不過也代表高獲利.只是對於一開 01/16 10:36
15F:→ bobju:始無法僱用高素質團隊的業主來講,期待在程式語言規範上來彌 01/16 10:37
16F:→ bobju:補不足應該也是可以理解的思維吧? :D 01/16 10:37
17F:→ minstrelsy:期待越多就會失望越多啊 這種先天規範並不是萬靈丹 01/16 12:34
18F:→ minstrelsy:真這麼神奇好用萬能的話 perl早該不見了 01/16 12:35
19F:→ minstrelsy:反正會perl的轉python很快 01/16 12:35
20F:→ minstrelsy:這種類似以先天規範來解決開發時遇到的種種困難 01/16 12:36
21F:→ minstrelsy:在整個電腦軟體發展史上屢見不鮮 每個都講得很神 01/16 12:37
22F:→ minstrelsy:而且 重點是 python本身並沒有在吹噓它自己的可讀可靠 01/16 12:38
23F:推 haryewkun:其實我是覺得,這個討論中大家引用的情況,是不同的情況 01/17 01:03
24F:→ haryewkun:。如果要較真,其實需要更細分的去探討每個個案的情況。 01/17 01:05
25F:→ haryewkun:比方說,一個專案的成功與失敗,是有很多因素:人、財力 01/17 01:07
26F:→ haryewkun:、設計、技術、市場、客戶……不同環境、不同情況。 01/17 01:08
27F:推 superpai:可以戰真好 我也希望css可以寫$$$$$$$$$/ 或是不用寫{} 01/17 01:09
28F:→ haryewkun:就算單單說技術,要用哪一種語言,也還是要看人、預算、 01/17 01:10
29F:→ haryewkun:時間、歷史、平台、經驗、功能特性……等種種緣故。 01/17 01:11
30F:→ haryewkun:如果要比較兩種程式語言的優劣,其實必須先設定這是完全 01/17 01:11
31F:→ haryewkun:的情況:兩個團隊有同樣等級的高手、同樣的財力、不相上 01/17 01:12
32F:→ haryewkun:下的設計、有沒有歷史遺留的因素……然後才能做出比較。 01/17 01:12
33F:→ haryewkun:要不然,這不止是關公戰秦瓊,根本就是孔子戰張飛了…… 01/17 01: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