1 頁 (共 1 頁)

學校 OOP 課程應該教 Java 還是 C++?

發表於 : 06/14/2001 9:48 am
bryanchang
今天在 Slashdot 上讀到這則消息,覺得頗有趣味,特別借來在冰果室跟同好們討論一下。

我個人的感覺是,設計 Java 語言的人應該是工程師出身,以致語言邏輯的結構有欠嚴謹。常常在使用的時候都可以找到語言設計上的漏洞,並且 API 的推出都被 Sun 的行銷市場部門所決定,有時候真的覺得很想打人。

C++ 雖然常被人批評不夠 OO,但是至少從沒發生像 Java 那樣從 1.0 跳到 2.0 時多出了一堆莫名其妙的語言架構。此外 C++ 的執行效率好上許多,這也是一個重點。

我覺得要是真的想學 OOP,乾脆咬咬牙去學 LISP,這樣回頭學 Java 或是 Objective-C 都很快就可以上手。

學校 OOP 課程應該教 Java 還是 C++?

發表於 : 06/14/2001 11:52 am
digdog
看在 OS X 的份上,起碼維吉尼亞的學生們都該用 iBook 學 Objective-C。 [img]images/smiles/icon_razz.gif[/img]

--
不過保守一點,我覺得基礎入門還是學 C,然後進階再去修個 Programming Language 的課,認識認識其他各種語言,然後 OOP 看是要跳槽 C++, Objective-C, JAVA 都好,起碼學習曲線不會那麼陡峭。

結論是:都好,每個都學好了。 [img]images/smiles/icon_razz.gif[/img]

[ 06-14-2001: 留言編輯者: digdog ]

學校 OOP 課程應該教 Java 還是 C++?

發表於 : 06/14/2001 1:50 pm
bryanchang
剛剛又想到一個問題:像是 Objectiv-C 跟 Java 都不支援 Multiple Inheritance,想請問大家覺得到底 Multiple Inheritance 有沒有其必要?

學校 OOP 課程應該教 Java 還是 C++?

發表於 : 06/14/2001 9:34 pm
the real unknown
<BLOCKQUOTE><font size="1" face="XYZ">quote:</font><HR>原始發信人 白萊恩:
<STRONG>剛剛又想到一個問題:像是 Objectiv-C 跟 Java 都不支援 Multiple Inheritance,想請問大家覺得到底 Multiple Inheritance 有沒有其必要?</STRONG><HR></BLOCKQUOTE>

這要看情況了。Multiple Inheritance對code reuse的幫助很大:現有class如果缺你要的功能,另外做一個mix-in class就好了。不必從根改起,順便把別的child class搞死。

可是對新手來說,Multiple Inheritance很容易生不必要的蟲。例如兩個mix-in classes都有一樣名字的data member或method。

不過如果沒有Multiple Inheritance,我大概不會寫程式了。

C++還有一個非常有用的功能:template class。整個STL都是用它寫出來的。reusable code發揮到最高境界。

我不喜歡Java和Obj-C的最大原因是這兩種語言都和它們的runtime library綁得太緊。不過這只是我從小寫firmware/bios帶來的壞習慣而已。

[ 06-14-2001: 留言編輯者: The Real Unknown ]

學校 OOP 課程應該教 Java 還是 C++?

發表於 : 06/14/2001 11:24 pm
janusng
不少Compilers如Visual C++在支援Multiple Inheritance也有意想不到的bugs(可能我是"新手"吧),導至我也不敢用。
同樣地,STL和Template還有不少Compilers未支援呢!那對Code Portability有障礙呢。
當然我也認為Multiple Inheritance和STL也很有用,可惜現實無咁ideal。 [img]images/smiles/icon_sad.gif[/img]
其實我覺得學C++時,未學過C反而更有利呢,壞習慣也會少些。
又C++還有很多地方可以改進,如標準的multi thread、MAP、Hash table等支援。這些已經是今天的language基本要求。 [img]images/smiles/icon_biggrin.gif[/img]

學校 OOP 課程應該教 Java 還是 C++?

發表於 : 06/14/2001 11:38 pm
bryanchang
<BLOCKQUOTE><font size="1" face="XYZ">quote:</font><HR>原始發信人 真理士‧吳:
<STRONG>又C++還有很多地方可以改進,如標準的multi thread、MAP、Hash table等支援。這些已經是今天的language基本要求。 [img]images/smiles/icon_biggrin.gif[/img]</STRONG><HR></BLOCKQUOTE>

這些應該跟語言本身無關,而是應該要擴展 ANSI C 的標準 Library。只要有一套公定的 API,同一套原始碼到處都可以 compile。這一點 Java (或是 Obj-C) 的確是佔了上風。

學校 OOP 課程應該教 Java 還是 C++?

發表於 : 06/15/2001 12:02 am
Arthur
那我不是給學校強姦意識學了二回的java。 [img]images/smiles/icon_mad.gif[/img] [img]images/smiles/icon_mad.gif[/img] [img]images/smiles/icon_mad.gif[/img]