Re: [請益] 網路創業大部分的網站規劃都是用PHP嗎?

看板toberich (創業)作者 (Victor)時間16年前 (2010/01/15 15:26), 編輯推噓2(20236)
留言238則, 6人參與, 最新討論串19/23 (看更多)
※ 引述《gpmm (銀色)》之銘言: : http://blog.ez2learn.com/2010/01/08/how-to-compare-languages/ : 讓我們從頭開始: : 0. 但是大多數人不知道程式語言該比較些什麼,而我今天所要說的, : 就是程式語言該拿什麼來比較 : 1.1 一個程式的可讀性,關係到維護的人能否輕易的瞭解程式語言所表達程式的意圖, : 如果維護的人難以理解某段程式所要表達的事情,那麼這些程式就難以被維護 : 可讀性的開頭說明了,你的可讀性評比目的在此,難以被維護。 : 如果你站在語言規範這樣抽象的角度看,同意。 : 如果你站在一個實用的角度看,降低可讀性是為了其他目的, : 例如多元開發,那麼這裡所講的能當成「評定優劣」的方式嗎? 我不知道你有沒有從一個很重要的角度來看一款語言, 那就是從商業的角度來看,我所提到的都是在實務上的經驗 也就是包含了商業的考量 你知道當我看到 $$ $% $^ $& 你知道我看到了什麼嗎? 我看到都是錢錢錢錢錢錢錢阿!!! 如果我主導的專案都用Perl來開發 這麼一來我的code浪費在很多時間在我上面文章提到的問題上 包括一直查手冊,google搜尋不到語法等問題上 $/那類骯髒的寫法讓程式一直在debug的迴圈中 我專案的成本一直在增加... 生產力因此而下降 因為語言的天性 做為一個好的工程師不只是看見自己喜歡看見的東西 你有看過Discovery之類的工程奇觀之類的節目嗎? 你有看見工程師在設計選用建材等等 是靠喜好決定的嗎? 成本影響設計也是很重要的 要在設計、成本等等方面要能達到平衡的狀態 才是好的決擇 當然,反對我的人說,那是寫程式的人爛 他寫不出好的Perl,好的Perl一樣可以維護 但我會說... "喔.. Perl的語法這麼自由,你要去哪裡找來這一堆寫出良好Perl的程式設計師?" "還有你找這些高手Perl設計師來作什麼? 我們專案的經費付擔得起嗎?" "我們需要的是一般的程式設計師" 嗯哼,那你又會說 "嘿,我們可以定語法的風格,嚴格規定每個程式設計師都這樣寫" 好吧,這樣是可以規定,但是能落實多少? 規定討論怎樣才是好的Perl程式是不是成本? 落實檢查好的Perl寫法是不是成本? 再者,請問規定風格語法是在做什麼? 答案很清楚 "限制" 歐,那Perl不是一款 "There's more than one way to do it" 的語言? 有人這樣說,我們在現實生活中,可以有很多手段完成同一件事 所以Perl自然這樣做也有道理,如果只是隨意個人撰寫,我認同這樣的說法 但是像我們在實務上看到的,都是 "限制" 對,語法風格有限制,檔案命名有限制,文件怎麼寫有限制,這一切都是在限制 你有沒有看過一家大型企業沒有SOP的? 他們在做什麼? 做的就是限制 為什麼要限制? 為什麼不自由? 為的是能讓企業的運作一致 為了讓運作有案可循 那,既然我們在實務開發,為什麼需要一款那麼自由的語言 花費額外的成本來增加限制在其上面? 我之所以選擇和喜愛Python 就是因為它是一款限制性強的語言,所以使用Python 他本身限制性就強,寫出爛程式的機會也是有 但是比較少,而且還有其它很多理由 都讓我選擇Python 因為我看到的不只是語言 而是成本 為什麼拿Python跟Perl比? 我的文章裡寫的很清楚 因為他們的哲學剛好相反 : 1.2 可讀性很明顯地 Python 優於 Perl,我在這裡說明為什麼, : 原因其實很簡單,因為Perl加太多語法和用太多特殊符號在他的語言中 : Perl對於這些瑣碎的功能加了太多的語法, : 使得用Perl寫出來的程式難以被簡單的理解 : 很好,Perl 相較於其他語言的確是較難閱讀,因為他有特殊的設計, : 從語言規範的抽象角度看,語言要盡可能容易被人理解, : 但是從實用的角度看,有目的的降低可讀性,是可以在別處獲得回報。 : 當你不闡明,你的論點就會落在更大的立場上 兩害相衡取其輕,只為了一點點好寫就犧牲可讀性 這沒什麼好談的 "程式被讀比被寫還多次" 一個成本可能是80%,一個是20%,你是老闆,你要節省哪個成本? : - 也就是你的可讀性既涵蓋了語言本身的概念,也包括了動機和目的 : 1.3 因為用語法來實現太多功能,某種程度上算是不良的設計, : 因為他們都能夠用函式或函式庫來取代,而函式庫的取代雖然要寫多一點字, : 但是可讀性大大提升… : 我不明白既然你現在告訴大家你的標準在於語言規範, : 此處提出的以「函式」取代語法是指什麼? : Perl 也可以用函式來取代語法, : 你並不能說大家會被符號寵壞所以就扔掉這一點。 請問這兩個哪個好記? 好從字意上猜到答案? www.sex.com 123.111.222.1 你會把你的公司網址就只用ip當名字嗎? 沒有扔掉它阿,只是基於成本和各方面的考量 可讀性差使他不在我選擇的名單之內 : 1.4 可讀性的差別就是這些語言的天性,也是判斷程式語言優劣的關鍵之一 : 又一個很好,請問你從可讀性連結到「判斷程式語言優劣的關鍵之一」 : 之間到底是透過什麼? : 你如果寫「是從語言規範來判斷程式語言優劣的關鍵之一」, : ok,我接受。 : 這就是我們對於可讀性基準的不同, : 你的基準只在於語言規範,我則涵蓋了背後「降低可讀性」的原因和動機。 : 如果硬是要拿現在的設備進步,來無視當年(或現在仍是)語言本身追求的東西, : 那會不會也太沒 sense 了? 世界上沒落的語言何奇多 我指的缺點就是他們沒落的原因 一款語言本身很多特性使得他不受喜愛 那他就沒落了,就是這麼簡單 Python也是15年前或更早之前開始的 Ruby其實也差不多是在那附近開始發展的 也沒多晚,而Perl一直聽說在改版 但是都只聞樓梯聲,當一款語言不改版 太多問題讓人嫌棄,那語言就會沒落 你有看見現在多少人還在用Perl寫CGI? 我那個年代一堆網頁程式不是Perl就是C寫的 有更好的選擇,自然他們就沒落了 基於成本和工程上的各種考量 為什麼要用舊的東西? 你會不會跟你老闆說 "嘿,用現在的技術比十年前的技術太不公平了啦 在那個年代之下用C寫CGI也很情合理阿 我們用C寫CGI吧" 歐喔... 那我只能說你會被開除 商業市場、實務應用是殘酷的 哪邊好用就倒向哪邊 不知改進者就將被淘汰 在以前被淘汰的你沒聽過的語言多不可數 沒什麼好大驚小怪的 : 所以我說,請好好想想,你探討這個程式語言優劣的基準和標的是什麼, : 如果你只是純就「語言規範」上檢討,不考慮其前後, : 那就好好標明這是從「語言規範」下的「可讀性」來評斷程式語言, : 當你沒有闡明你站在「語言規範」的基準,卻又以一種宏觀的立場告訴大家, : 可讀性的差別就是這些語言的天性,也是判斷程式語言優劣的關鍵之一。 : 這樣恰當嗎? 我說過是從各方面,當然也包含實務 請你想像一下你自己是老闆 你要決定用哪一款工具 或是你要說服你老闆用哪一款工具 你會怎樣解釋 我想這樣你就能更瞭解我所說的那些觀點 -- 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

