Re: [問題] Java的物件導向不夠純粹

作者: dream1124 (全新開始)   2015-07-04 02:24:08
※ 引述《dharma (達)》之銘言:
: 一些人覺得Java在物件導向上面做的沒有Ruby和Smalltalk純粹。但是最新出現的用Java
: 實現的語言Groovy解決了這些問題。
: https://zh.wikipedia.org/wiki/Java
: 只稍微會Java
: Ruby和Smalltalk完全沒接觸過
: 那麼維基說Java的物件導向不夠純粹
: 是指什麼?
我猜意思應該是 java 還有原生型態 ( primitive types ),例如常見的數字
int num = 10;
你不能把 10 當成一般 java 物件那樣呼叫一些操作方法,
例如你沒辦法呼叫 10.hashCode() ,因為這邊的 10 不是物件,只是數值
: 看這篇介紹Groovy
: http://www.codedata.com.tw/java/groovy-tutorial-1-understanding-groovy/
: Groovy解決Java物件導向不夠純粹的問題
: 是指Groovy寫法比較簡潔
: 不像Java過度嚴格囉嗦
「語法是否簡潔」與「是否為純粹物件導向」應該是兩種特色
只是近年推出的新程式語言多半同時具備這兩種特質罷了
不過,路過的我忍不住想提醒你,雖然貼上來的文章作者功力不錯,
有關 Groovy 的描述也沒錯。
但要是你沒有什麼程式語言基礎,然後在文章裡又看到像這樣的說法
「因為某 G 語言具備某某特色... 所以比某 J 語言容易學又不煩鎖沒包袱」
.... 這類的評論看看就好。
作者講這種話的時候已經會 java,很可能不覺得致力和 java 相容的 groovy 難學。
以我的經驗,就算會 java 才學 groovy ...都不覺得它是很簡單的語言。
你會容易寫出可以執行的東西沒錯,但這樣就代表新手會好學好寫嗎?
別的不說,試著看完 groovy 教學文章以後能不能立刻完整解讀
長一點的 gradle 建置設定檔,然後寫出自己的客製流程就好
這時候你可能會發現,原來程式語言的語法洗煉與否跟難度複雜度是兩回事。
很多地方有撇步要花時間搞懂,跟先前快樂入門的時候完全不一樣
java 語法是比較煩沒錯,當初想學其他語言的時候也是這樣嫌棄它,
但現在學會其他語言反而回頭欣賞 java 的美,覺得它相對容易掌握。
只要你抓住語法上的重點,很多時候甚至可以用推敲的就融會貫通,
不用寫完程式再編譯就能知道哪些沒寫過的語法正確,哪些會錯,
因此容易拿來實現各種東西。
相反的如果一種語言有許多地方都在不知情的狀況下讓編譯器給你一些方便
或是智能猜測型態自動轉換。雖然寫小程式很方便,
但只要程式越寫越大變複雜,到時該花的學習時間一點都少不了,
這時候反而是難以駕馭的。
jvm 的新手語言還是首推 java,畢竟語法洗煉和語言簡單是兩回事。
作者: qrtt1 (有些事,有時候。。。)   2015-07-04 09:51:00
gradle 還是要再學一次 gradle 的部分,不然還真有點難上手
作者: PttTime   2015-07-04 12:28:00
我認為語法簡鍊跟語言簡單是成反比的就跟文言文與白話文一樣
作者: cha122977 (CHA)   2015-07-04 12:32:00
不會啊 看看python 語法簡單也很洗煉
作者: yyc1217 (somo)   2015-07-04 12:50:00
我就遇過'13' >'5' 在瀏覽器是true 可是在nodejs是false的情形 如果是java應該寫到一半就會出現錯誤
作者: haha02 (來人!上夾棍!)   2015-07-04 13:17:00
講簡單一點就是學程式撞牆是遲早要撞的 什麼時後撞的差別而已 java這種偏向早撞的好處是比較不會養成壞習慣或錯誤觀念 但是入門門檻相對高
作者: luoqr (.....)   2015-07-06 21:36:00
DSL感覺就是一堆private function沒文件還真的不會用呢 Orz

Links booklink

Contact Us: admin [ a t ] ucptt.com