1.軟件開發(fā)技術(shù)
1)服務(wù)器端
在過去的5年中,Java仍然是主流,不僅因?yàn)楫?dāng)前的流行和遺留系統(tǒng)問題,而且?guī)缀跛性?
除了Microsoft以外的主要公司投資Java的原因是開源也是不容忽視的力量:除了促進(jìn)Java的Java開源框架之外,Linux還在推動(dòng)Java企業(yè)應(yīng)用程序的普及(請(qǐng)記住,
dotnet只能在
Windows Server上運(yùn)行)。
dotnet有其自身的優(yōu)勢(shì),但它不能在五年內(nèi)與Java取得力量平衡,這不僅是因?yàn)镴ava的普及帶來的優(yōu)勢(shì),
不僅是因?yàn)殚_源社區(qū)對(duì)Java的促進(jìn),也不僅是因?yàn)槠渌蠊緦?duì)Java的投資,而且許多公司行業(yè)的性質(zhì)決定了dotnet的退出,例如電信行業(yè),金融行業(yè),
政府我 行業(yè)等,無法采用
dotnet。
Python和Ruby并不是新手,但是它們的競(jìng)爭(zhēng)非常激烈,但是基于上述原因,它們?nèi)匀粺o法成為主流。
在Java服務(wù)器端技術(shù)中,顯然有兩條路線:高端商業(yè)路線,該路線是EJB3,J2EE5.0;第二條路線是EJB3。 低端開源路由,此路由是Hibernate,
Spring。 這兩條路線也重疊。 例如,開源的Struts幾乎已成為J2EE
Web層的標(biāo)準(zhǔn),而開源的Hibernate為EJB3奠定了基礎(chǔ)。 但是,路線劃分不是基于技術(shù)差異,而是基于業(yè)務(wù)運(yùn)營(yíng)差異。 專注于技術(shù)支持和業(yè)務(wù)服務(wù)的公司將選擇前者,而專注于成本控制和選擇自由的公司將選擇后者。
商業(yè)路線的技術(shù)解決方案是:EJB3 + Struts;
開放源代碼路線的技術(shù)解決方案是:Spring + Hibernate + Struts / Webwork
Struts是一個(gè)非常成功的開放源代碼框架,短期內(nèi)尚無法確定其地位Shake,JavaEye擁有 一項(xiàng)任務(wù),就是動(dòng)搖Struts在Java Web領(lǐng)域的職位,將其趕下位,然后將WebwOrk幫助主機(jī)!
商業(yè)Web層技術(shù),JSTL是一件好事,但是與FreeMarker等靈活的模板語言相比,還有很大的差距。 JSF本質(zhì)上是絕望的。 商業(yè)Web層技術(shù)沒有得到很好的應(yīng)用,這也導(dǎo)致了Struts的興起。
服務(wù)器端業(yè)務(wù)層和持久層框架,我對(duì)EJB3非常樂觀,其原因無需討論。
從業(yè)務(wù)的角度來看,需要這樣的東西,跨國(guó)公司也需要銷售這樣的產(chǎn)品來代替Bad
EJB2。 在開源解決方案中,Spring + Hibenrate是商業(yè)解決方案的良好開源替代方案。 他們沒有直接競(jìng)爭(zhēng),而是互補(bǔ)的關(guān)系。
這里更令人尷尬的是JDO:JDO是一種商業(yè)產(chǎn)品(當(dāng)前尚無良好的開源實(shí)現(xiàn)),因此開源應(yīng)用程序?qū)?duì)此不感興趣。
JDO沒有像EJB容器這樣的去管理環(huán)境,這導(dǎo)致商業(yè)解決方案對(duì)此不感興趣。 。
但是,對(duì)于JDO,我認(rèn)為它為EJB3和Hibernate形成了一個(gè)良好的競(jìng)爭(zhēng)環(huán)境,這是非常有益的。
2)客戶端技術(shù)
確切地說,它是RIA應(yīng)用程序。 盡管我早些時(shí)候?qū)AML做出了積極的評(píng)價(jià),但我認(rèn)為以前的一些結(jié)論是錯(cuò)誤的。 在這段時(shí)間之后,我覺得即使多年以后,XAML也不是一個(gè)非常成功的解決方案。 原因有兩個(gè):
1。 XAML將帶來比ActiveX更嚴(yán)重的安全問題。
XAML本質(zhì)上是本地應(yīng)用程序。 盡管它聲稱能夠在IE瀏覽器中運(yùn)行,但I(xiàn)E只是皮膚。
XAML應(yīng)用程序具有對(duì)本地資源的完全訪問權(quán)限(即使IE限制是無用的,IE限制也是功能的損失,在這種情況下,該功能將不會(huì)超過Javascript;如果不受限制,則可以執(zhí)行任何操作)。
只要IE能夠運(yùn)行XAML,黑客就可以非常容易地通過IE進(jìn)行入侵,這僅需指導(dǎo)用戶就不知不覺地訪問了惡意網(wǎng)頁,就可以了!
用戶必須面對(duì)一個(gè)選擇:要么禁止IE運(yùn)行XAML的功能,要么隨時(shí)接受遭受攻擊的危險(xiǎn)。。
2。 XAML應(yīng)用程序本質(zhì)上是RIA應(yīng)用程序,因此必須進(jìn)行許多RPC調(diào)用。
當(dāng)前,XAML使用XML
Web
Services進(jìn)行通信,這是效率低下的RPC。 在當(dāng)前的XAML情況下,我還沒有注意到RPC字段。
實(shí)際上,根據(jù)我目前進(jìn)行RIA的經(jīng)驗(yàn),RPC絕對(duì)不是一件容易的事。 有許多問題需要考慮,您需要在客戶端和服務(wù)器上完成全部操作。
特別是服務(wù)器端域?qū)ο竽P偷脑O(shè)計(jì),并且我們知道dotnet尚未在O / R
映射中啟動(dòng)。
從當(dāng)前階段開始,有兩個(gè)最實(shí)用的解決方案可用:
1,AJAX
實(shí)際上,它是基于XMLHTTP的JS異步交互,已經(jīng)存在了很多年。
。 是的,最近隨著Google應(yīng)用和Sun
Blueprint的推出,它變得很流行。 我本來對(duì)這件事持消極態(tài)度,但后來改變了。
我最初的否定態(tài)度的一個(gè)前提是:XMLHTTP缺少成熟的組件庫! 但是我沒想到的是,自去年下半年以來,XMLHTTP迅速增長(zhǎng)。
AJAX應(yīng)用程序的最大優(yōu)勢(shì)是可以充分利用現(xiàn)有資源。 我認(rèn)為它應(yīng)該是RIA應(yīng)用程序的首選。
2,F(xiàn)lash
Flash的優(yōu)勢(shì)也顯而易見,它具有強(qiáng)大的AS支持,強(qiáng)大的組件可視化設(shè)計(jì),強(qiáng)大的交互功能和令人眼花user亂的用戶體驗(yàn),并且Flash
Remoting It 也很成熟。 Flash的缺點(diǎn)是,盡管Flash嵌入在網(wǎng)頁中,但它與網(wǎng)頁之間沒有數(shù)據(jù)交互功能。 Flash的另一個(gè)缺點(diǎn)是,它不適合處理大量文本內(nèi)容(最適合HTML)。 現(xiàn)在有些人開始濫用Flash。
因此,更好的方法可能是將兩者混合使用。 通常,不會(huì)將過于復(fù)雜的交互提供給AJAX,而將非常復(fù)雜甚至需要拖動(dòng)操作的交互提供給Flash。
總結(jié):
服務(wù)器端技術(shù)Java在軟件開發(fā)領(lǐng)域是主流,有兩條技術(shù)路線,一條是EJB3,另一條是Spring + Hiberna。te,此外iBATIS也有一個(gè)地方; 客戶端技術(shù)是AJAX和Flash。
第二,數(shù)據(jù)庫技術(shù)
基本上,模式不會(huì)改變很多,Oracle仍然是高級(jí)的,SQL
Server進(jìn)一步蠶食了NT平臺(tái)上其他數(shù)據(jù)庫的領(lǐng)土。
在開源方面,MySQL將脫穎而出,但是開源數(shù)據(jù)庫仍然有很大的差距,在很多方面都無法與商業(yè)數(shù)據(jù)庫接近。 這也使得商業(yè)數(shù)據(jù)庫的地位不可替代。
我將更加關(guān)注Oracle和MySQL。 面向?qū)ο蟮臄?shù)據(jù)庫仍不會(huì)改善。
3。 桌面編程技術(shù)
我仍然認(rèn)為對(duì)于桌面應(yīng)用程序,本地代碼的位置永遠(yuǎn)無法替換,因此我始終認(rèn)為XAML之類的事情的效率確實(shí)是一個(gè)問題。
Longhorn希望變得成熟,而在第一個(gè)版本中無法實(shí)現(xiàn)。
當(dāng)前的桌面應(yīng)用程序開發(fā)技術(shù)仍然是Delphi,但是我認(rèn)為Python是一個(gè)后起之秀,并且很可能在將來取代Delphi。