3 回答

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊
我覺得可以從IoC和AOP兩個(gè)方面來看:
IoC
語言的設(shè)計(jì)目標(biāo)
java是要run any where,包括咖啡壺,洗衣機(jī),航天飛機(jī),所以核心最初在虛擬機(jī)規(guī)范上,類庫一直是痛點(diǎn),早期Sun公司解決得并不好,所以才有apache commons-xxx系列以及海量的各類jar包,附帶花樣翻新的構(gòu)建工具來管理這些三方庫,用戶需要在不同的類庫里反復(fù)選擇和切換,Spring 的IoC恰好迎合了這個(gè)需求。
Python 的目標(biāo)是簡化開發(fā),被稱作可執(zhí)行的偽碼,依托于成熟的C語言庫,很多是后就是對C語言庫的調(diào)用,而C語言秉承Unix傳統(tǒng),只做一件事并做好,小模塊組合出強(qiáng)大功能,很多時(shí)候python直接調(diào)用函數(shù)解決的問題,java卻先要在用那個(gè)類庫上猶豫不決,沒辦法就把這個(gè)決定通過Spring留待運(yùn)行時(shí)在調(diào)整。
開源的問題
Jdk早期并不開源,發(fā)布周期間隔很長,覺得不爽你只好自己寫一個(gè)類庫吧
Python一開始就開源,覺得核心不爽提交補(bǔ)丁好了
AOP
語言使用方式的不同
Java 不是腳本,要編譯打包才能運(yùn)行,這是多數(shù)情況下的使用方式,后期修改要重復(fù)這個(gè)流程
也導(dǎo)致AOP這樣的功能對Java來說太方便了,可以動(dòng)態(tài)修改程序行為,Python多數(shù)情況下是源碼運(yùn)行,本來就能動(dòng)態(tài)修改行為,AOP有沒有關(guān)系不大。
添加回答
舉報(bào)