<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    每日一得

    不求多得,只求一得 about java,hibernate,spring,design,database,Ror,ruby,快速開發
    最近關心的內容:SSH,seam,flex,敏捷,TDD
    本站的官方站點是:顛覆軟件

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      220 隨筆 :: 9 文章 :: 421 評論 :: 0 Trackbacks
    一、軟件開發技術

    1)服務器端

    在最近5年內,Java還是主流,不光是因為當前的普及程度和遺留系統問題,而且除Microsoft幾乎所有大公司都投資到Java上面的原因,此外開 源也是一股無法忽略的力量:除了Java方面的開源框架在推動Java,也有Linux在帶動java企業應用在普及(別忘記dotnet只能在 Windows Server上面運行)

    dotnet有自己的優勢,但是在五年內無法和Java取得均勢,不光是因為Java普及帶來的優勢,也不光因為開源界對java的推動,也不光 因為其他大公司在java上面的投資,而是很多公司的行業性質決定了dotnet的出局,例如電信行業,金融行業,電子政務行業等等,是根本沒有可能采用 dotnet的。

    Python和Ruby算不上后起,但是很有競爭實力,不過基于上面的原因,仍然不能成為主流。

    在Java服務器端技術中,清晰的分為兩條路線:高端的商業路線,這條路線是EJB3,J2EE5.0;低端的開源路線,這條路線是 Hibernate, Spring。這兩條路線也有重疊的地方,例如開源的Struts幾乎成為J2EE Web層的標準,開源的Hibernate奠定了EJB3的基礎。但是劃分路線不是基于技術上的區別,而是基于商業運作上的區別。注重技術支持和商業服務 的公司會選擇前者,注重成本控制和選擇自由的公司會選擇后者。

    商業路線的技術方案是:EJB3+Struts;
    開源路線的技術方案是:Spring+Hibernate+Struts/Webwork

    Struts是一個很成功的開源框架,它的地位短期內還無法動搖,JavaEye有一項使命,就是動搖Struts在Java Web領域的地位,把它趕下王座,把Webwork扶上位!

    商業的Web層技術,JSTL算是一個不錯的東西,但是和靈活的模板語言如FreeMarker相比,卻有很大的差距。JSF基本上是一個沒有前途的東西。商業Web層技術因為一直沒有出現好的應用,這樣也導致了Struts的上位。

    服務器端業務層和持久層框架,我非常看好EJB3,原因也不用多談了,從商業上來說,需要這樣一個東西,跨國公司們也需要這樣一個產品來賣,來取 代糟糕的 EJB2。開源的方案里面,Spring+Hibenrate是一個很好的商業方案的開源替代,他們不存在很直接的競爭,而是一個互補的關系。這里比較尷 尬的反而是JDO:JDO是商業產品(目前沒有好的開源實現),造成開源應用不會對它感興趣,JDO沒有一個像EJB容器那樣的脫管環境,造成商業方案對 它不感興趣。不過有了JDO,我覺得是對EJB3,對Hibernate形成一個良好的競爭環境,這一點是非常有利的。

    2)客戶端技術

    準確的說是RIA應用。雖然我前面對XAML進行了正面的評價,但是我認為我前面有些結論給錯了。經過這段時間,我覺得,XAML即時在多年之后,也未必能夠成為一個非常成功的解決方案。道理很二:

    1、XAML會帶來比ActiveX更嚴重的安全性問題。
    XAML本質上就是一個本地應用程序,雖然號稱可以在IE瀏覽器里面運行,但IE就是一個皮而已,XAML應用具備對本地資源完全的訪問能力(就 算IE限制也沒有用,IE限制就喪失功能,那樣的話,功能并不會比Javascript來得更多;不限制的話,就為所欲為了),因此只要IE具備了運行 XAML的能力,黑客將可以非常輕易的通過IE進行入侵,這僅僅需要引導用戶在不知不覺中訪問一個惡意的網頁就搞定了!用戶必須面臨選擇:要么禁止IE對 XAML的運行能力,要么接受隨時被攻擊的危險。

    2、XAML應用本質上也是RIA應用,因此必須進行大量的RPC調用
    當前XAML采用XML Web Services進行通訊,這是一種低效的RPC。當前的XAML案例中并沒有注意到RPC領域,實際上根據我現在做RIA的體驗來說,RPC絕對不是一個簡單的事情,要考慮的問題非常多。

    從當前的階段來說,最實際可用的方案有兩個:

    1、AJAX
    實際上就是基于XMLHTTP的JS異步交互,這個東西已經出現很多年了,最近隨著Google應用和Sun Blueprint的推出開始火熱。我原來對這個東西持否定態度,但是后來轉變了。我原來否定態度的一個前提就是:XMLHTTP缺乏成熟的組件庫!但是 沒有想到的是,現在XMLHTTP從去年下半年開始,如雨后春筍般冒出來。AJAX應用最大的好處就是充分利用現有資源,我認為應成為RIA應用的首選。

    2、Flash
    Flash的優勢也很明顯,強大的AS支持,強大的組件可視化設計,強大的交互能力和很炫的用戶體驗,并且Flash Remoting也已經非常成熟了。Flash的缺點就是Flash雖然嵌入網頁,但是和網頁沒有數據交互能力,Flash另一個缺點就是不適合處理大量 文本內容(HTML最適合)。現在有些人開始濫用Flash了。

    因此比較好的方式可能是兩種混用,一般不過度復雜的交互交給AJAX,非常復雜,甚至需要托拽操作的,交給Flash。

    總結一下:

    軟件開發領域服務器端技術Java是主流,兩個技術路線,一個是EJB3,一個是Spring+Hibernate,此外iBATIS也有一席之地;客戶端技術就是AJAX和Flash。

    二、數據庫技術

    基本上格局不會發生多大變化,Oracle還是高高在上,SQL Server進一步蠶食NT平臺其他數據庫的領地。開源方面,MySQL將一枝獨秀,但是開源數據庫在很多方面還是和商業數據庫有無法拉近的巨大差距。這 也使得商業數據庫的地位不可替代。我會比較關注Oracle,MySQL這兩個數據庫。面向對象數據庫仍然不會有什么起色。

    三、桌面編程技術

    我還是相信一點,對于桌面應用來說,本地代碼的位置永遠無法被取代,所以我總覺得XAML那樣的東西效率實在很成問題。Longhorn要像成 熟,也不是第一個版本就可以達到的。當前桌面應用開發技術,還是首推Delphi,不過我覺得Python是后起之秀,非常有可能在未來取代Delphi

    初探在下一代 Windows 中編寫和部署應用程序
    http://www.microsoft.com/china/MSDN/library/windev/longhorn/DevelopAppLonghorn.mspx

    首先,以Microsoft公司的實力和Windows操作系統的占有率來說,Longhorn遲早會被普及,而XAML的開發方式也有可能普及的。記得 當初WindowsXP剛出來的時候,因為資源占用率和新的激活制度招致一片罵聲,但是慢慢的,現在也都接受了下來。由此可以推斷,Longhorn以其 更加豐富的桌面功能和誘人的外觀,會在將來成為主流。

    但是Longhorn什么時候才會全面普及,這是很值得琢磨的問題。WindowsXP是2001年推出的,在隨后的幾年,Microsoft采 用了一些商業手段來迫使用戶升級,例如企圖取消Windows98的技術支持,不再提供WindowsNT技術支持,不再銷售 WindowsNT/Windows98,將Windows2000保持在一個比較高的售價的同時,對WindowsXP推出優惠價格,讓 WindowsXP的售價低于Windows2000等等手段。但是直到現在,Windows2000仍然占據了非常高的份額,據我個人的觀察是比 WindowsXP略高。按照這種情況來推斷,Longhorn要普及,恐怕難度更大,非常多的用戶現在仍然是Windows2000的死忠派, WindowsXP推廣了四年還未能超過Windows2000,那么Longhorn究竟要幾年才能超過WindowsXP呢?我估計四年以上是起碼 的。

    XAML應用程序不同以往,它只能跑在Longhorn上面,甚至比Java和dotnet要求更嚴格,后者僅僅下載安裝一個運行環境就可以了, 但是前者要求你必須更新操作系統。XAML在IE瀏覽器中運行雖然肯定是下一代RIA的主流,但是不可忽視的問題是,只要Longhorn沒有徹底淘汰 Windows2000/XP,軟件開發商和網站開發商就不敢大面積采用XAML。而根據我的觀察,現在企業中,Windows98仍有少部分市場份額。 因此Longhorn必須要等待到徹底的,毫不殘留的淘汰Windows98,Windows2000,WindowsXP之后,才會全面普及,而在此之 前,不得不經歷一個漫長的過渡期。

    就好像現在,假設你開發桌面應用程序,你敢只針對WindowsXP開發嗎?而徹底不支持98和2000嗎?我想,沒有哪個軟件開發商敢這樣做。 除非 Windows2000幾乎被徹底淘汰了,你才敢這樣做,但是WindowsXP已經推出四年了,還沒有Windows2000占用率高,哪全面淘汰究竟 要幾年呢?再看看現在dotnet winforms應用,推出也已經五年時間了,但是到現在仍然沒有普及開來,根本的原因就是Windows2000/WindowsXP沒有預裝 dotnet framework。僅僅是需要打包安裝一個運行環境就使得winforms五年都推廣不了,更何況要求你升級操作系統呢?

    我個人的估計是,假設2006年Longhorn如期上市,那么將需要7-9年時間來徹底淘汰Windows2000/WindowsXP。 Longhorm上面XAML應用的初步普及也至少需要4-5年時間以后才會有軟件開發商大量去做(想向dotnet是2000年開始宣傳和推廣的,到 2004年開始普及,今年和明年才會全面普及)。因此,基于XAML應用的普及可能是在2010年以后!上面的估計中還沒有包括MacOS 和Linux在桌面會否有什么表現。

    先說說服務器端吧:

    從可預見的未來來看,服務器和客戶端TCP通訊的主流方式一定是HTTP協議(即時通訊軟件走UDP端口,不在討論范圍)。在基于HTTP協議之 上,又分為兩類:一類是SOAP協議,異構系統支持良好,但是性能很差,目前Microsoft很喜歡用這種方式;一類是輕量級二進制協議,例如 Flash的 AMF協議,Resin的Hessian協議。值得一提的是,不管哪種方式,他們都支持異構的系統,所以完全可用在客戶端采用dotnet,在服務器端采 用Java或者Python。因此,XAML的流行不會對服務器端技術產生致命的影響(肯定會提高dotnet的服務器的市場份額)。所以我們可用拋開客 戶端影響,單獨來看服務器端技術:

    1、Java
    Java是當前服務器端技術當之無愧的王者,在未來五年內,也不會有任何動搖(受到dotnet和python的影響,市場份額會下降一些)。 Java特別有利的一點是,現在有太多的現存系統基于Java,這些系統都不會輕易遷移到其他平臺上。另外還有一個決定因素是除了Microsoft之外 的幾乎全部 IT大公司都在Java方面的投資巨大,放棄Java對他們來說也意味著沉重的打擊,甚至毀滅性的打擊。這些公司可以列很長很長,IBM,HP, Oracle,SAP,Sun,BEA,Macromedia等等。

    2、dotnet
    由于Microsoft的影響力,dotnet會成為為僅次于Java的第二大服務器端技術,但是Microsoft有一個隱憂,就是Linux 操作系統在服務器端的高速成長。雖然現在Linux在整個服務器端市場的出貨量只有13%左右,但是成長率驚人,根據我看到的資料顯示,到2008年,將 占據 25%以上的市場份額。考慮到很多公司是自己安裝Linux,因此不會被硬件服務器廠商統計進來,因此Linux的服務器端的市場份額應該比25%高一 些。并且現在主要的服務器廠商都對Linux有非常巨大的投入和支持,這些公司包括IBM,HP,Dell(只有Sun不支持),因此Linux在未來會 對Windows在服務器端的市場構成最嚴重的威脅。

    不要忘記dotnet只能在Windows平臺上面跑,雖然有mono,但是你不可能移植MTS,COM+,SQL Server etc。所以只要Linux在服務器市場對Windows構成持續的威脅,dotnet就不可能超過Java,Java的地位還是穩穩的老大。從某種程度 上來說,Java的命運是和Linux聯系在一起的,只要Linux在服務器端不輸于Windows,Java就穩穩壓制dotnet。

    BTW:從未來來看,Linux和Windows會在低端和中端服務器市場成為主要競爭對手,由于各自都有其不可替代性,所以雙方都不可能徹底消滅對方,最大的可能性是Linux和Windows平分市場,或者Windows市場份額略高一點。

    3、Python
    我個人認為Python會成長為第三大服務器端技術,Python成長于開源,但是又有商業公司來商業運作,并且背后還有大公司的支持,在歐洲普 及的非常好。當然最重要的原因是我覺得Python在技術上非常先進,并且技術發展方向上比較統一,不會出現Java那種吵架的事情。

    4、PHP
    PHP這東西是不錯,Yahoo也在用,IBM現在也對他感興趣,但是我還是要說PHP沒有太廣闊的前途,原因很簡單,PHP沒有服務端中間件, 例如 Java有App Server,dotnet有IIS/MTS,Python有Zope,但是PHP他就是一個腳本,沒有自己的中間件就是致命問題。Yahoo用PHP有 其特定的原因,主要是從原先自己的技術遷移到PHP很方便,而IBM支持PHP,顯然醉翁之意不在酒,IBM意不在推廣PHP,而在于爭取到那些使用 PHP的商業大客戶們,向他們賣服務。

    BTW:感覺歐洲用Python/PHP的很多,似乎開源在歐洲非常深入人心。

    從服務器端技術來說,Java還是我們最需要下功夫去學習和掌握的,此外,我會比較傾向于鉆研和應用Python,而不是dotnet。原因也很 簡單,跟隨Micorsoft的技術會很辛苦,Microsoft產生的新概念多,他總是會猛的推出n多種技術,然后讓他們在市場上自己生存,最后根據市 場反饋,無情的拋棄某些東西,大力推進有市場前景的東西,這樣的例子太多了,舉不勝舉了。我的感覺就是這種方式會讓Microsft經過市場嘗試在技術競 爭中篩選最優秀的技術,但是對于Microsoft技術的跟隨者來說,未免有點太不公平,整天吭哧吭哧被Microsoft拿來當免費的試驗品來用。我特 別不理解的是MSDN宇宙版,Microsoft總是把無窮無盡的文檔灌給你,讓你永遠學不完,但實際上我真的不需要那么多概念,我只需要能夠很好的完成 我工作的技術,并且這個技術可以持續的完善就好了。而不是今天給我這樣一個東西,明天灌給我無窮的文檔,后天當我用順手以后,又告訴我這東西作廢了,你給 我重新學習新東西,然后又是無窮的文檔,總之很惱火。

    所以就是:重點學習Java,有時間去學習Python,保持對dotnet的關注即可。


    客戶端:

    前面說了那么多XAML的東西,都是和這有關,七年以后肯定是XAML的天下,但是五到七年之內還不是:

    1、Java
    Java在客戶端真的是扶不起的阿斗,這都怪Sun。Sun造就了Java的成功,又一手毀了Java在客戶端的市場。那些個Swing和SWT 的死忠團也不要和我爭什么,我也懶得和你們爭,你們覺得好就好吧,道不同不相與謀,你覺得好你就用你的,我覺得不好我就用別的。用不著纏著我非逼我說 Java做客戶端好,沒必要,況且就算你逼我承認又怎樣?我就是玉皇大帝金口玉言了?得到我的承認,Java就有前途了?我好像還沒有那么大本領吧?就是 IBM, Sun也沒有那么大本領,所以好不好也不是我說了算,用不著逼我。

    2、dotnet winforms
    由于Windows2000/WindowsXP不帶dotnet CLR,所以winforms一直沒有能夠普及得很好,等Longhorn一出來,又變成了XAML了,winforms又被淘汰了,所以 winforms的地位特別尷尬,但是在這5-7年中,你想開發既能夠在Windows2000/WindowsXP,又能夠在Longhorn上面跑的 桌面程序,winforms好像又是Microsoft技術中最好的選擇。所以只好一直尷尬下去。

    3、VC,VB
    dotnet出來以后就開始尷尬了,說用吧,好像很落伍了,都dotnet時代了,說不用吧,又沒有好的替代品,現階段開發桌面程序,還真得不得不用,而且還挺好用的。所以VC6SP5,VB6的死忠團也比較多。

    4、Delphi
    dotnet出來以后Borland就開始跟風了,這一跟風,連老本都跟沒有了。未來的XAML時代,我也不知道Borland怎樣找自己的定 位,但不管怎么說,從歷史來看,本地代碼的應用程序永遠有它一席之地!就算XAML又如何如何做得漂亮了,關鍵的地方,和特定資源處理相關的部分,還是本 地代碼的程序管用。你看VB出來多少年了,用VB開發的都是一些上層的項目級別的應用軟件,一旦涉及產品領域,還是VC和Delphi管用。所以現在大家 還是不得不用Delphi7阿。

    BTW:XAML應用致力于快速開發項目級別的應用,特別是可以跑在IE瀏覽器里面的,因此是RIA的首選。但是畢竟也有很多不適合用RIA的場 所,特別是例如我要備份某些文件,你用XAML?那性能就不用提了。所以Delphi如果好好發展VCL,封裝Windows32 API,我覺得也是一條路,未必比現在跟隨dotnet差。

    5、Flash RIA
    其實我覺得Flash不適合做RIA的,但是Flash普及率太高,XAML又離普及太遙遠,而Flash現在就可以用了,所以是當前RIA的首 選。不過我對Macromedia公司比較失望,如果Macromedia能夠公布Flash實現細節,作為一個公開的標準向ISO提交,同時免費開源 Flex,我敢說,Flash RIA會迅速普及的。等5-7年XAML的時代,由于Flash的市場占有率,XAML就未必能拼得過Flash。可惜的是Macromedia公司目光 過于短淺,只知道賺眼前的小錢。

    6、Python
    這5-7年內,RIA應用和RCP應用不會統一,XAML才具備將RIA和RCP統一的實力。從這5-7年來看,Flash是RIA的首選,而RCP的首選,我要推薦Python。原因前面已經提過,簡單總結一下:
    1)wxWidgets是一個比MFC優雅的庫,TortoiseCVS用wxWidges而不用MFC,就是因為wxWidgets好用,而不是為了可以移植。
    2)Python的面向對象腳本語言編程適合快速界面開發
    3)Python在服務器端和客戶端都非常有前途,可以形成一個統一的解決方案,這一點明顯比Java有優勢
    4)Python桌面應用程序可以完全編譯為本地代碼,脫離Python運行環境,這一點比dotnet winforms都有優勢
    5)Python可以不受限制的任意調用Windows32 API,所以凡是VC6可以做的事情,Python就可以做

    試想一下,現在我們開發桌面應用程序有什么要求?
    一、不要附帶一個JRE或者CLR的累贅
    二、可以快速開發
    三、性能要有保證
    四、方便的遠程方法調用支持
    此外如果能夠跨平臺就最好了

    Java前三點都不符合;dotnet winforms不符合一;VC6不符合二和四,VB6不符合三和四;Delphi7符合前四點;Flash RIA不符合三;Python全部都符合!并且請記住Python是一個完全開源免費的方案!

    客戶端技術在這5-7年中,在RIA領域我會學習一下Flash,在RCP領域我會重點學習Python,此外會觀望一下XAML。

    posted on 2006-08-13 19:24 Alex 閱讀(381) 評論(0)  編輯  收藏 所屬分類: java
    主站蜘蛛池模板: 99久久这里只精品国产免费| 亚洲一级毛片在线观| 热99re久久免费视精品频软件| 人碰人碰人成人免费视频| 国产成人亚洲综合网站不卡| 亚洲第一福利视频| 国产成A人亚洲精V品无码性色| 亚洲精品国产成人影院| 日本黄色免费观看| 天天操夜夜操免费视频| 免费看国产成年无码AV片| 亚洲精品免费在线视频| 久久99热精品免费观看牛牛| 两个人看的www免费视频| 精品在线观看免费| 国产精品久久久久久亚洲影视| 2017亚洲男人天堂一| 亚洲免费视频网址| 亚洲精品国产第1页| 久久精品国产亚洲AV无码麻豆| 国产亚洲精品资源在线26u| 久久久久亚洲AV无码专区网站| 免费一级毛片一级毛片aa| 国产精品冒白浆免费视频| 日本高清免费不卡视频| 全免费一级午夜毛片| 免费无码又爽又刺激毛片| 成人免费在线视频| 啦啦啦www免费视频| 国产在线19禁免费观看| 午夜亚洲福利在线老司机| 亚洲日韩国产成网在线观看| 亚洲精品A在线观看| 国产亚洲AV手机在线观看| 亚洲熟妇无码AV在线播放| 亚洲国产精品VA在线观看麻豆| 久久精品国产亚洲AV麻豆~| 久久亚洲精品成人AV| 亚洲国产福利精品一区二区| 日本亚洲免费无线码 | 日韩精品免费一线在线观看|