来自外网的一个有意思回答,说明了为什么C一直无法替代的原因。

" 我是一个软件工程师,以前是大学"编程引论”的教授。我断断续续的和其它教授一起教差不多六年。

在那个时候,我们用了三种入门语言:Python, C#和C

Python是最坏的选择。

它看似非常简单。学生们很快能上手编程基础。但是很快就陷入了异常和困惑的围墙。为什么它会这么执行?为什么它会那样执行?

要回答这些问题需要冗长的关于动态类型语言的解释。它们已经远远超过了初学者有限的技术理解。并且这些问题常常有很多学生会问。学生们非常困惑。他们能写代码,但并不真的理解为什么语言能做到它能做的,而且某些误解——尤其是关于数据结构和静态/动态类型检查 —— 会一直徘徊到大学的最后一年。

C#好一些。静态类型确实帮助很大。类型的行为可以很简单的解释,通常也更容易理解。而C#最大的问题是复杂的标准库和混合了面向对象。最终,学生们成功的学到了编程和编程基础,但是把编程原理,面向对象原理和复杂的语言特性打包成12周的课程是一个极为艰难的工作。

C太棒了。它非常简单且贴近底层,这使得它直接连接了语言特性和编程概念,这些概念通常会在计算机架构的课程中同时教授。指针和数组对于学生来说是具有挑战的,但是在清晰的阐述清楚底层机器之后,最终也可以理解。面向对象的部分则会在第二学期进行教授。此时,我们会用C#来在编程原理之上进行构建并且这使得我们可以只关注于面向对象编程。

用C语言来开始的最好之处在于,学生们不仅可以学习到编程的原理,他们还可以学习到机器,这会帮助他们整个的学术研究过程和他们的职业生涯。

再一次的,如果我想教第一年的学生关于编程,我会用C语言。"

软件编程学哪个语言好(作为一个软件工程师)(1)

软件编程学哪个语言好(作为一个软件工程师)(2)

,