01/15 17:28, , 1F
現在一堆人用C#寫網頁啊XXD
01/15 17:28, 1F

01/15 18:09, , 2F
給1F,用C#寫的是ASP.NET,清醒一點~..............路過
01/15 18:09, 2F

01/15 19:45, , 3F
一系列看下來,StubbornLin 的確很有說服力.如果我是老闆,我
01/15 19:45, 3F

01/15 19:45, , 4F
也要採用python了. XD
01/15 19:45, 4F

01/15 19:47, , 5F
其實程式語言也是要面臨'物競天擇'的考驗,每一種語言都有其
01/15 19:47, 5F

01/15 19:49, , 6F
設計精神,也反映出時空背景的某些需求.只是時空會變化,當它
01/15 19:49, 6F

01/15 19:49, , 7F
不再適用於新的時代需求時,自然就被淘汰了.
01/15 19:49, 7F

01/15 19:51, , 8F
以前awk還蠻popular的,現在大概已找不到有人在用了.搞不好連
01/15 19:51, 8F

01/15 19:51, , 9F
聽都沒聽過.
01/15 19:51, 9F

01/15 19:57, , 10F
這個說法跟可讀性還有程式語言的優劣有關嗎?
01/15 19:57, 10F

01/15 19:58, , 11F
這只是說明了隨著時代變遷某些語言會受到不同的重視
01/15 19:58, 11F

