作者hotball (哲哲鱼)
看板C_and_CPP
标题Re: 关於 C99
时间Mon Oct 30 22:29:21 2000
※ 引述《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