看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《in2 (越來越想龍)》之銘言: : c語言出來已經超過十年的歷史 : (應該有二三十年了吧 :p ) : 後來有 c++加入 oo 的支援, : 最近又跑一個 c99出來. : 我想問一下, : 有必要換用成 c99的標準嗎? : 大家認為他會取代目前的 ANSI C 嗎? : 而且就算是現在 oo 這麼盛行的時候, : 儘管有 c++和 java , : 不過還是有不少人 (在下就是 :p ) : 拼死命的要用純 c : 甚至, 要 oo 不見得一定要語言支援, : 畢竟 oo 是一種概念不是嗎? : 有必要新學 c99嗎? ^^" 我自己的看法:C 和 C++ 都是很容易讓人犯不該犯的錯的語言。 C 當初設計的方向(最早 K&R 弄出來的東西,和 ANSI C 1990 還頗有差距)是設計 成 "portable assembly",也就是可以在各種機器互通的「高階組合語言」。 在當時,這種設計有其必要性,但是現在已經不是這樣。現在的軟體都非常巨大, 各種可能發生的問題也非常多。如果還繼續使用 C,像 Word 或 Photoshop 這樣大 的程式是不可能做出來的。 C++ 改善了一些問題,可是 C++ 為了和 C 的相容性,做出了太多的犧牲。結果 C++ 變成一個「高不成低不就」的語言。強調效率的人,認為 C++ 效率不如 C;而強調 安全性、正確性的人,則認為 C++ 的陷阱還是太多。 現在以 Win32 平台上的應用程式來說,可能絕大部分是用 C++ 寫出來的。不過,這 並不表示大家就應該繼續用 C++。Java 是一個不錯的方向,但是 Sun 為了奇怪的原 因,把它限制住了。MS 的 C# 看起來好像不錯,但是誰也不知道它是否會和 Java 一樣的下場。 至於 OO 的確是一個概念,但是若無語言支援,那根本不能算是真正的 OO。從這種 角度來看,C++ 並不算是完全 OO 的語言。事實上,C++ 更像是「提供 OO 功能的 template based 語言」。 至於是否要學 C99,我想是見仁見智的問題。如果你對 C 已經很熟,要弄清楚 C99 應該不甚困難。一切都是由需要來決定,而不是「為了用╳╳語言而去用它」。 -- ※ 發信站: 批踢踢實業坊(ptt.twbbs.org) ◆ From: m30.g4.ntu.edu.tw