Spring 團隊的Josh Long自己在Twitter上做了一個調查。1625次投票,樣本量不算大,但也能說明問題。和我答案最後的那些調查圖表基本一緻。
我們看一下Google Trends的資料:
搜尋條件是這樣的:
World Wide:
United States:
France:
India:
Canada:
China:
Japan:
其他英文技術網站上的多個統計:
再看看Stack Overflow上的問題數:
(含有hibernate的标簽和問題數)
(含有mybatis的标簽和問題數)
三觀成型沒法改:zhihu.com/question/309662829/answer/579433240
這其實是一個很嚴重的錯覺,首先,歐美的網際網路企業程式員在激程序度上是不下于國内的,新技術、偏門技術的應用小範圍的也不少。
其次,細分在java語言的系統內建和傳統行業解決方案上,國外确實普遍在使用hibernate。
但我覺得這個選擇本身是不摻雜技術優劣的,就好像因為馬車的寬度,是以現在标準的寬軌鐵路和馬路汽車的寬度是xx一樣,更多是因為慣性。
管理風格和思路的問題而已。
以我接觸的某知名外企為例(top500),至今他們還有20年前的文檔資料庫在運作。
這種事情如果是在國内,早被幹掉了,但是他們一直用到了現在。
我當時問他們的pm是什麼原因才會使用這個系統,并且不更新。
人家說估計安全級别,這個系統是0級(最進階),但是使用頻率和系統重要性都高于5,也就是一年用不了幾回這種,安排開發預算整體更新幾乎完全沒有成本效益,是以就pass了。
hibernate也是,可能hibernate确實已經不滿足使用了,但是重構和更新的優先級不高,成本效益不夠,那麼風控和預算上都不給過了,誰去改??
反過來講,Facebook和tt還有谷歌這些,你聽說過他們的什麼java項目,或者更新分的hibernate項目麼?
國内就是另一種風格了,我在幾年前的回答裡有過一次關于之前某個工作的吐槽,bd簽了一個80萬的合同,boss為了靈活推進,中斷産品線2個月緊急上線,前後投入研發成本300多萬,最後以甲方的身份幹了乙方的事,系統完全沒有可複用性,這種傻缺事,在歐美公司能繞開風控和财務麼。
這種拍腦門一句話繞開風控需求和财務的工作計劃,在中日韓都是一脈相承的。(比如這次的拼多多,是他員工智商低麼?這種體系上的缺陷一定是因為管理層人治大于制度啊。)
mybatis最大的一個特征就是,特别特别急的情況下可以拍腦門臨時改,用一些所謂“臨時解決方案”(懂的人都懂)。
hibernate如果沒有總體設計的話,哪裡有那麼随便就能臨時改動的(臨時方案也可以用,但是沒有那麼友善)?
公司管理風格趨向于降低風險,和公司管理風格趨向于上司個人感受,導緻了在管理、文化、制度上的全面差異,最終導緻了技術選型的差異。