01/15 19:59, , 12F
拿這樣來判斷說某個語言比另一個語言好 也不是不行
01/15 19:59, 12F

01/15 19:59, , 13F
但這是政治考量跟商業考量 跟可讀性什麼的有很大關係嗎
01/15 19:59, 13F

01/15 20:02, , 14F
頂多只能說明python比起perl來說 現在的人比較馬上看懂
01/15 20:02, 14F

01/15 20:04, , 15F
而商業考量跟可讀性也不必然有關 C有很多不好懂的部份
01/15 20:04, 15F

01/15 20:05, , 16F
但實際應用上還是一大堆地方在用 頂多是邊用邊罵而已
01/15 20:05, 16F

01/15 20:07, , 17F
C的商業應用之廣泛跟許多C難以理解的怪寫法就不用舉例
01/15 20:07, 17F

01/15 22:24, , 18F
可讀性只是一小部份,還有太多要考量了
01/15 22:24, 18F

01/15 22:24, , 19F
可用現成的函式庫、資源有多少
01/15 22:24, 19F

01/15 22:25, , 20F
顧不顧得到人、團隊能不能接受、學習成本
01/15 22:25, 20F

01/15 22:25, , 21F
和現有的系統的整合問題
01/15 22:25, 21F

01/15 22:26, , 22F
商業的支援、社群的支援
01/15 22:26, 22F

01/15 22:27, , 23F
未來的發展等等 像很多人會擔心某個支持該工具的公司
01/15 22:27, 23F

01/15 22:27, , 24F
倒掉,一瞬間自己用的工具就會失去支援
01/15 22:27, 24F

01/15 22:28, , 25F
像是PowerBuilder如果Sybase倒掉 工具大概就完了
01/15 22:28, 25F

01/15 22:28, , 26F
所以工具未來的發展性、風險等等也要考慮進去
01/15 22:28, 26F

01/15 22:29, , 27F
社群發展的語言雖然不會倒,但會沒落
01/15 22:29, 27F

01/15 22:30, , 28F
當使用者其它社群吸走,這社群大概也沒戲唱了
01/15 22:30, 28F

01/15 23:10, , 29F
既然可讀性只是一小部份 既然還有其他很多要考量
01/15 23:10, 29F

01/15 23:11, , 30F
像是現成的函式庫 資源 團隊 成本 整合等等
01/15 23:11, 30F

01/15 23:12, , 31F
光以python跟perl在這幾方面 有很大的差別嗎?
01/15 23:12, 31F

01/15 23:12, , 32F
perl的資源社群函式庫相對於python來說應該是更豐富吧
01/15 23:12, 32F

01/15 23:14, , 33F
以你自己的標準來判斷的話 看不出為什麼perl不如python
01/15 23:14, 33F

01/15 23:18, , 34F
perl因為他語言的天性,學習曲線高
01/15 23:18, 34F

01/15 23:19, , 35F
應該說陡才正確,所以較難找真正開發大型軟體的人才
01/15 23:19, 35F

01/15 23:19, , 36F
而且我也說過,使用全域變數來達成某些工作
01/15 23:19, 36F

01/15 23:20, , 37F
使perl寫出來的程式容易很髒,很不利團隊開發
01/15 23:20, 37F

01/15 23:22, , 38F
如果是寫小型的程式,Perl可以很快解決
01/15 23:22, 38F

01/15 23:23, , 39F
但是當專案變得很大,perl的天性使它很難勝任
01/15 23:23, 39F
還有 159 則推文
01/16 00:13, , 199F
我個人對python/perl/c/php等專案得到的經驗都是假的?
01/16 00:13, 199F

01/16 00:14, , 200F
我沒說那些都是假的,我也從沒說過那些是成敗的原因
01/16 00:14, 200F

01/16 00:14, , 201F
只是我很在意工具對專案的影響
01/16 00:14, 201F

01/16 00:14, , 202F
當然你可以以你的經驗說沒有影響
01/16 00:14, 202F

