當(dāng)所有編程語(yǔ)言都在靠齊的時(shí)候
老實(shí)說(shuō),自己從來(lái)沒有對(duì)語(yǔ)言有排斥的看法,一直是選取對(duì)項(xiàng)目***的語(yǔ)言,當(dāng)然***是從多方面,首先考慮的是人員問題,畢竟二八定律在任何語(yǔ)言都是顯而易見的,任何語(yǔ)言都能滿足日常80%的開發(fā)。
不過,偶爾也會(huì)調(diào)侃調(diào)侃一些稀奇的地方,比如今天,做緩存的時(shí)候打算祭出HashTable,這樣強(qiáng)大的東西.net不可能不實(shí)現(xiàn),沒必要自己搞,果然微軟不負(fù)所望,于是自己寫出功能代碼:
很普通很普通的代碼,不過仔細(xì)一看,心里瞬間有種想大笑的感覺,按了F12進(jìn)去后看到它的內(nèi)部是這樣:
這個(gè)東西太熟悉了,因?yàn)樵诤芏嗄昵皠倢W(xué)java的時(shí)候用到Hashtable的時(shí)候比較好奇為什么第二個(gè)t是小寫,這不符合sun的風(fēng)格啊,整個(gè)jdk都是標(biāo)準(zhǔn)駝峰,于是帶著這個(gè)疑問翻過 很多書,看多很多資料,***的結(jié)論是:
Hashtable的第二個(gè)t小寫是sun的失誤,很多書都提到這個(gè)問題,很多人都給sun提過建議修改過來(lái),后來(lái)sun也確實(shí)討論過這個(gè)t的問題,但是由于Hashtable是jdk1.0的產(chǎn)物:
盲目的替換會(huì)導(dǎo)致很多老的系統(tǒng)根本無(wú)法兼容,于是sun決定保留這個(gè)小寫的t,讓它繼續(xù)不合理的存在,當(dāng)時(shí)沒有太大的在意,直到看到c#這邊的Hashtable的時(shí)候,心里有點(diǎn)樂開花的感覺,于是大概的翻了很多c#的類,其實(shí)和java一樣,是標(biāo)準(zhǔn)的駝峰,唯獨(dú)Hashtable很例外,不過也可能是我理解的很膚淺,沒有理解深入的地方。
C#和java有太多相通的地方,從ORM到IOC,AOP,何曾的相似,相似到到連Hashtable的t都要小寫,想想就有點(diǎn)開心。
在目前遍地開花的編程語(yǔ)言中,很多語(yǔ)言都逐漸的開始慢慢的或多或少的靠齊,記得最開始需要將一個(gè)j2ee的改造成.net的時(shí)候,為了方便直接走.net的orm和ioc,于是標(biāo)準(zhǔn)的java pojo類只需要修改下后綴為cs就能在net里***運(yùn)行了,hibernate的東西不用改,直接丟過去,***。當(dāng)時(shí)還和同事開玩笑說(shuō)我可以做一個(gè)工具直接把c#的工程轉(zhuǎn)換成j2ee的,后來(lái)一次google發(fā)現(xiàn)還真有這樣的工具,還不少。或許微軟這樣是方便java程序猿的平滑遷移也說(shuō)不定
在今天,每種語(yǔ)言,都在默默的像對(duì)方靠齊,就像java也搞出了play這樣類ror和django思想框架,不過總體來(lái)說(shuō),好玩,看著開心,寫著舒心,本文僅僅作為茶余飯后閑聊,不參與任何語(yǔ)言格斗。。
原文鏈接:http://www.cnblogs.com/bfchuan/p/4203001.html