为什么很多人喜欢 Python?

很多人关注起Python就是因为简单易懂,做Web很方便。但在深入CS学科的很多高级主题时,Python能发挥出更加强大无比的力量。而这来自于Python是个好胶水。

坦白讲,Python不算最好的胶水,至少Lua做胶水就比Python好,API好用。但Python再算上强大的标准库、数据结构、友好的转义后,就脱颖而出了。

在科学计算领域,NumPy和SciPy的存在解放了很多人的思想束缚。其底层C模块,性能一流。

而当你需要一流的性能与一流的可调试性时,Python C模块是最好的选择。封装虽然有些麻烦,但封装后可以在Python里调用实在太方便。一些已有的C/C++应用也可以通过将函数封装给Python调用,而极大的降低调试难度,提升单元测试覆盖率。

2007年时我开始学Python的C模块编程,并在博客中放出了我的笔记。那时写了不少东西。封装libpcap后,做网络抓包,通信劫持,使得别人眼里,我俨然是个正经黑客。后来迷恋erlang期间,做了C node的Python封装,使得Python与Erlang可以互发消息,组建集群。搞硬件开发期间,封装了Cubieboard和RaspberryPi的GPIO、SPI等众多外设的Python接口,调试速度快到了云边。做USB通信期间,因为PyUSB不支持isochronous通信而自己重写了个libusb的Python封装,使得USB编程不再困难。做音视频识别的日子里,做了v4l2的Python封装,使得操作摄像头的控制精度达到了最高。

相比于其他人,用上这些Python封装后,迭代速度数十倍的提高带来了系统进化速度的极大提高。比如我在音视频识别的研究期间,因为NumPy和我自己的封装,每天动则十几次甚至几十次的迭代,优化算法的各种参数。使得我在不到两年时间里,识别效果就超过可某大学教授12年的研究成果。识别速度更是超出对方两个数量级。

对于各个领域的研究者,我是真心推荐Python的。用上NumPy和SciPy,你就拥有了极致的性能,顶级的可调式性,和产品级的稳定性。而这也使得Python的这套组合成为科学计算领域唯一能与matlab竞争的选择。

猜你喜欢

转载自blog.csdn.net/c710473510/article/details/88780128