2011年5月25日 星期三

當時業界的需求 座談要求就是不要教 Java

作者: ggg12345 (ggg) 看板: Soft_Job
標題: Re: [請益] java的效能!?
時間: Sun May 22 09:29:04 2011

※ 引述《iincho (世界的盡頭)》之銘言:
: 標題: Re: [請益] java的效能!?
: ※ 引述《latw (latw)》之銘言:
: : ※ 引述《stosto (樹多)》之銘言:
: : : android不是跑得很順嗎?
: : 那我就拿被蟲咬過的蘋果打你的臉 :D
: : iOS是用obj-c 也是物件導向.順暢度?我還可以大膽的說"到目前為止",還沒有
: : 一台android比蘋果順的,不信可以到各大賣場把玩一下,反正試玩不用錢.
:   Android會慢並不是因為用VM的關係,雖然有一點影響,
:   主因還是背景大家可以亂開一堆service同時跑。
:   iOS會順也和Objective-C沒有太大關係,主要是因為大部份的情況
:   並不允許使用者的程式多工。
:
: : 物件導向效能未必會比較差,看compiler.
: : 不過大程式還是看演算法, java想贏asm大概也只能用演算法贏了,
: : 如果都一樣的演算法,java也只能吃灰塵.
:
:   問題是考慮到維護,用C/C++的成本比asm低多了。
:   同樣的程式,同樣的演算法,但是開發時間可能不一樣....
=======================================================================


這些不同看法, 讓人想起初辦產業碩士專班(只辦了一年)時, 當時業界的需求
座談要求就是不要教 Java, 最好是 ASM 再不然就是 C, 一家 server 廠來的
是人事主管就斬丁截鐵指明研發部門要求必教 ASM, 另兩家跟箝入式家用產品
小廠有關的技術主管就點明不要教 Java. 記得說的理由是: 1.Java VM 可能
有license付費負擔. 2.Java 可復原成原始程式. 3.Java 程式都上網亂抄,
效率也不好.

為此, 讓很多老師很不高興, 尤其是要教碩士研究生ASM. 不過, 像恐龍版的
os 教科書, 美國本地版的採用 Java 為例, 亞洲版的都是 C 程式為例. 這
反應兩個地區產業的不同性質與需求.

:
: : : 還有一堆老人只會寫C硬幹出來,寫的CODE一堆flag,想改一個功能要動幾千行都有可能
: : 這是程式設計功力與規劃的問題,linux kernel的code並不會這樣.
: : 當你看過繼承再繼承,overwrite又overwrite..不用幾行你就想翻桌了:D
: : java強項是跨平台,對於應付網路上充斥不同平台的電腦,這才是他的舞台.
: : 拿來當用於規格幾乎一樣的桌機,只會被其他語言打臉而已,我還不知道
:
:   喔,主要有兩點,因為用Java VM可以很輕鬆的隔開不同的硬體,手機可不是
:   X86這種大家都是跑一樣的CPU,所以之前看WM的程式下載的時候都會標示
:   這是哪一個機型可以用的binary。雖然說現在ARM看起來有機會統一世界但是
:   這個決定還不算太離譜。
:
:   另外就是你提到的,Android Dalvik VM這層做的事其實很少,大部份的事都在
:   底下的C++層做完,加上用的硬體通常比較暴力,效能看起來是還OK。
:
Java VM 確實就是為了跨平台, 還有就是從網路能 download 就能執行, 甚至
遠端調用分散執行. 但初期不會有大量的雲端分散處理來配合, 而手機又是以
UI及使用者感受為考量點, 專屬OS與硬體可以避開下載病毒就能輕裝, 又能避
免亂裝一堆礙效率的軟體, 以此思惟先搶市場與利基再將來演變改進, 應該就
是頻果的策略.

台灣做 server 的跟做 手機 的, 應該是兩種不同發展的族群與需求. 不宜全
混為一談, 強求畫一.
Java 至少不會被拿來做底層的硬體控制與驅動.

現在聽到最多的就是 多點觸控 不夠流暢. 這是因為 不管是 system VM 或
process VM (如 Java VM)都不會對 中斷處理取得的結果 立即處理, 這是
Java VM 與 OS I/O driver 間的協調與立即優先反應的銜接問題.


※ 編輯: ggg12345        來自: 140.115.5.14         (05/22 09:46)

沒有留言:

張貼留言

您好.本資料庫並非第一手資料.如果你有對文章作者的詢問,意見與需求,請自行找尋文章作者並提供意見,謝謝.