網頁

2007年12月26日 星期三

該選個好的OS還是好的執行環境(xRE)?

又一陣子沒更新了,最近為了Java ME的Optional API搞得焦頭爛額,譬如JSR75、JSR82... 這些還沒完全搞定,今天又多了JSR226。也因為team一個月都在忙這些東西,以及開始要跨過Mobile軟體設計的門檻,弄得其他人看我們似乎沒有什麼生產力。也就是因為如此,才在內部產生了如同標題的爭論。

昨天是挪雞鴨手機開發論壇,一位始終對我們當初選擇Java手機開發抱持懷疑態度的同事跑去參加之後(還抽到手機耶!),回來之後便開始遊說我們,是否該主攻50%市場的Symbian程式開發,而別再走Java這條需要一堆Optional API的路。

他立論的觀點,是著眼於未來我們若需要什麼新的Java API功能,則必須遷就於廠商是否有實做,這樣會導致開發以及手機的選擇性層層受限。我承認,若以目前的時間點而言,手機的可選擇性當然受限於API是否有實作,我也認為,S60的確是一款成熟的手機OS;然而,選擇了S60,真的就可以避免了層層的限制嗎?

首先,先談安全性方面,S60程式與Java程式同樣需要憑證才可使用被限制的API,而目前手機三大廠除了Motorola之外,憑證申請應該都還算方便,快的話幾天就可以下來。至於S60,據同事說,是要靠Nokia來核發,至於程序複雜與否,我沒申請過不敢妄言。

再來,關於程式移植性的問題,Java的移植性就不用談了,雖然Optional API跑在每家手機時多少會有些微妙的差異,頁面呈現的感覺也有些不同,但經過適合該廠KVM微調之後,通常都可以達到理想的效果。(譬如:JSR75各家容許存取的檔案位置有所不同等等... )至於S60,編出來的程式是否能在80或是90上面跑?憑證是否要重新申請?這些都是值得質疑的。

最後,就是API功能的問題。JavaME至今仍在不斷的進步,各家廠商也不斷地將Optional API實做上去,雖然有人說手機廠商會因為差別定價將部份Optional API功能拿掉,如果向S60投誠就沒有這種問題。但差別定價的問題我想原因其實不在於KVM,而是在於手機本身就缺乏了相關的硬體規格,那麼更遑論將功能實做上去了。因此我認為將API拿掉這種走回頭路的模式,應該不再考量的問題當中。至於S60會不會出現新機種卻不提供私人開發程式控制的狀況呢?他人的立論基礎是不會,我也相信由於開發環境夠低階,這狀況應會比較少,但仍然是無法保證。

基於上面這些的理由,我實在是找不到限定S60手機用較低階語言開發(C/C++)開發優勢在哪裡?選擇Java開發,等待手機市場各大廠KVM更成熟,支援所需功能的手機更多樣化,對一個預計一年後才會進入市場的產品而言,似乎是個較佳的選擇,我是這樣期盼的。

而至於為什麼不考慮Windows Mobile系統,那又是另一個故事了...

沒有留言:

張貼留言