說實話,在過去將近20年中,spring對於it行業的幫助還是很大的,尤其是資訊系統建設方面。
但在我看來,spring的發展也許進入了一個困局。
開始的時候,spring的確是一個還是算小巧的工具,但是現在已經變成了一個龐雜的大東西。
的確,它好像什麼都可以解決,但是變得過於繁複,龐大,效能上也有下降。
從工程的某個角度看,spring的確加快了系統的建設!但看待一個事物,總是要多個方面,不能失於片面。
運維問題
從運維角度看,用java寫的東西,天然就不是一個綠色的程式,應為java本身就很慢,再加上spring自身複雜的結構,導致一個功能可能變得
很慢,所耗費的能源還是很客觀的。
有人做了研究,具體什麼標準不太清楚,但是大體反應了一個現實:
Which Programming Languages Use the Least Electricity? - The New Stack
注:這個表格來自下文的論文中
java是c的大概兩倍,但是考慮到spring的複雜結構,我覺得至少是3倍的關係。考慮到全球有那麼多伺服器都是執行java程式,可想而知,這個能耗。
還有一個參考文獻:Ranking programming languages by energy efficiency (states.github.io)
這是在電腦科學雜誌上發表的:
現在人們還不是太關注這個方面,但是考慮到惡劣的自然環境和日益減少的能源,我們的程式是不是應該更應該考慮執行效率了?
對於現在這個世界,節能應該是一直需要關注的事情。
最近人工智慧晶片的問題,充分說明了節能的重要性。
只可惜,我們的科學家和工程師並沒有認真做好他們自己的事情,這也側面反應了為什麼我們的某些方便和外國人還是有很大的差距,因為首先
態度就是一個巨大的問題,我們太缺乏學術心態,缺乏長遠的目光。
學習角度
從學習角度出發,spring正在變得越來越複雜。此外它所推崇的方便可能讓它自己的效率進一步下降,進一步複雜。
考慮到這是一個很流行的框架,也許大家需要浪費越來越多的時間了。
當然,也有人認為,這是一個學習曲線還算不錯的框架,我也承認這個。但我認為,作為一個javaee框架,沒有必要搞得那麼複雜。
如果只是用spring開發javeee應用,我建議還是儘量只使用spring的核心部分即可,其它所謂的security等等之類的東西,也許需要慎重考慮。
如果考慮到用於開發專案,那麼也許脫離這些複雜的東西會可能更好一些。
我只能說,spring有時候的確是有點方便,但是我們需要考慮它的代價。做事情總是顧頭不顧尾,遲早會出問題,我特別討厭那樣的人。