|
【分析】
- C 语言由 Dennis Ritchie 于 1972 年发明;C++ 语言由 Bjarne Stroustrup 于 1983 年发明。是由不同作者在不同时期设计的,两者之间并非简单的一脉相承关系。
- C 语言属于结构化编程语言,其核心思想是将软件分解为一组数据描述与一组函数,因此用 C 语言写软件,归根到底就是写一系列的函数;C++ 属于面向对象语言,其核心思想是将软件分解为一组对象,通过对象间的交互来实现软件功能,并且还提供了模板等进一步抽象的手段,因此用 C++ 语言写软件,归根到底就是要写一系列的类来建模运行时对象的交互行为
- C 和 C++ 在业界均拥有重要的地位,基于 C 语言开发的著名软件包括 Linux/Unix 内核,Erlang 等语言的编译器和运行时等;C++ 语言开发的著名软件则包括 Firefox 浏览器、谷歌的 V8 JavaScript 引擎等等。
- 经过多年的发展,二者都很成熟,无论是 C 还是 C++ 开发的软件,都可以获得很高的性能,在良好设计的情形下,性能差距很小通常可忽略
- 都属于工业级编程语言,久经考验,对其各自的优点、缺陷业界有充分的认识
- 都拥有大量的支持者和批评者
【建议】
事实上你最终一定是需要学会 C++ 的——这是个残酷的事实——因为基于 C++ 构建的系统是如此之多,你要想在职业生涯里把它们全部避开简直是不可能的。因此问题不在于学哪个好,而在于应当先学 C 再学 C++ 呢?还是直接从 C++ 开始学起?
就我自己而言,当初是直接从 C++ 学习的。我当时的考虑是——既然 C++ 囊括了 C 的绝大多数内容,那么学习完 C++ 不就其实把 C 也学了吗。
这么想看起来很有道理。但犯了贪大求全的错误。事实上,C++ 的知识点至少是 C 的 5 倍(引用和指针就够初学者喝一壶,继承,虚函数,模板,元编程,这些每一个都可以吊打初学者 :()。结果,我学习了很长时间却依然写不出像样的程序,时间都花在了 C++ 的各种语法、细节上。(关于这一点,要详细展开讨论,可以单独写一篇文章了。)现在回想起来,造成这样的局面,肯定有我学习方法方面的问题,但 C++ 本身实在太复杂也是一个重要原因。
很多年过去了,尽管现在我也常常用 C++ 写程序,但我通常不建议初学者从 C++ 开始学习编程。我会建议他们先从 C 开始。C 非常简单,但是却非常强大,可以编写任何程序。重要的是,这会给你带来许多成就感。这非常重要,因为它能够激励你不断去探索,继续在程序设计的海洋里遨游下去。
所以,在这个专栏的后续文章中,我会主要介绍如何用简单的 C 语言写出各种复杂的程序的核心技巧。当然,我也会穿插介绍其他内容。但最终还是以 C 为主。
感谢所有关注我专栏的朋友。 |
|