看了阿西摩部落格的這一篇文章 JavaScript ≠ Java 後, 我還是忍不住有話要說 XD
下面這六點是作者阿西摩自己對 JavaScript ≠ Java 的解釋: (在每一點後面附上我的看法)
1. JavaScript 只要有一個網頁跟有支援 JavaScript 的瀏覽器才可以執行。而 Java 語言呢,只要程式內沒有使用什麼特殊平台的 library,經過轉譯後的 class 檔,幾乎可以放到任何已經安裝有 Java Runtime 環境的系統上。比方說,我在我的 Windows 上開發轉譯後的 Java 程式,可以放到 UNIX, Linux, OSX 上執行,都不會有太大的問題。
換句話說 Javascript 只需要一個瀏覽器, 不管是 Netscape, Mozilla, Firefox, IE, Opera, Camino, Safari 甚至 Links 2 也都有支援 Javascript, 那麼不管是 Windows, UNIX, Linux, Mac OS X 都有瀏覽器, 所以這一點比的是支援度? 那麼 Javascript 比起 Java 的”不會有太大的問題”來說, Javascript 好上很多。
2. 最原始的 JavaScript 能操作跟執行的範圍相當有限,比方說,你如果要讀取本機端的檔案,比就必須搭配 JavaScript extension 還有 ActiveX 之類的附註程式才有可能達稱。而 Java 可以輕鬆的使用 Java 原本的 package 去讀取檔案,更改檔案。
這個比喻?? 這例子根本不能這樣舉吧! 那我也來舉個例子: 例如用 C/C++ 要來做指標的操作, Java呢? Java 根本沒有指標阿! 連擴充的方式都沒有(這可能是我才疏學淺, 有的話請指正我一下), 那這要怎麼比?
3. JavaScript 當年是 Netscpae 開發出來用在 Netscape 上,讓原本死板板的 HTML 網頁可以又動態的變化,互動,還有驗證輸入等等的功能。而 Microsoft 呢,運用他們最厲害的 Reverse Engineering 把 JavaScript 學了起來,然後自創了 JScript. 而比起 JavaScript,Java語言,有自己的標準,架構,平台,而且複雜度高上太多太多了,所能應用的範圍更是會把 JavaScript 巴到連渣都不剩!
就是因為 Java 這類的語言太複雜, 所以才會有 Scripting Language, 如果說我只是為了要在網頁上swap 圖片, 我想..用 Javascript 來寫不用一分鐘吧, 那麼 Java applet 呢? 最少也要花上2~3倍的時間吧? import ? addEvent ? addListener? 加上 compile? 我只是要 swap 個圖片而已。
4. JavaScript 是一種非常不嚴謹的腳本語言。在 JavaScript 裡面,變數全部都用 var 宣告,如果你這樣在 Java 裡面寫程式,我跟你保證,Java compiler 會不斷的,一直的給你[舉紅牌]!
這點我也可以保證, Javascript 是一個不嚴謹的語言, 但是不管是用 B, C, C++, Objective C, PHP, ASP, ASP.NET, C#, Python, Ruby …. Java compiler 仍會不斷的一直給你舉紅牌。呵, 不過我想作者的原意是在指出 Javascript 的不嚴謹, 但是舉的例子很糟糕。
5. 我可以用 Java 語言,在 Java Server Page (JSP)上動態產生 JavaScript 語言,並且執行,而你想要用 JavaScript 去寫 Java語言!? 嗯,還是不要沒事找自己麻煩的好!
這個比喻?? …還是很糟糕, 就沿用我第3點所舉的例子, 用 Java 來寫? 還是不要沒事找自己麻煩的好。
6. 總之,JavaScript ≠ Java 你是要我說多少次才會聽懂啦!
這我百分百贊同作者!
這篇文章的用意, 只是想說一下, 每個程式語言都有他的應用的地方, 並不是說 Javascript 不嚴謹、應用範圍不廣, 就是 Java 被巴到連渣都不剩! 當初的 Java applet 紅透半邊天, 但是現在卻是 AJAX 當道。現在的 Java 應用是真的很廣, 如: 手機遊戲、電冰箱…等等,還有很多,但是現在人家真的要製作網頁上的動畫, 人家當然用 Flash + Actionscript, 而不是用 awt 在那邊苦的要命, 在 Linux 下作 routine task 用 shell 或 perl, 在 Mac 下也可以用 Apple script, 寫 kernel 用 C/C++,大部分的情況當然都可以用 Java 來取代,但是,還是不要沒事找自己麻煩的好。
並不是 Scripting language 簡單、不嚴謹就一無是處的阿!
另外可以看一下底下兩篇文章:
YHH 大大的說得真是太好了
thegiive 的 Scripting Lanuage 就比較不專業?
9 Comments until now
何必跟白目一般計較?
我是不知道有人可以寫出對於Scripting Language那嚜侮辱的文章後,還可以自稱說只是想教大家兩者不同
我真好奇該文作者是哪邊了不起的程式設計師呢
嗨,終於看到你的網站上線了~~
其實哪種語言,只要有用的程式就是好程式~~
新年快樂~~
to 道格老師:
呵, 他應該是一氣之下, 想要寫出一篇可以讓非程式設計者, 可以清楚分辨出什麼是 Java, 什麼是 Javascript 吧!?
只是舉的例子很爛罷了 XD
to Michael:
我的網站一直都在線上阿, 只是….前幾天才去更新了我的blogger XD 之前用家裡ADSL架的, 後來沒多久就又換成虛擬主機了, 可能後來你沒來看的時候我就做轉換了吧 :p
其實一直都 online XD
Dear Sir,
請教一下
javascript at html
如何去讀取C:\LogFile.txt
內資料??????
我用ActiveX物件如下所示
但網頁執行出錯
function ReadFromFile(){
var srcvd = 0;
var sText = “”;
var fso = new ActiveXObject(”Scripting.FileSystemObject”);
var FileObject = fso.OpenTextFile(”C:\\LogFile.txt”, 1); // 8=append,
true=create if not exist, 0 = ASCII
sText = FileObject.readall();
var address = sText.split(”;”);
showAddress(address);
FileObject.close();
}
to Fuji Wu:
哈囉, Javascript 沒有辦法存取 client 端的檔案喔~
你這個是 ActiveX 並不是 javascript 內~ ActiveX 完全不懂~
不小心看到這篇往回看到原始網頁去,一不小心就又看到其他東西。
不知不覺又過了快二個小時@@
哈哈哈, 這篇…很 XD
其實我已做出答案
javascript可以讀client端檔案
我看tzangms 烏合之眾罷了
to fuji:
呵, 太強了!
話說, 我本來就是烏合之眾 XD 很弱阿!
Add your Comment!