PLT 板


LINE

看板 PLT  RSS
※ 引述《PsMonkey (痞子軍團團長)》之銘言: : 這個問題其實困擾我很久... : 反正這個版開了,就先站上來當標靶 : 各位請隨意砲轟... [茶] 那我就隨便說說,充當賀板。 其實一般的程式語言論戰,往往都是在說,某某狀況時 a 比 b 更好用, 另一方就反擊說這個狀況可以避免、不常見、不好學、不夠快、不自由、 不怎樣怎樣... 等等。 這種論戰所呈現的,並不是理論層次上的比較,而是偏向程式語言特性的 比較,是不同的程式語言陣營在相互叫陣。 就長期而言,愈複雜的程式語言,若沒有設計失當,最終會獲得勝利,而 較簡單的程式語言則會保有一定的最佳應用範圍,能存活但會逐漸失勢。 ASM vs. C, C vs. C++ 都是這個狀況。至於 C++ vs. Java 則是雙方都 還在增加複雜度,不過看來 Java 是加碼得比較快,頗有勝利機會。 但在這個演化過程中,若一個新程式語言突然過度加大複雜性,則可能會 出現一個中間性的語言,因為較容易學習的關係,而取代這個大家沒辦法 快速適應的語言,像是 Algol-68, PL/1, Ada 都是這樣失敗的。 原因很簡單,就是人們持續不斷但速度緩慢的學習的結果。 不過,拋開這種人類自身的學習因素,就理論而言,程式語言並不是這麼 比較的。 以理論來說,程式語言之間的比較,大概就是三樣: 1. 程式語言的資訊控制處理能力 通常非通用程式語言的資訊控制能力會弱於通用程式語言,而處理能力卻 不會高於通用程式語言輔以程式庫,這就是通用程式語言之所以是通用的 程式語言的原因。 這在處理多媒體檔案格式時會相當明顯,不能單靠內建語言機制和標準的 程式庫就能處理非內建支援的多媒體檔案的時候,大概就可以區別非通用 程式語言了。 2. 程式語言所提供的抽象化機制 抽象化是相當難說明的東西,用比較簡單的話來說,能夠不依靠記憶體的 資訊、不依靠特定識別字就能做出相應變化的程度,就是抽象化的程度。 型別處理是其中最主要的抽象化機制,因此有許多的程式語言理論,都在 討論型別的問題,像 C 有型別系統,卻沒有抽象型別,所以抽象化能力 就比不上 C++. C++ 在這方面的優勢,可說是主流的通用程式語言中最為強大的,它可以 支援 template metaprogramming, generative programming 之類的高階 程式設計方法,至於 Java 在這方面就顯得蒼白無力。 3. 程式語言所特設的自動化機制 這是最容易被誤解的事情,例如 GC 是程式語言有沒有內建支援的問題, 不是程式語言的自動化機制差異,例如 C++ 如果需要 GC 的話,就可以 使用 libgc 程式庫,或是自行實作也不會很難。 像是例外處理 (exception handling), object destructor 才是這類的 自動化機制,若程式語言不提供的話,就很難自行實作。 這種程式語言的比較,是比較理論意義上的程式語言能力的比較。但未必 能力比較強的程式語言,就一定在使用上比較「好」,否則新的程式語言 免不了就會比較強,像是 Objective Caml, Scala 這類的新程式語言, 在程式語言能力上顯然比 C++, Java 來得強,若不考慮編譯程式問題, 甚至像 Python, Ruby 也比 C++ 強,但到目前為止,都未必足夠實用。 而若要論實用性,及考慮學習的因素,在程式語言的能力之外,最重要的 關鍵則可能是 C 語法相容性,無論過去或可預見的未來,不能與 C 語法 相容的程式語言,就沒有機會成為主流程式語言,或是被 C 語法的相似 程式語言取代。 : 先把「語言」的範圍排除像 HTML, XML 那種描述性語言 : 也跳過 SQL 這種... 我不知道怎麼歸類的語言 : 然後,為了簡單起見,也跳過 web 開發語言 : (像 JSP、PHP、JavaScript、ActionScript) : 就只講最傳統定義的語言 應該講通用程式語言 (general purpose programming language), 專指可 廣泛應用於所有程式設計需求的程式語言。 我寫的很浮泛,但本來許多主流程式語言之間的差別就沒有那麼大,若是 硬要比較差不多的程式語言,例如 C++ 和 Java, 我想只是個人偏好問題 比較多,根本就吵不完。 效率爭論也是,那根本就是一翻兩瞪眼的明白事情,就老是有人會想要用 哪種程式語言比較容易寫得好,造成效率如何如何來爭論。簡直是把專業 軟體工程師當成菜鳥、小白來比較。 像 GC 重不重要,跟它是否變成程式語言內建的功能,相關性並不大,那 主要是程式語言的設計哲學和使用者偏好問題,搞得像是天大地大的問題 一樣,實在沒有意義。 至於 godfat 所提及的 D 語言問題,它先把規格好好穩定下來再說吧。 還有它的編譯程式一直不能支援 64-bit 系統,像我的主機是 AMD64 的 FreeBSD, 就沒辦法使用,這種狀況就不必談它是什麼樣的語言了。 -- ※ 編輯: reader 來自: 61.222.173.26 (02/23 18:33)
1F:推 PsMonkey:好個賀版文... 推...(不過有些不太同意就是了 [逃]) 02/23 19:38
2F:推 godfat::D 02/23 20:43







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

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

TOP