Re: 關於 C99
※ 引述《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
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章