2012年7月10日 星期二

Objective-C成為第三常用程式語言



根據追蹤程式語言使用的TIOBE,程式語言Objective-C已因為蘋果在iOS裝置上使用,而成為世界第三常用程式語言,圖中藍色線,9.3%。
C排名第一,排第二的是Java,也是Google的Android App用的語言程式,但其使用佔率在下降中,見圖中綠色線。
Objective-C的兄弟C++,排第9.1%。
去年Objective-C的使用仍排第46。Objective-C的成功可說是完全因為蘋果!蘋果在NeXTSTEP時代就開始採用由Steve Jobs和NeXT發展的Objective-C。而後移植到Mac OS X作業系統和iOS。
Objective-C被許多發展者認為是最易學習的語言,一但學會後,因為蘋果的生態系統完善,受益將最大最快,見Wired:“Apple probably has the most developed developer ecosystem. Once people get passed that learning curve, people tend to really enjoy the language.
Objective C能超越Java麼?大慨很難,根據Wired, Objective C主要使用在用戶端裝置上的語言,“front-end”,而Java主要使用在背景端的語言,“back-end”,如在伺服器、PC等。

所以可想像在學的電子工程師最常學的語言是甚麼?根據BusinessInsider,66.8%學C、C++、 C# 等C語言,40.8%學Java。

老人:2008年老人乘試圖(幻想)學Objective C,因為蘋果iPhone App的關係。但全台找不到一本Objective-C且和蘋果App有相關的書!

6 則留言:

  1. 老人說:「全台找不到一本Obj-C且和蘋果App有相關的書」,不會吧?!現在Obj-C的書,也是拜 iOS 風行的關係,越來越多。或者是,現在坊間所有的相關書籍,都不符合老人的獨特「需求」?

    不過,隨著 iOS 本身不斷地進化,Obj-C 的部分語法也是不斷地簡化,像是稍早才結束的WWDC 2012就又公佈了些許簡化程式撰寫的語法,打自我開始學習各類的程式語言以來(Basic, Pascal, C, Macromedia Director的Lingo, Java Script),電腦科技推陳出新的速度飛快,持續學習新的語言已成常態,不禁教人感到追逐新技術的疲憊(還好一開始我就放棄了Flash的Action Script),直到我開始自學Obj-C以後,真的覺得Obj-C是一種越學越輕鬆的語言,算是很一種相當值得投資學習的東西,只不過在初學入門階段,最好要先有能夠耐得住不斷地撞牆的心理準備!

    回覆刪除
  2. Eastwalker 大大
    可以推薦幾本Obj-,c的書嗎

    回覆刪除
  3. @WWW, 在推薦書籍以前,在下以為有些觀念和基本常識需要解釋清楚,才不會誤人子弟:
    1. Objetive-C 只是開發 Mac OS X 和 iOS 所使用的電腦語言,除了 Obj-C 以外,你要知道 Mac OS X 使用的是 Cocoa 介面, iOS使用的是 Cocoa Touch 介面。
    2. 整個 Mac OS X 或 iOS 由許多不同的 Framework 所構成。簡單地說起來,Obj-C 所運用的多是在比較表層、與使用者操作界面有關的部分,而 OS X 和 iOS (與硬體相關控制)的底層,仍需要以 C 語言來撰寫。
    3. Mac OS X 和 iOS 是整個 NextStep 和後來的蘋果團隊花費n人及迄今20餘年的心血結晶,再加上每次的OS改版,也都有推陳出新的Framework API,一個人不可能精通所有的 Framework。
    4. 真正探討 Obj-C 的書籍只涵蓋其物件導向程式語言的基礎觀念的建立,多半沒有可以實作的程式範例。如果也要推薦內含程式範例的書籍,會因為 Mac OS X 或 iOS 本身就相當博大精深的關係,此外還有其他3rd-party的開發套件,可以應用的層面非常廣泛,這需要看你的需求,才有可能推薦確切中的之書籍。
    5. 如果你打算學習開發的是 iOS Apps,你可以先下載 Xcode(現在在Mac App Store免費)來體驗看看。所寫出來的程式只能在Mac的模擬機上執行,無法在實際的硬體上測試。如果想要在實體機上測試,就要先花每年US$99加入開發者的會員。
    6. 如果上面提到的 Cocoa, Cocoa Touch, Framework, API 各是所指為何,您也不知道的話,我暫時也沒有那本特定的書籍可以推薦。

    現在回答問題,單單要推薦 Obj-C 的書,有一本博碩出版、荻原剛志所著的《Objective-C 2.0程式設計講座》,算是把 Obj-C 撰寫的基本概念介紹得相當仔細。

    P.S. 如前文所述,最新的WWDC 2012又對Obj-C的部分語法再修正簡化,這部分就要參看蘋果官網裡WWDC相關的影片和文件,這對已經有基礎的程式師來說,是個福音,但對於新進的入門學習者,還是需要搞懂很多觀念的來龍去脈,才可能融會貫通。

    P.P.S. iOS App的開發,最好有「每天」都練習寫程式的熱情和心理準備,不然最起碼也要「每隔幾天」都要也接觸,否則,可以正常運作的程式碼如何撰寫,很容易寫過就忘!還好在 Xcode 4裡,又新增了 Snippet 功能,可以儲存自己常用的程式碼。

    回覆刪除
  4. 關於常用語言

    1. 業界還是 Java 居多,尤其是當 Google 將 Java 設為官方語言後,他們的期望是從 client 端到 server 端都用 Java,沒錯 client 端也是,GWT 就是一個很明顯的例子。
    當然,如文中的 Android App 也算是 Client 端的一種。

    2. 至於 obj-c,我認為如 PhoneGap 這種東西的出現,很容易搶走 iPhone App 的持份,也就是說 obj-c 會回到該有的市佔率。

    這種市佔率都是一種大數的表現,還是看趨勢比較準。

    回覆刪除