01/16 00:15, , 203F
但你能不能說出在什麼樣的評比條件下沒影響?
01/16 00:15, 203F

01/16 00:15, , 204F
既然不是成敗的主因 選什麼語言都沒差只有適不適合而已
01/16 00:15, 204F

01/16 00:15, , 205F
軟體開發的效率本來較很難評估
01/16 00:15, 205F

01/16 00:16, , 206F
會說沒差的原因是 語言風格等會有一定影響 但不很重要
01/16 00:16, 206F

01/16 00:16, , 207F
成敗沒差,但是成本上有差別
01/16 00:16, 207F

01/16 00:17, , 208F
你怎樣下出不重要的斷定? 你依什麼評估效能
01/16 00:17, 208F

01/16 00:17, , 209F
重要的往往是溝通 界面 文件 而跟這些比起來 你在意的
01/16 00:17, 209F

01/16 00:17, , 210F
小到不行
01/16 00:17, 210F

01/16 00:17, , 211F
以複雜程度來評估
01/16 00:17, 211F

01/16 00:18, , 212F
小到不行的結論是怎麼下出來的?
01/16 00:18, 212F

01/16 00:18, , 213F
一個可以搞定溝通界面文件的團隊 就算用了搞怪的語言
01/16 00:18, 213F

01/16 00:19, , 214F
也可以很容易搞定那個語言 語言本身的差異比這些都小
01/16 00:19, 214F

01/16 00:19, , 215F
你從頭到尾也都只是主觀的說小到不行
01/16 00:19, 215F

01/16 00:20, , 216F
用c或perl的團隊成功的不少 用python的團隊失敗的也有
01/16 00:20, 216F

01/16 00:20, , 217F
那我是不是可以說你從頭到尾只主觀說可靠性很差?
01/16 00:20, 217F

01/16 00:20, , 218F
你能不能拿出什麼來證明可讀性可寫性可靠性的影響小
01/16 00:20, 218F

01/16 00:21, , 219F
我有提出實例,$/就是一個
01/16 00:21, 219F

01/16 00:21, , 220F
我舉了一堆反例還不算? 我過成做成的專案算不算?
01/16 00:21, 220F

01/16 00:21, , 221F
還有很多個,我沒辦法在短時間內全想起來
01/16 00:21, 221F

01/16 00:22, , 222F
而且 目前我失敗的專案 沒有一個跟選擇的語言有關
01/16 00:22, 222F

01/16 00:22, , 223F
你舉了什麼反例? 就算組語能寫出同樣的案子又如何?
01/16 00:22, 223F

01/16 00:22, , 224F
這樣算不算?
01/16 00:22, 224F

01/16 00:22, , 225F
你要我舉例 我講了實例你又不信 反正你也只是主觀認定
01/16 00:22, 225F

01/16 00:23, , 226F
算了 懶得講 你就活在你自己的世界吧
01/16 00:23, 226F

01/16 00:23, , 227F
我指的一直都是語言特性在成本上的差異
01/16 00:23, 227F

01/16 00:23, , 228F
你一直講專案的成敗
01/16 00:23, 228F

01/16 00:24, , 229F
我隨便可以講一堆我的案子的成本與語言特性無關
01/16 00:24, 229F

01/16 00:24, , 230F
我也懶得講,結果語言的特性本來就會造成開發上的差異
01/16 00:24, 230F

01/16 00:25, , 231F
反正那只發生在你想像的世界 真實世界沒這回事
01/16 00:25, 231F

01/16 00:25, , 232F
反正世界上這些真實發生的案子都是假的
01/16 00:25, 232F

01/16 00:26, , 233F
喔,那我也會說,反正學術研究討論什麼可讀性可靠性
01/16 00:26, 233F

01/16 00:26, , 234F
反正什麼語言特性跟開發差異有關係也只是主觀的
01/16 00:26, 234F

01/16 00:26, , 235F
都是個屁,你的專案開發就是全世界
01/16 00:26, 235F

01/16 00:27, , 236F
板主 有人罵髒話 我懶得回了 你就慢慢幻想吧
01/16 00:27, 236F

01/16 00:27, , 237F
(敲碗)老闆,提到屁的那個犯規 (...回板凳)
01/16 00:27, 237F

01/16 00:29, , 238F
我罵的是學術研究討論是個屁,關你什麼事= =?
01/16 00:29, 238F
文章代碼(AID): #1BK1YYep (toberich)
討論串 (同標題文章)
文章代碼(AID): #1BK1YYep (toberich)