作者PsMonkey (痞子軍團團長)
看板PLT
標題何謂「好的」程式語言
時間Thu Feb 22 12:57:21 2007
這個問題其實困擾我很久...
反正這個版開了,就先站上來當標靶
各位請隨意砲轟... [茶]
先把「語言」的範圍排除像 HTML, XML 那種描述性語言
也跳過 SQL 這種... 我不知道怎麼歸類的語言
然後,為了簡單起見,也跳過 web 開發語言
(像 JSP、PHP、JavaScript、ActionScript)
就只講最傳統定義的語言
誠如各位所知,我是寫 Java 的
事實上,幾乎也算「只會 Java」
所以會以 Java 為出發點,然後在推銷 Java 的時候受到一些反彈
從這來講,可能會比較... 不會出錯
(咪的... 到底要不要進入主題阿... [踹])
面對 C 家族的狂熱分子
Java 典型被批判的就是「沒有指標」
或著應該說「沒有辦法直接用指標」
甚至有人用「全梭了」的肯定語氣跟我說
「沒有指標很難寫程式」
我是不敢懷疑他是不是偷雞 囧>
也沒有掀他底牌來看(他也不讓我看就是了)
不過... 不碰硬體控制之類的,我也沒遇到什麼「很難寫程式」的部份
但是,對我來說,沒有指標的世界真是美好阿... [茶]
(更不用說要看什麼「指標的指標」這種殘害智商的東西)
而 Java 的書,尤其是早期推廣時代的書
都會把「沒有指標」這件事情當作是一個大優點
夾在兩造雙方之間,其實就平民小卒來說,還挺困擾的
同樣的事情也發生在 gc、效率等等問題上
我寫 Quick Basic 起家的,然後可以說接著就跳 Java 了
面對 C 得靠 malloc() 才能做到「執行期間決定陣列大小」
還得自己去控制位置... 然後最後還要自己釋放空間
對我這種笨蛋而言... 唉... [遠目]
(雖然說 C++ 也有 Vector 之類的東西...)
有人跟我說,這樣子效率比較好
gc 是很消耗 resource 的行為
恩... 想想也是...
那麼,是要賭自己控制 resouce 會比較好
還是期望語言本身提供 gc 的演算法可以達到「可接受」的範圍?
因為我是笨蛋,而且我相信開發 JVM 的人比我聰明百倍...
但是,又有人跟我講
Java 沒辦法處理很大量資料的狀況
所以他雖然是從 Java 起家的,不過後來還是乖乖寫 C
(他好像是作即時影像處理的,然後隨便就是幾百MB 的資料在記憶體當中)
hmmm... 還沒寫過那種恐怖的東西... 很難想像
但是 Java 真的作不到嗎? 好像也很難想像...
也許作起來要花很多功夫?
但是... 能不能把這個狀況當作是極端狀況來對待?
我的意思是... 畢竟一般人寫一般程式
用 Java 好像很快樂也不容易出大紕漏?
我們畢竟會常常需要用到動態決定大小的陣列
而很少要處理很大量很大量的資料?
寫到這裡,似乎就能預料有神人級的人會跳出來說
「語言只不過是工具,視狀況而決定工具
所以討論工具好壞是沒有意義的」
這樣講好像很對,但是又好像很不對
畢竟,像我這種笨蛋... 連 Java 都寫的不是很好了
要視狀況在工具之間跳來跳去,似乎有摔死的可能 Orz
(當然,現實狀況是... 環境逼著你跳,你不得不跳)
又反過來說,面對另外一群人
他們會 argue Java 不夠快 or 不夠簡單
像 Perl 的使用者會覺得 Java 宣告起來很麻煩、字串處理很麻煩
Ruby 的使用者會說 Java 寫起來不夠快
(恩... 不過看到的好像大部分是針對 Web 開發的部份?)
另外一個... 囧點...
是好像很少人會把 C 家族跟 Perl, Ruby 來作對比
(至少 PTT 的討論版很少看到)
但是 Java 會拿來跟 C 家族來比較,也會被拿來跟 Ruby 來比較
好了,就先扯到這邊
====
這個問題的切入點,以我淺薄的知識也想得出一些
不過一開始還是先隨意吧... 這樣子標靶比較大一點... [茶]
所以上頭就寫的很鬆散... XD
反正收斂焦點 & 收是版主要煩惱的... [逃]
--
侃侃長論鮮窒礙 首頁:
http://www.psmonkey.idv.tw
眾目睽睽無心顫 Blog:
http://ps-think.blogspot.com
煢居少聊常人事
殺頭容易告白難 歡迎參觀 Java 版(@ptt.cc) \囧/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.195.92
1F:推 ephesians:我是寫LISP的,不僅沒有指標,連資料型態都沒幾個呢 XD 02/22 17:06