2 回答

TA貢獻1871條經驗 獲得超13個贊
一種語言有很多實現。你說的是sun公司的java,其他公司也有java的版本,比如ibm,還有gnu的Java。 語言本身是一種標準,沒有開源不開源的說法,除非大家有種默認的說法。例如如果沒有特指其他的java,java自然直sun公司的java。
開源指的是語言的實現是開源的。比如c,有turbo c,源代碼不公開的,就不是開源的。但是linux下默認的gcc是更符合c/c++標準的一種實現,同時也是開源的。而微軟的各種c/C++實現(visualc++)就不是開源的。
如果某種語言所有的實現都不是開源的,那它就不是開源的。例如C#過去可以認為它不是開源的,因為僅有的實現visual c#不開源。但c#是一種國際標準,如果有能力誰都可以做出自己的實現,像現在有了Mono project,它是一個開源的c#實現,甚至可以在linux下用。
強調的是,不是說只要公開就是開源,實際上還有其他版權的一些條款,你必須符合某種開源的版權。還有不是說開源的你就可以隨便用了,有很多開源產品都有類似“強盜”的條款:粗略地說,只要你用了它的代碼,你的代碼也必須開源,否則就侵權了。如果做商用,必須仔細看你用的每一個開源庫的版權聲明,看是否要求你也開源。

TA貢獻1835條經驗 獲得超7個贊
開源不是開放編譯器的源代碼.
通俗點說, 就是你寫了一個軟件, 然后把這個軟件的源代碼發布到網上, 讓大家都可以學習,改進. 就是開源!
專業點說, 就是要符合一定的規范, 比如GPL等. 在codeproject等你可以找到很多這樣的開源軟件.
貌似現在就JAVA是開源的
添加回答
舉報