此話怎說?舉例而言,IE使用不符合W3C規範的CSS呈現特效,使用很近似但其實還是與JavaScript有別的JScript,或者因為擅改JVM而導致正統Java Applet無法相容且正確地執行等,這些都還是小問題,真正的大問題在於ActiveX。許多企業運用ActiveX來開發自用的網頁型用戶端應用程式,這些程式幾乎完全無法在非IE的瀏覽器上執行,不僅是Mozilla/Firefox,就連挪威的Opera、KOffice中的KOnqueror/Safari(Apple以KOnqueror為基礎所自研的Mac用瀏覽器)等都無法執行,這正是企業非持續死抱IE的原因。
什麼是ActiveX?
想了解ActiveX的故事,且讓我們穿越時光隧道,回到1995年。ActiveX可以說說這是Microsoft為了抵制1995年的Java Applet而提出,Java Applet是小型的Java應用程式,只要替Netscape Navigator瀏覽器加裝Java外掛程式(Java Plug-In),就可以在瀏覽器內點擊(click)網頁連結的方式,下載應用程式到用戶端的瀏覽器內,並在瀏覽器內執行,而在此之前瀏覽器的功用除了瀏覽之外還是瀏覽,純粹是多媒體式的資料、文件閱讀器(Viewer、Reader)而已,而不是一個軟體執行平台。
由於Netscape Navigator瀏覽器有跨平台的特性,不光是Windows PC,就連OS/2、UNIX、Mac等各式電腦都可以安裝與使用Netscape Navigator,如果瀏覽器不再只是個多媒體網頁閱讀器,透過Java Plug-In而成為一個應用程式執行環境時,那麼使用者就沒有必要非用Windows PC,因為程式可以在任何電腦上使用、執行。
這個推論並無錯誤,但似乎言之過早且過於理想,加上當年此推論被矽谷的知名媒體過譽報導,以致Microsoft大為緊張,深怕Windows的高佔有率優勢一夕盡失,因此推出IE 2.0後不僅可相容執行Java Applet,還能夠執行Microsoft自行提出的ActiveX,ActiveX的運用原理與Java Applet相似,兩者處於完全競爭、抗衡的局面。
後來,Java Applet後續的走勢並不佳,反而是ActiveX逐漸抬頭。初期許多人學習Java Applet只是為了以程式方式讓網頁有更好的動畫效果,並非真的希望用在程式開發,並且Sun與協力軟體業者也遲遲無法推出方便(尤其是所見即所得)的Java Applet開發工具,以致於學習Java Applet的人多在後期轉投靠Macromedia的Flash。
另一個放棄Java Applet的理由也是由於Microsoft作梗,Microsoft雖取得Sun的授權而能在IE上使用Java Plug-In,以便執行Java Applet,但之後Microsoft自行修改與添加JVM及Java開發工具(Microsoft J++),如此以Microsoft方式開發成的Java Applet只能在IE上執行,失去了在其他非IE瀏覽器上正常執行的能力,Sun因此於1997年一狀告上法庭,數年後Sun勝訴,獲賠10億美金。
被微軟改造過的Java Applet不良影響還不僅如此,其他問題包括執行Java Applet須耗用較多的運算資源、執行過慢、配套函式庫與API不夠齊備等,導致Java Applet愈來愈少人使用,反倒是ActiveX獲得開發者的青睞。
ActiveX可裝不可停,可停不可移
雖然ActiveX打敗了Java Applet,但不表示Java Applet全然遜於ActiveX,至少在安全性上比ActiveX優異。Java Applet的執行環境具有一個「sandbox」的安全機制,倘若Java Applet應用程式試圖自行進行用戶端的I/O存取,就會被sandbox先行阻隔禁止,以策安全,這是ActiveX缺乏之處。(註一)
那麼,企業到底在何種地方使用ActiveX呢?包括一些視訊保全的觀看、軟體版本的線上查核與更新、線上掃毒、網路管理等,不勝枚舉,上述這些還是軟體業者所提供的套裝應用程式,至於企業自身的撰寫開發更是不在話下,若改用IE以外的瀏覽器,等於是放棄上述這些軟體的購置、開發等投資。
因為已投入及慣用ActiveX而無法放棄IE還算事小,更嚴重的是ActiveX為今日常見的資安漏洞,許多前端使用者粗心大意,輕易准允遠端不明的ActiveX軟體之下載、安裝、執行,導致電腦遭癱瘓、入侵。這樣的苦惱問題一直到Windows XP Service Pack 2出現後才有解,SP2允許使用者在IE中自行操作與指定哪些已安裝的ActiveX軟體(也稱附加元件)當停止執行,以此確保安全性。
不過,這就筆者來看,這個安全似乎相當遲來,1996年提出的ActiveX,一直到2003年的SP2才能防範,甚至用更高標來看,IE截至目前為止都不允許使用者自行將已下載安裝的ActiveX程式進行移除(Uninstall),只能封鎖不予執行,這樣的防範似乎還是太消極。(未完待續)
註一:依然有許多網頁型應用程式是使用Java Applet來運作,如ICQ2Go(ICQ的網頁型即時傳訊)、WinVNC(網頁型遠端遙控軟體)、股票的成交回報跑馬燈等。
註:顏國偉是CNET投稿作者,為自由作家,專精於IT軟硬體報導寫作。


