Java 那么强, Python 要怎么淦倒它?

2020-09-08 11:39:41 +08:00
 oahebky

看到 Java 也在更新着自己的语法。

最近看到 Java 的 Spring MVC 写路由,@RequestMapping('<url>') 和 flask 很像(注:我不知道谁学习谁的)

由此了解到了 Java 的注解( Annotation )语法

这里语法指的是 “切片”、“生成器”、“指针”、“装饰器”、这种含义的语法。

个人感觉这个语法给了 Java 一些“动态特性”(?)


考虑到 Java 有一套成熟、专业的 web 框架(像以前称为 Java EE 的东西、在开发初始就是做给 toB 的框架),而 Java 语言本身又有发展(不像 C 语言可以等同于看做语法定死下来)。

感觉 Python 在 web 开发领域很难淦倒 Java 。

15529 次点击
所在节点    Python
113 条回复
ruyu
2020-09-08 19:32:27 +08:00
别争了别争了, 我说一句公道话, PHP 是最好的语言
firefox12
2020-09-08 19:34:45 +08:00
@linxb 任何资本都是这样,想一下 如果 某个 goolge 的工程师辞职了,google 就开不下去了,这样的事情怎么会允许它出现呢?没什么人是不可替换的,
crella
2020-09-08 19:47:50 +08:00
因为像 lz 这样给 Python 有意无意间招黑的人不少,所以我初学的时候就没选 Python 。
仅供参考
ManjusakaL
2020-09-08 20:09:58 +08:00
numpy 和 tensorflow 计算效率和 C++ 相当关 Python 啥事。。Python 就充当一层 DSL
@Huelse
Huelse
2020-09-08 20:47:36 +08:00
@hijoker #45
@ManjusakaL #64
我又没否认这些,python 能够调用这些库而不损失效率且不失优雅不正是他的特点之一吗?

照你们这么说的话,python 都没有作为中间层的必要,直接用 C 运行不就完事了,还整这么多麻烦
abersheeran
2020-09-08 21:06:28 +08:00
应用场景都不一样,Python 为啥要和 Java 斗?
johnsona
2020-09-08 22:26:30 +08:00
@Macolor21 我知道,可正如你所评论的,spring 在微服务和复杂应用场景下相对于 flask 有很大的优势,至于思想,我也得结合着项目学呀,服务拆分等一些列思想我也不能看 spring cloud 文档就学会了呀
jessun1990
2020-09-08 22:35:03 +08:00
看场景。
在家穿拖鞋,在外穿皮鞋,跑步穿跑鞋~你不能用一双鞋适用三个场景吧?只能比较某个特定场景下语言的优劣。
别想着语言之争。
JamesMackerel
2020-09-08 23:00:44 +08:00
@whileFalse

> 依赖注入是有很高成本的。启动时间、运行速度、框架的可理解性都是成本。

之前学了一下 go 的 wire,用的是代码生成方式的依赖注入,我感觉就还挺好的……启动时间和运行速度应该都不会有什么影响,大部分依赖注入的问题也会(比起运行时依赖注入来说)在编译阶段就暴露出来。可理解成本确实会增加,不过依赖注入本来就是为了减少依赖很多的时候自己组装依赖的成本,我觉得可以接受。当然我还没深入使用过这个框架,按照我的理解,如果你一定要把运行时的事情放到编译期间去做,那肯定是会有一些 Trade Off 的……

想起轮子哥好像说过(他的观点不一定对),很多语言没有依赖注入之类的那一套,并且喷 Java 扯淡,是因为他们还没有如此复杂的项目需要用上这套玩意儿,等哪天这语言被广泛用于复杂的项目的时候,就会发现他们讨厌的那一套都回来了。
JamesMackerel
2020-09-08 23:03:26 +08:00
其实学了 Spring 的核心思想之后,觉得“把程序的入口点交给框架,让它帮我把我写的各种组件拼起来,不要我自己 new 出来并且传来传去”这个想法还是蛮好的。
nG29DOMuRYTWfcSr
2020-09-08 23:23:22 +08:00
发现每次都是这类帖子特别火,也特别有意思,不同语言使用者,都说出了自己的心声!
charlie21
2020-09-09 00:48:45 +08:00
java 够 skr, python 不够 skr, 结贴。
laike9m
2020-09-09 00:57:28 +08:00
@whileFalse 说的太对了。我在公司用的一套依赖注入框架,把一切检查都放到运行时。那我还用 Java 干嘛? Python 不香么
jhdxr
2020-09-09 01:29:52 +08:00
@Huelse
> python 是计算集中型的,java 是 io 集中型的,所以两者领域不同,不存在谁干谁
> 我又没否认这些,python 能够调用这些库而不损失效率且不失优雅不正是他的特点之一吗?
如果真的不损失效率就可以用 python 直接实现了。正是因为 python 计算太慢所以才只能用 CPP 实现然后 python 去调用。
tomari
2020-09-09 05:56:51 +08:00
两者并存不是最好的嘛
695975931
2020-09-09 08:57:16 +08:00
干倒 java 的一定不是另外一种语言。
nozer
2020-09-09 09:28:30 +08:00
Java 这种垃圾语言,只需要他自己就可以淦倒他自己,不需要别人淦。
whileFalse
2020-09-09 09:35:11 +08:00
@Macolor21 Java 用 JSON 做服务间调用,那么编译期类型检查不就荡然无存了吗?没有类型检查你比 Python 有任何优势吗?都没有类型检查你写的有 Python 快?这就是我为什么说 Java 分裂。Python 占了一样(编码)快,原生 Java 占了一样稳,但现实的 Java 生态既不(编码)快又不稳,还费了牛劲。

说到负载均衡和断路器,请记得现在已经是云的时代了。Spring 框架那种所有事情都要通过框架或其他开源软件一体化解决的理念在逐渐淘汰。比如服务网格就是专门搞这些事情的,而服务网格是对应用透明的。

我 16 年跟一位 Java 架构师基于 SpringBoot 设计微服务框架。为什么基于 SpringBoot 我不知道,可能是那时候 SpringCloud 不成熟或者架构师只熟悉 SpringBoot 。这套自己搞的框架使用了很多云提供的组件,最后的效果不错该有的都有,又好理解,又好运维,唯一需要自己部署的中间件是 MongoDB,其他都是云或者无状态容器了。

我们的框架真的是用 JSON 做服务间调用的,也确实出过几次改接口后调用者没有同步修改的问题。不过情况比较少见。而且我们还有一层 Node 微服务,主要是 Node 调用 Java,Java 之间的互相调用不是特别多。
xcp3555
2020-09-09 10:14:09 +08:00
在 Web 方面,Python 没什么优势,你要是大学社团写个 demo 当我没说
L2AKnG8GXx60bc6P
2020-09-09 10:33:53 +08:00
别争了,我( rust )是说在做的各位( c,cpp,java,python,go,js,php )都是垃圾。

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

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

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

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

© 2021 V2EX