標籤:java 跨平台 語言 .net 跨語言
一、跨平台OR 跨語言
跨平台——JAVA
跨平台概念是軟體開發中一個重要的概念,即不依賴於作業系統,也不信賴硬體環境。
一個作業系統下開發的應用,放到另一個作業系統下依然可以運行。相對而言如果某種電腦語言不用修改代碼即可做到高度跨平台,那麼此語言就越抽象,硬體控制力就越低,只適合開發高度抽象的模型系統。諸如java,delphi和易語言,都已做到了跨平台。它們將可以在多種系統下開發,運行和維護。
廣義而言,一般的計算語言都可做到跨平台,開發商只需要提供各種平台下的Runtime/中介軟體環境即可。嚴格而言是指用某種電腦語言編製的程式只需要做小量的修改,編譯之後即可在另外一種平台下運行,此時並不提供Runtime/中介軟體環境。例如Java是一種提供Runtime環境的跨平台解決方案,而C是一種標準且嚴格的跨平台語言。
跨語言——.NET
跨語言的平台是指.NET是微軟為了抗衡Java做出的對策。它包括了很多種以前的語言,比如J#,C#,C++,意思就是以前的老語言在.NET平台上都可以用,而未來程式的發展方向是跨語言平台,就是同樣一個系統,可以是java寫的也可以是c#寫的,同樣也可以是java和C#共同在運行,這個也就是跨語言平台。
VS
通過跨語言編程,可以用另一種方法來實現跨平台,試想一下。UNIX環境下,用C寫的程式,可以通過在WINDOWS下再編譯一下就運行,而不用作任何改過,這不是跨平台嗎?只不過它需要重新編譯一下而已。而且,我認為,由於各種平台在運行環境上的不同,要想象java那樣用同一種語言來實現跨平台,它的效率是很難比得上專為特定平台設計的語言的。
所以我覺得跨語言的實現方法,會比單語言跨平台的方法更加有效。當然唯一的缺點就是我們要學習多種語言。
跨平台還是跨語言,我的觀點是必須從不同的角度來看問題,我個人認為從開發人員的角度應該是跨語言重要(不是說跨平台不重要)。從使用者的角度,那麼就使跨平台重要了,作為使用者,他們希望購買的軟體可以不做任何修改就可以運行在不同的平台。
總結
通過在軟考複習中學習的“程式設計語言”,自己淺顯的對跨平台和跨語言進行的理解如下,歡迎大家指正:
相同:第一次編譯都是產生各自的“位元組碼”,與機器無關。
都需要運行平台上安裝“運行環境”,java是JVM(Java虛擬機器),.NET是需要.NET Framework .
不同:JAVA 的第二次編譯在JVM中自動進行。
.NET 的第二次編譯需要手動執行。