18.匿名 於 2007/08/26 08:58 回應
Great sie17.USER 於 2005/05/23 11:54 回應
SUN和MS都結盟了,你們還在吵資訊產業瞬息萬變,誰能滿足用戶的心,誰就勝出,可惜你們這些人看不清,還兀自吵個不休,殊不知,明日一覺醒來,產業可能已然變天。
NS帶動WWW風潮,自然是人人用NS,昨天NS敗給IE,天色慢慢變成IE,今天IE不安全,我們改用Firefox,明天又是怎樣的光景,你知道嗎?
16.jack 於 2005/05/21 18:26 回應
Netbeans or Eclipse ?連結
15.Test 於 2005/05/20 17:10 回應
不知所云不懂還要當專家
14.anonymous 於 2005/05/20 16:58 回應
你懂什麼啊?1. Borland 已經要放棄原有Jbuilder, 改成寫eclipse plug-ins.
2. WebLogic Workshop是bea 重新開發, 不是由visual cafe改名
3. 你拿netbeans 4.1 去跟eclipse 3.1比比, netbeans 4.1 有ejb, webservices, gui form dev, 更重要還有ant support. eclispe 怎麼跟netbeans 比
13.XML_P 於 2005/05/20 10:41 回應
ActiveX還是比較方便ActiveX比applet方便的地方是可以直接呼叫windows api, 效能也比較好; 比起來,JNI的開發步驟麻煩了些;
而且會用到ActiveX的網頁專案通常是有需要用到windows API才會去寫ActiveX, 不然誰不喜歡網頁越單純越好,最好不用安裝任何東西就可執行.
選擇上, 與windows API結合密度高的ActiveX還是比JNI好用.
12.無奈 於 2005/05/18 14:03 回應
看期間吧..向好的地方看我想要看時間點 會比較客觀一點
有些人花很多時間去了解JAVA當然會覺得什麼都作的到
但應用並不是要往難的地方發展,而是如何簡便
因此在當時 java確實是比較難入門 我們要對一般大眾
來說是如此呀!
各位先進想想 如果站在商業角度 java 如果變的人人都會,人人都深入,那你的價值在那?
再說activeX 及 java applet 都是 M$ & Sun 的一個商業Game 對與作設計我們 只能在他們Game上打滾
所以說我希望在這個論壇上,我們不如去發表如何去解決問題,也告訴大家現在 java 可以作什麼了 有什麼好用工具,及如何改善 activeX 相關問題
我想用心學程式人 不管 java也好 寫 activex也好 都是去寫的!
也看到很多人說Microsof 不好 但用心去想想 M$ 已經很有錢了,為何要去打壓別人遊戲規則?
如果那天M$ 說我要收起來了 想想全球經濟會如何動搖
,當經濟動搖 介時就算 Java 也好 Linux也好 我想都可能成為泡沫, 何以見得? 當經濟環境發生問題,影響最大就是企業,而企業發生經濟有問題時,還要用電腦嗎?
有多少人會失業呢? 如果 java還在 那些不作 M$ 人都
來作 java 設計 用 linux 哈.. 我想設計人員可能比當助理都不如呀!
11.瀨戶內海 於 2005/05/17 17:31 回應
感嘆Java後輩不知Java初創時的跌撞辛苦Java剛開始本來就很差,JVM執行效率差,配套開發工具差,可用的類別函式庫不豐富,,一直到1998年的Java2跟JIT Compiler出現,以及1999年的J2SE 1.3等才漸入佳境。