C++开源库:
菜鸟和大神都不会用,菜鸟不会用是因为不懂,大神不会用是因为不屑。菜鸟无奈转行学python,大神们开始用C++写开源库,然后成为业界标准。
python开源库:
python只需要7天就从入门到精通了,所以全部都是大神。一部分大神开始调包之旅,另一部分大神转回C/C++,目的是为了用C++写python的库,毕竟numpy、tensorflow、pytorch这些比较火热的python库都是C++写的,速度快。
综上,所有编程的人都是大神,python大神喜欢调库,C++大神喜欢写库。
分割线
不开玩笑了,说点正事
从使用角度看:
python语法简单,开源库只要功能强大,必然在整个社区迅速流行,而且可以嵌入到自己的项目中,省时省力还安全。
但是,C++的开源库即使功能强大,在社区迅速流行的难度仍然非常大,尤其是对新人来说,使用开源库要知道:指针、引用、函数指针、指针函数、数组指针、指针数组、常成员、静态成员、多态、模板等等,加上C++较为复杂的符号“::、&、*、<>、.、->”等等,使用开源库对大部分新人来说实在太不友好了。
从“源码可读性”角度看:
代码出问题时,经常需要查库的源码。python库的源码基本上难点就在于逻辑结构,只要对算法的思路清晰,阅读很顺畅。但是,阅读C++库的源码时完全不仅要搞清楚逻辑结构,还要考虑内存释放、指针的安全性等一系列问题,难度比python大很多。
总结
从我的角度,我还是喜欢C++多一点,因为C++更接近底层,长时间使用C++能加强我对编程整体的把握。我用python写代码的时候,很少考虑“空间复杂度”和“时间复杂度”的问题,目的就是尽快实现预期功能;我用C++写代码的时候,能不能实现预期功能都是次要的,关键是代码的安全性和效率性必须要高,否则重构代码非常困难,至于预期功能完全可以顺势下调。
对了,七天学会python指的是“学会调库”,而不是“学会写算法”。我从大四开始,到研一中期才具备一定的自己写算法的能力,而且很菜。