为什么python spring或类似框架没有发展起来/没有?

阅读 13.9k
5 个回答

我觉得可以从IoC和AOP两个方面来看:

IoC

语言的设计目标

java是要run any where,包括咖啡壶,洗衣机,航天飞机,所以核心最初在虚拟机规范上,类库一直是痛点,早期Sun公司解决得并不好,所以才有apache commons-xxx系列以及海量的各类jar包,附带花样翻新的构建工具来管理这些三方库,用户需要在不同的类库里反复选择和切换,Spring 的IoC恰好迎合了这个需求。

Python 的目标是简化开发,被称作可执行的伪码,依托于成熟的C语言库,很多最后就是对C语言库的调用,而C语言秉承Unix传统,只做一件事并做好,小模块组合出强大功能,很多时候python直接调用函数解决的问题,java却先要在用那个类库上犹豫不决,没办法就把这个决定通过Spring留待运行时在调整。

开源的问题

Jdk早期并不开源,发布周期间隔很长,觉得不爽你只好自己写一个类库吧
Python一开始就开源,觉得核心不爽提交补丁好了

AOP

语言使用方式的不同

Java 不是脚本,要编译打包才能运行,这是多数情况下的使用方式,后期修改要重复这个流程
也导致AOP这样的功能对Java来说太方便了,可以动态修改程序行为,Python多数情况下是源码运行,本来就能动态修改行为,AOP有没有关系不大。

python有个东西叫装饰器。

同意jujaoo的观点1,我觉得主要是语言的应用场景,解决的业务问题导致。

  • java主要业务场景是业务端,重业务逻辑(比如广告后端、互联网金融)。而像spring这些框架的提出,就是希望解放这些业务rd,让他们把主要的精力放在自身业务逻辑的实现上。另外就是后续的业务逻辑扩展,面向接口、面向切面编程都是为了解决这些实际问题
  • python主要的业务场景是数据处理,偏脚本型,侧重的是快速解决问题。如果有一堆框架,违背了python最大的优势,反而会变得不伦不类

python是弱类型语言, 真的适合企业级应用开发吗?

新手上路,请多包涵

Python的装饰器可以实现Spring的AOP的功能,只是不能像Spring一样使用XML文件的形式来定义

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题