在开始前我有一些资料,是我根据网友给的问题精心整理了一份「Python的资料从专业入门到高级教程」,
点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!!
python项目超过5万行,版本3.9.7,类型靠typing、assert和mypy保证,算中型项目吧。写python很容易放飞自我,必须靠一些best practice和principal才能保证代码质量,大项目用python确实有很多潜在危险。
但真正让我头疼的是性能问题,随着功能的增加,我遇到的情况和高赞回答类似:处处都慢,又没办法处处都优化。
我需要在大数据量上做数学计算,操作数据库,提供web服务,驱动selenium做网络爬虫,还需要动态的把mysql里存的python函数动态import到程序中执行(量化交易相关,需要执行交易策略函数,动态import可以解耦交易策略的发布和项目代码本身的发布)。整个项目运行在一台2核4g内存的云服务器上。
很难找到一个比python更好的支持以上所有需求的语言了。
java太耗内存,而且对大数据量的计算也没有优势,python有pandas用起来很爽。
c#,额,这个语言比较一言难尽,初看上去很厉害,语法、性能、开发效率,几乎没有短板。但是仔细了解一下会有一些佷难受的问题:微软的开源是阉割的:核心的.NET生态是从公司内部开源出来的,用户只是帮Azure进行免费测试和功能回馈,难以吸引真正优秀的开发者加入.NET生态。.NET生态是以Windows为核心进行发展的,而对linux生态的支持因为缺少商业动力也可以忽略不计。C#语言看起来很强,实际上是借鉴了很多种优秀语言的大杂烩,并没有看起来那么厉害。开源界抵触微软文化,对微软的生态不够有信心。而且调研了一下好像c#生态中没有pandas的替代品,只能放弃。
c/c++很吃经验,很多方面都可能导致项目悲剧。搭建一个常见应用至少要涉及到字符集、db连接池、orm、api service、http请求、加密和ssl证书、email一堆基础功能,在java、python、php之类的语言上这些几乎都不会是问题,但c++就可能让人抓狂。