精華區beta Programming 關於我們 聯絡資訊
※ 引述《GP03.bbs@aeug.twbbs.org (Gundam Pilot)》之銘言: : 這論點....其實有點怪怪的地方 沒錯,後來我自己看也覺得怪怪。>_< 因為我把 .NET 和 Java 看成同一種架構,忘記他們 之間是有差別的。 : 首先 .Net是一個開放的平台.也就是無論是誰都可以去實做他 : 只要您實做出的東西符合.Net的規範都可 : 所以並不會說M$出的.Net才是完整的.Net別人出的就不完整 我所謂的完整,是指是不是有實作出所有規範的裡的東西與 相關的函式庫,以這部份來看的話,目前的 MONO 與 Free Java 確實都不夠完整(至少與官方的比較)。 像以 MONO 來講的話,進到他的網頁的 Task 那像,會發現 在 Class Library 那項裡面,有很多都是還沒做的。 因此如果有一隻 .NET 的程式,用到那些功能,是沒有辦法 在 MONO 上面跑的。 Free Java 也有同樣的問題,例如 Java 後 1.4 跳到 1.5, 但目前的 Free Java 平台有好些 1.5 的功能沒有實作出 來,因此如果用到這些功能的 Java 程式,一樣不能夠在 Free Java 的平台上跑。 但好一點的是 Sun 的 Java 本身在各大平台就都有出官方 的 VM ,所以至少在各大平台上是能夠完整執行大部份的 Java 程式的。 所以,就目前的狀況來講,真的要比較完整的跨平台,讓 寫的程式不用重新 compile 就能在各個平台上跑,可能 Java 還是比較適合的。 當然,如果開發者本身就是用 MONO/Free Java 開發,就 沒有這類的問題,因為當用到這類東西的時候,MONO 或 是 Free Java 本身就會反應給使用者。而相對的,在 MONO 或 Free Java 中的東西,在官方的平台裡都會有 實作。 又或者,哪天 MS 也在其他平台上釋出官方的開發平台, 自然就沒有這類的問題。 當然,如果扯到自由軟體的理念了話,問題就比較複雜。 基本教義派大概會說,唯一完美的解法就是官方釋出的開 發平台本身就要是自由軟體(例如現在的 QT/GTK 或是 wxWidgets ),這樣的話,就不需要浪費人力開發其實作 用與官方相同功能的東西。 從以前到現在,這都是存在的問題,也就是開發元件是私 有軟體(最有名的兩個例子應該就是 Motif 和 QT ), 然後開發者用這些函式庫開發,再將開發出來的軟體釋出 為自由軟體。 結果導致要使用那項自由軟體之前,必須先裝私有軟體, 然後就變成自由軟體基本教義派的人不能使用這些軟體。 這種狀況最有名的例子是早期的 KDE(架構在非自由軟體 的 QT 函式庫上),不過這個例子中的問題,隨著 QT 變成自由軟體,已經解決了。 然後現在相同的問題出現在 Java 上了,因為 SUN 的 JVM 並不是自由軟體,所以他們不能用。但有的自由軟體 卻又用到了 Free Java 裡所沒有的東西,導致那些基本 教義派也不能用,因為那個架構在非自由軟體的 VM 上。 所以,Richard Stallman 的說法,是說如果要用 Java 開發自由軟體,最好一開始就在 Free Java 的環境中開 發,才能夠讓你寫的程式真正被所有社群的人使用。 當然啦,如果不開發自由軟體,又或者不是基本教義派的, 又或者程式根本不會在 Windows 的系統以外跑,其實這 些東西怎樣都沒差。XD : 您如果仔細去看C#與VB.Net 就會發現其實兩個都是.Net : 而且都是M$出的,但在CLS的實做上就會有些微的差距 : 在深入一點研究C#這個M$以.Net架構為主開發的全新語言 : 可說是對.Net量身訂做而出的 : 但是也沒有100%照著.Net CLS的規範 : 如果您有意願,也能自己打造一套.Net平台 : 或者開發一套.Net語言 -- ~ 白馬帶著她一步步地回到中原。白馬已經老了,只能慢慢地走, 'v' Brian Hsu 但終是能回到中原的。江南有楊柳、桃花,有燕子、金魚…… // \\ ( 墳 墓 ) /( )\ 但這個美麗的姑娘就像古高昌國人那樣固執。 【白馬嘯西風】 ^`~'^ http://bone.twbbs.org.tw 『那都是很好很好的,可我偏不喜歡。』 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.68.168.245