Python 做后端,相对于 Java 或者 go 来说,到底差在哪?

2023-08-18 15:32:57 +08:00
 realNewBee

在 V 站这看了很多文章,都说 py 做后端怎么怎么差,都劝这转 java 和 go ,那 py 到底差在哪呢?本人就是干 py 的,5 、6 年了,也还没意识到差到哪去呀

11550 次点击
所在节点    Python
105 条回复
Yc1992
2023-08-18 17:03:08 +08:00
@yisonchen #19 如果仅仅是 web 领域,代码一万行以内的项目,那确实没啥区别

至于其他,楼上很多资料,我就不赘述了
gxm44
2023-08-18 17:04:15 +08:00
动态一时爽。。。。
dobelee
2023-08-18 17:06:48 +08:00
个人喜好。
经验上来说,强类型出 BUG 的概率会比动态解释型语言低很多。当然代价就是开发效率降低。
Orenoid
2023-08-18 17:07:00 +08:00
复杂度上来后,可维护性真的是个大问题
coderxy
2023-08-18 17:10:23 +08:00
动态语言在长期维护的项目上就是个坑,还有就是没有大厂背书,造成整个从业市场不太行,再者本身性能也确实不太行,py 的协程框架坑也很多。 其实做技术的没必要死磕技术的高低优劣, 后端都差不多,哪一种语言好就业、工资高就选哪个, 何必死磕某一个语言,搞得跟教徒试的。
tracymcladdy
2023-08-18 17:12:29 +08:00
Java 搭好脚手架可以大把用🐖队友,python 你试试。
walpurgis
2023-08-18 17:13:48 +08:00
可维护性就是开发效率,代码量上来后,静态类型只会比动态类型成本低
SleepyRaven
2023-08-18 17:17:10 +08:00
您是否在找:《为什么前端需要 Typescript 》
realNewBee
2023-08-18 17:22:02 +08:00
@coderxy 对,就是这个意思。语言就是个工具,就很奇怪老是有人说这个语言怎么怎么样,哪个语言怎么怎么样。当然,仅仅只针对后端开发
Maerd
2023-08-18 17:24:43 +08:00
python 、go 、java 都用过,其实写起来,python 是最爽的,但是用起来,性能是真的差,仅仅为纯文本的情况下,fastapi 单核只有 1000 多并发,8 个进程也才 8k ,而 go 、java 简直轻松破万。。。。
Mithril
2023-08-18 17:27:30 +08:00
做技术选型是个很复杂的工作,并不完全能简化成某种技术“好”或者“坏”。

比如你公司要你作为技术负责人,新开个 web 项目马上要上线。但公司都是拿.NET Framework 做 WinForm 和 WPF 桌面程序的码农。那你最好的选择不是 Java ,而是.NET Core 或者新的 6+。至于说 Java 生态好,但你的 Web 项目本身就不至于用到大规模的微服务,那它给你带来的好处,就比不上熟悉业务的同事。

同时也要考虑以后招人的难度,万一招到不靠谱的人对你项目的破坏程度等等。比如前端都在逐渐转向 TypeScript ,说明简单自由的脚本给你带来的便利,在项目规模增加,开发时间拉长,团队人员不断更新的情况下,比不上限制严格的语言带来的可维护性提高。但如果你这项目就是个外包,几个月开发完卖掉就不管了,那自然随便什么都行,熟悉 Python 就拿 Python 写。

所以你既然觉得不差,那可能是你没遇到过别人遇到的这些问题。导致 Python 就是最适合你现有条件的编程语言,那自然也完全没必要跟着别人的建议跑。
CodeCodeStudy
2023-08-18 17:28:15 +08:00
@Maerd #30 叫老板加机器。最重要的不是性能,人力成本比机器还贵,最重要的是项目做大了后,动态类型语言更容易隐藏潜在的 BUG ,而静态语言就能在编写代码、编译代码的时候发现。
dearmymy
2023-08-18 17:30:02 +08:00
我写 django 。我之前写 c++,对于 python 我认为很多人是 java c++ 转过去随便写写。不了解 python 语言的美。导致下限很高。之前写 c++风格的 python 很别扭。
python 写大项目。主要问题还是人员下限太高。我自己写自己小项目。django 爽的一批
thinkershare
2023-08-18 17:34:37 +08:00
只有一个核心原因:python 这种动态语言存在天然的可维护性问题,而且无法简单的规避。这就是为啥微软要开发 TypeScript , 如果不是因为前端只有 JavaScript 可选,我早换其它语言了。
ZX576
2023-08-18 17:46:13 +08:00
7 年 Python 开发,个人觉得说 Py 不如 Java 、Go 的就是 Py 太自由了,你可以轻易写出能跑但是没几个人看得懂同时维护起来及其困难的代码,Java 不知道,Go 就一种写法,在规划好功能模块之后,从语言层面就规定了谁来写都是差不多的样子,但 Py 不行,要做到写一样的代码对 team 的要求非常高,一是有这个执行力的团队少之又少,二是 Py 的卖点就是容易上手,导致来写 Py 的人平均水平是差于其他 cpp/rs/go 开发者(个人观点),三是很多开发者把 Py 当脚本看不当工程做,见过司内非 Py 其他组写的 Py 代码,真是一言难尽,于是就陷入了恶性循环。


说性能不行的,请问贵司有几个接口 qps 过百了的?
coderxy
2023-08-18 17:48:51 +08:00
@yisonchen 现在后端领域主力就是 java 跟 go 了,py 趁早转, 我 16 年刚毕业开始写 node ,写了 4 年,20 年也直接转了, 不光 py 跟 node php ruby .net 等其它小众后端语言这几年都在萎缩,已经陷入恶性循环了。 我转 go 看了一周开始动手写,1 个月左右能熟练 curd ,基本上没啥成本,后面再找工作选择面也大一点,何乐而不为呢?
chimission
2023-08-18 17:49:10 +08:00
是的,做 web 语言本身性能是最不重要的, 你即使是用 C 写的后端, 一个 sql 慢查询还能比 python 块吗。。。。
virusdefender
2023-08-18 17:51:01 +08:00
类型问题,大规模工程难以维护
adoal
2023-08-18 17:51:46 +08:00
@yisonchen k8s 和微服务是架构层面的事,不是用来解决“动态类型容易有潜伏的初级 bug ,随着项目规模变大会更不可控”这种具体 coding 的问题。当然如果你对 type system 的意义确实是怎么都无法理解,也不介意语言的差别带来的影响,那别人就更没法跟你讲了。不过话说回来,认为什么语言都一样的人,我见过的大多数……当然是去选生态更好的 Java 啦。
llwwbb7
2023-08-18 17:51:47 +08:00
最近开始写 python ,最大的感受就是哪怕我自己写的代码,写完都不敢保证正确,要改的话更是提心吊胆

go 的话写完能编译过,基本就不会有什么问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/966460

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX