最近一些工作需要用Python来做,我把我遇到的不开心说出来让大家开心开心。PYTHON是一门很伟大的语言,而且有很多有用的框架都是用PYTHON写的!这只是我个人的感受不一定对,别太认真。就当一个故事听!
先说我一些库装了以后莫名其妙的不能运行。报出的提示压根不是问题所在。后来死磕了好久,才发现是Python调用c语言库的冲突。还不说Python自己版本的各类不兼容,调试不方便等!怪不得qgis那些Python插件总是有莫名其妙的问题呢!开始以为是qgis不稳定,现在看来是Python环境的问题!只要你的机器环境复杂再加上开源这原本不规范的框架,是很容易出问的!唉,这Python大法貌似好上手,但入门后就是各类坑啊!用Python不996估计是不行了。不过做个简单执行脚本功能还是挺方便的,我感觉运维用这个就挺好!
主要是以下三个问题:
-
PYTHON安装,我经常被PYTHON那个“PIP INSTALL” 的故事给骗了,以为部署安装只要执行命令就可以了。结果很多库安装后都是版本冲突不能执行。然后到网上到处找离线安装包,手动安装!手动安装你得弄清楚版本。而这类版本信息开发商根本没有提供。他的文档也是PIP INSTALL!结果。。。。!我有一个人工智能的库两年了从来没安装成功过!最后结果是从入门到放弃了!
-
PTHON的环境,我机器上有时候为了兼容以前的工作,安装了PYTHON2,3环境,而这两个环境时不时的搞点问题。原因就是PYTHON的版本兼容性问题。别说接口了就是语法都不能兼容!两个环境变量还都一样,用了第一个就不能用第二!
-
对于PYTHON来说如果是当做一个纯的脚本语言来说是很好的。跨平台运行,可以以命令行的模式 逐句执行!而且在PYTHON容器的保护下运行很稳定。但为了效率或扩展功能PYTHON经常需要集成C或C++库,这时候这些底层库的冲突和错误才是头疼的问题。而且如果这些底层的库有问题或者版本不对。你根本就无法获得正确的提示!什么?你要DEBUG?那么你需要将全部环境建成DEBGU模式,因为PYTHON 混合环境DEBUG模式和RELEASE是完全不同的体系。各类开发者也不会提供建这类DEBGU的参考文档,因为在他的环境下是正常运行的!这种不确定性是致命的,因为你不是道啥时候你的应用就不能运行了。我最近的996就是因为这个问题!
与其它语言的对比:
JAVA: JAVA是做企业级开发,人家基本不会去调来调去调C++的东西!起码不去成规模的调!因为JAVA的框架和库都是比较完备的,不需要再去乱集成!而且JAVA本来定位就是服务器运行,就算有点耗资源问题对于服务器这类硬件其实不算啥!而且我感觉JAVA在稳定性方面是一流的,就算代码有瑕疵也能稳定运行!
C++ :C++虽然也有环境复杂的问题,但对比PYTHON这种没有头绪的“复杂“来说,我感觉还是简单的!因为c++复杂是有规则的,而PYTHON是无规则的!尤其是PYTHON和C++混合时,复杂度比单纯用C++大很多!但PYTHON经常是和C库一起混合使用的!
JAVASCRIPT:其实PYTHON和JAVASCRIPT是同一类语言,但JAVASCRIPT就简单多了,原因是JAVASCRIPT只在浏览器容器内运行,而且浏览器是非常稳定和成熟的产品,所以在浏览器的保护下开发、调试和部署变得异常简单!而PYTHON经常会在PYTHON运行环境之外调用C库,而且大部分是不太规范的开源库,这就造成其稳定性极难保证。好多时候为了正常运行你得多拜拜祖师爷,请祖师爷保佑!
PYTHON的不稳定,造成程序员的额外工作量,和排除问题的难度加大。所以我说996不可避免。这本来就是个低效的体系!关键这种低效是无意义的!
最后祝大家:珍爱生命,远离996!