• 7

老賈與知名部落客的對話~

u5321007 wrote:
最重要的關鍵還是在那句「若低標準的跨平台程式開發工具成為主流,那麼iPhone平台將會被其它低標準的平台跘住,而無法推動iPhone平台開發往前進」...(恕刪)


我老公說,JOBS在改善蘋果內部的時候說過
「如果在一群A級員工的公司裡擺了幾個B級員工,沒多久你就會發現整個公司都變B級了」
所以當時只要一不合他的意,他就開除人

以他的標準來說,合他的意的,才叫A級~

似乎跟「若低標準的跨平台程式開發工具成為主流,那麼iPhone平台將會被其它低標準的平台跘住,而無法推動iPhone平台開發往前進」的背後意義很像哦~~
這就是人生!每個人都一樣.......
loveone.tsj wrote:
我老公說,JOBS在...(恕刪)


我以前也會這樣對待同事與身邊的人,但我慢慢發現許多人是有待琢磨的璞玉
後來我特地留下幾個B~C 的員工給于正面的協助與鼓勵,告訴他們人受限於
想像力而不是條件,經一段時日的琢磨他們離開公司時拿著作品去求職都非常順利

誠如愛因斯坦所說~“想像力比知識更重要”~

重要的是,惹人厭畢竟不是一件好事~ha
azenis wrote:
今天開發者抗議的不是...(恕刪)


抱歉, 關於 Android 這段我不是很懂.
Android 的主要開發語言是 Java, 但這個版本的 Java 是 Android 的特有版, 沒辦法直接移植到其它的 JVM 上.
不過 Android 後來也提供了 NDK ! 利用 Java Native Interface 的方式可以引入 C or C++ 的 APIs.

由於 iPhone 上除了可以使用 Objective-C 外, 還可以使用 C 或 C++,
程式設計師並不會因為選了 iPhone 作為程式平臺, C 和 C++ 的程式碼就無法移植到其它平臺,
只要撰寫的程式碼使用的語言是 C 和 C++, 扣掉硬體相依的 API, 剩下的不就全數可以移植?

這件事情在 Android 上也一樣, 除非使用 C or C++ 寫的,
剩下的都是 Android 特有的 Java, 雖然部份 APIs 是相同的命名方式, 但是編譯出的 bytecode 並不是標準的 Java bytecode, 自然無法移植到其它 JVM 上運作.

Apple 有說要禁止第三方的 API?
那我自己寫的 .h .m 不就也被禁止了 Orz...

原文如下 “Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).”

這裡頭根本沒提到要禁止使用第三方 API
而是寫明了 只有用 C, C++ 和 Objective-C 寫的 code 可以編譯和鏈結到 Documented APIs (這個指的應該是 iPhone OS 提供的 API).
透過中介軟體轉譯, 或使用相容的 layer 或工具 去鏈結 APIs 方式則禁止.

舉個例子,
Adobe 說可以把原本不是用 C, C++ 或 Objective-C 撰寫而成的 Flash 程式, 轉成可以在 iPhone 上跑的 APP 這件事情是被禁止的.
MarsPing wrote:
剩下的都是 Android 特有的 Java, 雖然部份 APIs 是相同的命名方式, 但是編譯出的 bytecode 並不是標準的 Java bytecode, 自然無法移植到其它 JVM 上運作....(恕刪)


不是要戰喔,我只是要修正一下,Android SDK 利用translator 把bytecode 轉到它的jvm bytecode,所以他是 bytecode level的差異,所以只要沒有用系統call可移植性還蠻高的

Java程式庫以現在的資源來說,可說是相當豐富,尤其是網路相關的程式碼可說是移植性相當高,但是GUI/Graphics方面的程式碼可說是全然不同,再加強這方面本來就不是Java的強項,所以Android Game要做得好,資源還而沒有C/C++還來得強大,(本來主流Game就是C/C++開發的嘛)
第三方開發工具也有可能是將原來 API 根據特殊目的塑模過後的 framework,照 (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited). 這段所說,是否也犯規呢?
MarsPing wrote:
這裡頭根本沒提到要禁止使用第三方 API
而是寫明了 只有用 C, C++ 和 Objective-C 寫的 code 可以編譯和鏈結到 Documented APIs (這個指的應該是 iPhone OS 提供的 API).
透過中介軟體轉譯, 或使用相容的 layer 或工具 去鏈結 APIs 方式則禁止.


簡單來說, Apple要把全部不是使用Apple自己提供的SDK/API都禁掉. 而任何如Monotouch, Unity3D或Corona讓你可以用C#/Lua scripting等不是原生C/C++/Obj-C而是靠著這些工具去進行轉換的程式也都包括在這次的禁令中.

可是像Unity3D來說, 他提供了dev一套完善的3D, physic甚至audio engine, 這些功能在新的條件裡面是被禁止的. 但是要一般業餘的dev自己去寫一套engine, 一來品質可能不會很好, 二來要投入的資源太多, 很多這些業餘的dev就bye了.

除非apple SDK大改, 提供一套完善的系統來取代這些三方軟體或支援其他非C/C++/object-c語言的設計, 那就不會有這麼多各式各樣的apps可以用了.
chibiya wrote:
第三方開發工具也有可...(恕刪)


是阿, 因為這些開發工具都會有一定的Watermark可以去追蹤. 假如apple很嚴格的去執行新的限制的話, 當你把這些靠第三方的工具寫出來的app送去approval時會被拒絕
chibiya wrote:
第三方開發工具也有可...(恕刪)

azenis wrote:
簡單來說, Appl...(恕刪)


我也在想 wrap 這個問題, 用 C, C++, Objective-C 把 APIs 包起來,
然後以 C, C++, Objective-C 這三種語言提供的 APIs.

函式庫是以 C, C++, Objective-C 這三種語言提供,
這樣就符合 "Applications must be originally written in Objective-C, C, C++" 的要件.

而使用的 函式庫或引擎 也是使用 C, C++, Objective-C 撰寫
也就符合 "only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs" 這個要件.

我會覺得這樣是 OK 的, 不然自己寫的 .m 和 .h 怎麼辦?

不曉得 Apple 會怎麼認定這樣的狀況,
如果這樣的狀況 OK, 那這類 engine 和 framework 依舊可以存在.
MarsPing wrote:
我也在想 wrap ...(恕刪)


關鍵在於"originally"這個字. 你假如API都是C/C++/obj-C語言組成的沒錯. 可是它們假如不是"原生"C/C++/obj-C的話就不能用.

譬如以flash為例好了. 你原本可以利用各種支援的三方工具將flash包在app裡面. 但以新的條規來說, 就算是今天這工具幫你把應有的Action script等flash內容轉為100%的C/C++/obj-C組合來執行原本設計的功能, 但還是不行. 因為這個產生的結果是靠"翻譯"來達成的, 而非"originally"C/C++/Obj-C. 所以裡面最後那一條
"Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited"
就不通了

況且假如不能call三方API的話, 很多app大概都掛了.
azenis wrote:
除非apple SDK大改, 提供一套完善的系統來取代這些三方軟體或支援其他非C/C++/object-c語言的設計, 那就不會有這麼多各式各樣的apps可以用了....(恕刪)


Apple 這條Rule 目的很簡單,幹掉 Adobe 強迫所有第三方工具商以C/C++/Cocoa為引擎基礎

這樣就不會有升級OS時,第三方工具商坐大,造成尾大不掉的事情。

老話一句,當年Borland就是這樣被幹掉的。
  • 7
內文搜尋
X
評分
評分
複製連結
請輸入您要前往的頁數(1 ~ 7)
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?