本文摘录自知乎的一个问题的答案,作为我的一篇笔记。感谢原作者。
作者:李乐丁
链接:https://www.zhihu.com/question/60577602/answer/178077799
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
还差得远,js和python压根不是同一个目标,要说餐食,是大家一起蚕室php。
backend的场景比frontend复杂多了,除了最常见的拉起个server处理请求这种在线业务外,还有各种由时间、任务或数据触发的离线计算,各种资源分配、管理、采集和监控处理,以及无数的一次性程序,无论按代码量、数据量还是计算量来看,非在线业务才是backend的大战场。
对于非在线业务而言,主要强调的是吞吐量和研发效率,所以一个带有庞大标准库的、使用同步模型但易于并行、语法简单但规整、有多语言粘合性的语言,才是大家最爱。这是python真正的活跃地带,js的异步模型相比就太复杂了,async/await并不能cover全部,backend不喜爱不成熟的东西。
说回在线业务,无论什么总是可以分出三层来,交互层、业务层和数据层。交互层node是很适合的,但主要对手是php;业务层最看重质量和性能,目前还没有替代java和c/c++的方案;至于数据层都是各种成熟软件。
总的来说js和python不是敌人,各擅胜场而已。