再談j2ee與.net(盡情批評我吧,呵呵)
發表時間:2024-06-19 來源:明輝站整理相關軟件相關文章人氣:
[摘要]我覺得攤開來說,說j2ee和.net哪個更先進并沒有什么意義,主要是看開發易度和成本,我暫時覺得,在vb/vc等原先ms陣營的開發者upgrade到.net以前,j2ee還是首選,現在它的支持最多(比如apache/ibm都提供了很多免費的東西,大大有利于開發),最后的勝負還是取決于什么東西可以讓...
我覺得攤開來說,說j2ee和.net哪個更先進并沒有什么意義,主要是看開發易度和成本,我暫時覺得,在vb/vc等原先ms陣營的開發者upgrade到.net以前,j2ee還是首選,現在它的支持最多(比如apache/ibm都提供了很多免費的東西,大大有利于開發),最后的勝負還是取決于什么東西可以讓人更易上手,提供更少的成本,更快的可以訓練出程序員來,這一點java比較好,君不見,滿街都是java程序員了,呵呵,我的軟件部經理告訴我,他同時招聘java和c++,java的程序員多出10倍,java易上手,開發支持多,這才是它流行的原因吧。就好像delphi,我一直很吃驚他竟然可以在windows上和ms的開發工具競爭,我覺得主要不是因為它的先進性,而是易上手,掌握了程序員,就掌握了soft的未來(所以cobol還有非常多人用,pascal還可以不斷進步,按我的感覺,c就是操作系統,c++兼容c,pascal沒有被淘汰主要是因為它提供了一種比較容易的編程支持,如果說先進,我是無論如何不信它好過c/c++的)。
另外一點,我覺得前面有一篇帖子說得很好,ms現在就是沒有盟友——強有力的那種,敵人卻不少,都是強的驚人,隨便列舉幾個有名的:oracle在數據庫上不用說,ibm總是沒人敢小瞧的(我現在總覺得目前sun不管在java上做什么事情都拉著ibm),還有一個非常重要的,就是以apache(不要說你沒有聽說過apache啊,你是程序員嗎?呵呵,一個玩笑)和linux那幫人為首的自由開發者目前暫時是支持java的,尤其是apache的jakata項目,像tomcat/ant/log4j這些東西都出自這里(還有非常多好東西,不過我沒有用過罷了),這批人的天才是決不遜色于ms中人的,而且人多士眾,尤其重要的是這些東西——免費(還有源代碼,天。,這就是為什么到處都捆綁tomcat(apache server可以占據服務器市場的一半以上的份額,除了質量上乘以外,還有就是靠免費)的原因啦。
至于說到效率問題,目前解決的方法很多啦,首先是摩爾定律,軟件員可以坐等速度提升(呵呵)。其實效率有非常多解決方案,只要成本可以承受就行了(比如集群啦,陣列啦),大不了用高速內存cache數據,關鍵在于你的產品可以在期限內開發出來,綜合成本可以低,后備人員可以很快跟上(這行的流動率不要我說了)。還有用新人也可以很快上手,這對于設計的要求非常高,和具體用什么框架并沒有很大關系。
前面只是說一些比較費錢的解決方法(也是個小小玩笑),其實像目前使用corba,rmi-iiop,ladp還有大量的分布式應用解決方案的情況下,效率根本不是問題,我接觸過的幾個項目,用java根本就沒有問題(何況corba下可以用java+C++),因為負載被分散了,如果真要談到效率,也根本不可能用.net,大家去看一下協議級的應用和大型認證和加密的源代碼就知道,根本連C++都不用,完全是C,用變態的方式提升速度(比如不用函數——連內聯都舍不得用^_^——用宏來展開常用代碼,至于面向對象的特征全部消失,還談什么.net和j2ee)。我還沒有用過.net,但我不相信它會有多快,一個沒有編譯成二進制文件的東東能夠可以快到哪里去,不過肯定是比java快的——在windows上的話。我在這里說這個并不是打擊.net的意思,我個人也很看好.net的,但就事論事,只是說在作為企業解決方案的api選擇方面,速度根本不是選擇的主要因素,真要說道效率,還是C/c++,.net也是遠遠不夠的,程序這一行,沒有什么70%之類的說法,有不是買彩電,可以打折(五十步笑一百步)。
我比較看好.net對于原先ms程序員的升級作用,現在幾乎所有的程序員都可以介入到基于網絡的解決方案上來,這才是.net的意義所在。個人以為如果要搞.net,決不是去學C#語法那么簡單,如果是那樣的話,還不如用java,支持又多,高手也不少,源代碼更多。而是應該把注意力放在ms的二進制布局接口上,個人覺得COM之類的東西正是天才般的想法,雖然我還不太懂,.net可以把大量的舊有代碼升級到網絡,的確是ms的巨大貢獻,至于什么一統編程標準之類的東西,簡直就是癡人說夢(連fortran還活著呢),完全是ms為了吸引程序員的噱頭罷了(不過一統ms的編程標準大概沒有問題的)。
j2ee與.net的框架之爭,并不是爭什么更先進的問題,更不是什么anders搞得東西就是什么好之類的,(如果那樣的話,我覺得寫linux內核的人和richard.stallman——創立GNU標準的人——更有天才),這也是ms的一個炒作罷了,如果anders還在borland,肯定沒有現在出名。其實到了那個地步,個人的天才有多大作用,我很懷疑,不是懷疑anders,而是懷疑anders會比sun和ibm的天才厲害多少的問題(bill自己就是天才吧),這就好像比較麻省和斯坦福那個計算機更好一樣。不過我還是相信ms和anders可以把開發環境搞得很好才對。
其實兩個標準和思想沒有多大的區別,.net更接近操作系統,可以升級舊有的c/c++程序,這一點比java好,不過java也可以利用jni(不過功能較弱),談到和舊有程序的交互上,java可以利用corba,我總是覺得ms做事不太地道,他故意不支持corba,另搞DCOM,可能也有不讓java借用的目的。目前主要考慮的是如果你原來是ms的程序員,肯定升級到.net上去,原本作java的,不妨先把j2ee搞好。至于新手,我不敢建議(在網絡論壇上是動輒得咎。。
最后以為ms這次出人意料的打算交出.net的標準給國際組織(我也聽說而已,別當真),主要是為了爭取服務器市場,靠賣.net掙的錢肯定不夠養活ms,ms看中的nt server和數據庫的市場,這也難怪它沒有盟友了(呵呵),因此對于ibm,sun,oracle,linux/unix(apache)這樣的對手而言,是沒有妥協的可能性的(完全是把手伸到鍋里來了,我個人很佩服bill的霸氣),ms沒有可能用招安的方式說服他們,ms吃虧在它不賣服務器,至于原先的地盤已經劃定,現在ms幾乎是在跟各個方面的頂尖對手對抗,而且似乎大家都不打算妥協,爭取第三方支持成為一個比較重要的籌碼(只是重要而已,服務器上剩下的已經不多了),但不是絕對的,主要還得靠ms自己,贏下桌面開發市場對Ms沒有什么意義,他早就贏了,關鍵是解決方案市場,這才是ms要的,這場爭奪會是好幾年的時間,關鍵還看今后兩年,現在只想知道.net的正式版是否真的如同他說的那樣好,否則ms可能沒有什么時間了,今年j2ee大行其道,.net光見打雷,就好像xbox和ps2一樣,前面只不過是ms拿來留住舊有程序員和吸引觀望者眼球的噱頭罷了,實在的貨色今年才可以看見。對于ms有一種矛盾心理,一方面佩服它(因此我支持xbox),另一方面又覺得ms一旦贏了,對于軟件業不是什么好事(我不喜歡IDE的方式,所以用ultraedit寫java),ms的特色是第一版很爛,第三版開始很好,從VB/com/windows莫不如是,所以一旦開頭不好,大家也可以觀望一下,ms的東西無疑是好的,但是重要的不是好,而是相對于java(java也是好東西。┑暮,時間對它似乎不多了。只希望軟件業可以是百家爭鳴,重要的是開放的標準和技術,這才是重要的,如果ms可以開放它的技術的話,我也愿意支持它(似乎是奢望呢)