※ 引述《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