刚好最近在学习C++,以前又有其它语言的编程经验,所以对此刚好有一定发言权。
C++是所有主流编程语言中最难掌握的语言!这一点基本上得到了公认。“主流”一词不能少,大致可以认为是各类计算机语言排行榜中前50名了那些。有些搞怪的,用来“玩”的语言可能比C++还难,但是它们不主流,也几乎没有谁真正用在生产环境,所以没有必要讨论。还有少数人认为最难的主流编程语言是汇编或LISP。这也是有道理的。不过不管怎么说,说C++的难度处于主流语言中前三位,就更加无懈可击,谁也否定不了。
我们这里讨论难度,主要都是以纯语言和核心标准库函数来说的,没有包含衍生的整个生态系统。比方说说JavaScript的难度那就是纯JavaScript,而没有包含jquery、vue、node.js等。再比如讨论JAVA难度,同样不包含安卓开发、spring甚至hadoop。再比如Python就不包含numpy、django甚至人工智能。
就我接触过的一些编程语言,JAVA、C#、Python、PHP、JavaScript、Go、C、R、scala、F#,它们在纯语法上,和C++的难度完全不在一个重量级!一种小巫见大巫的感觉。我刚加入一个C++团队,凡是接触过其他语言的,都说C++太难了。而有部分成员说C++简单的,一看都是刚毕业没有几年,只玩过C++而不知道其他语言的(一种初生牛犊的感觉吧)。
说了这么多废话,下面开始讨论为什么C++难,难在哪里。写的比较随意,想到哪里写到哪里。