
美的
最可怕的是,C语言明明很简单,甚至可以说是众多编程语言中最简单的之一,但经过大家口耳相传后,它却被普遍贴上了难学的标签。C语言到底哪里让人觉得恐怖?是语法复杂吗?还是标准库过于庞大繁杂?其实,它的语法已经被精简到了极致,表达方式也直白得不能再直白了。不得不说,C语言的设计者确实独具匠心。对于一门编程语言来说,表现力确定性和简单性几乎构成了一个不可能同时满足的三角关系,而C语言却找到了一种近乎完
美的平衡点。我们再来看看C语言的特点:虽然其本身的表现力可能不算特别强大,但加上宏机制后,就变得非常灵活且富有表现力;它的确定性极强,熟练掌握的开发者甚至能够通过肉眼直接从代码中推测出背后的汇编逻辑;此外,C语言极其简单,堪称所有编程语言中教材最薄的一种。当然,面对不可能三角,任何设计都需要在平衡中有所侧重,而侧重必然伴随着代价。如果完全追求中庸,那这门语言也就失去了自己的特色。那么,C语言为此付出了哪些代价?我认为主要有以下两点,也正是这两点让一些人觉得C语言很难:第一,C语言假定用户对
计算机的工作原理有一定了解,因此才引入了指针这样的概念。相比之下,像
Python这样的语言从来不会假设用户懂
电脑底层运作。第二,C语言不会替用户管理或降低代码复杂度。换句话说,它要求程序员自己承担起控制程序结构的责任。这两点意味着,若想顺利用C语言进行开发,一方面需要理解
计算机的基本原理,另一方面还需要清楚地知道自己正在编写什么样的程序。然而,很多开发者,尤其是初学者,在早期阶段往往难以达到这两个要求。但实际上,这并不是编程语言本身的难度问题,而是编程本身固有的挑战所在。