有人说,Python比C语言难?该怎么反驳
记得我第一次学编程语言,是本科时的C语言选修课程,当时的感觉是编程真的好复杂,什么指针、断言、动态分配等各种概念,完全搞不懂啊。后来哼哧哼哧考了个七十多分,算是过关了。
后来知道C是偏硬件的编程语言,主要的用途是系统开发、嵌入式开发,所以我至今也没有用过C语言,后来做数据工作,开始接触Python、R,觉得和C完全不一样,有太多的轮子可以用。
最近在知乎上看到一个问题,说python不比C简单,不排除这是个钓鱼贴。
高赞的几个回答,还是蛮有趣,暗讽的比较多。基本意思是提问者属于小白,压根不知道C的难度。
但某种意义上,这个问题其实是值得讨论的。
对于95%以上的人来说,Python比C要简单很多,但对于另外5%深度使用Python的人来说,Python用起来可能会比C更复杂。
为什么呢?先看看Python和C语言的差异。
前面说过,C语言偏硬件编程,代码更加底层,Python相比C语言进行了封装和简化,类似windows和Linux的感觉。
Python把C语言中很多复杂、晦涩、冗长的功能概念都进行封装简化,比如数据类型、内存管理、错误处理等,本来C语言需要几十行代码能实现的功能,Python几行代码就搞定。
同样的打印hello word,python只需一行代码。
print("Hello, World!")
C语言需要五六行
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
很明显看出来python对函数和数据类型都进行了封装和简化处理,让代码更加容易编写和阅读。
另外,Python拥有大量的内置库和第三方库,调用起来非常方便,不需要程序员自己重新造轮子,这也是导致在绝大部分需求上,Python会比C简单很多。
那又为什么对于深度使用python的人来说,python可能又会比C语言更加难呢?
这同样是因为python的封装和简化导致了难,双刃剑的两面性。
首当其冲的是python的低效问题,因为python高级语言特性,牺牲了速度,不像C需要那样更接近硬件层面。
所以使用python开发复杂项目,必然要优化性能,比如CPython等,这会复杂很多。
其次,由于python把很多底层细节隐藏封装起来,如果你想进行更深度的开发,会比较困难,代码的维护和质量也更难管理。
所以你会看到C语言写的软件能稳定运行几十年没问题,很多大型软件也是C开发的。
但python在这块就比较劣势,比如开发性能密集型应用、实时性应用、高并发应用,就需要更多的时间去研究,并不像C那么方便稳定。
总的来说,C语言肯定比Python更艰深晦涩,但想要把Python用的炉火纯青,不见得会比C简单。