1. 程式人生 > >物聯網的開發應該是什麽樣子?

物聯網的開發應該是什麽樣子?

開發工具 桌面 是什麽 十分 oid 什麽 相關 知識 硬件

  目前的物聯網開發實際上與傳統嵌入式開發並無太大的差別,開發人員除了要懂得編程語言之外還需要擁有一定的硬件知識儲備,這一點在很長的一段時間內並沒有引起我的註意,甚至我認為這是物聯網開發該有的樣子,這種對於開發人員技術較高的要求曾經一度讓我認為可以提高開發門檻,也更提高開發質量。

  但是現在我對此有了不同的看法。或者說這在某種程度上改變了我對於開發的看法。

  物聯網目前的發展可以用“亂世紛爭,群雄並起”來形容。各種專為物聯網設計的操作系統,開發工具,甚至是新的編程語言紛紛登臺。但是在這眾多的工具與平臺之中,很少有站在開發者角度去設計的,而物聯網的開發卻與嵌入式開發與互聯網開發應該有著顯著的不同, 它更加的跨領域. 因此使用這些系統(比如Contiki, Lite OS), 你需要懂得中斷, 懂得數模轉換, 懂得時鐘, 懂得操作系統的細節, 懂得一段代碼是如何變成一抹律動的電平, 這些知識對於很多沒有嵌入式開發經驗的互聯網開發者或者桌面開發者是沒有接觸過的或者早已變成"印象中學過, 不過我忘了". 即使對於有嵌入式開發經驗的人員來說, 這些使用這些工具還需要其它他們所不熟悉的知識, 比如懂得無線協議棧, 懂得路由與組網.

  很容易看到在傳統的互聯網開發(PC)中, 程序員數量十分龐大, 社區極其活躍, 而反觀物聯網開發領域卻只有零星的研究人員與發燒友. 沒有一個龐大的人員數量基礎, 物聯網的發展必定會慢下來很多. 而我認為這一切除了技術上的因素之外, 就是沒有一個開發者友好的工具平臺. 物聯網的開發涉及眾多領域, 不少各個領域的開發者都被嚇退了,或者是因為"聽不懂, 看不明白, 沒興趣"的思維所牽絆. 但尷尬的是, 一個技術要想長足的發展, 那麽它就必須親民, 必須讓更多普普通通的只是想換一個工作的開發者加入進來, 而不能僅局限於研究人員與發燒友.

  那麽怎麽才是一個開發者友好的工具平臺呢?

  1. 我覺得首先應該有一個非常優秀的操作系統, 這個操作系統應該對底層做了足夠的封裝, 操作系統本身與它提供的API應該是開箱即用的. 將底層的工作與上層的工作完全隔離開, 普通應用開發者並不需要去了解他的每一個操作在系統底層是如何工作的. 這一點應該像Android的開發一樣.這一點上, 伯克利大學開發的TinyOS表現比較不錯, 不過奈何它是新造了一門語言, 工具鏈也是非常的難用. TinyOS本身是一個科研產物, 沒有社區推動, 它的命運必然不會太好, 但是如果它的開發工具更好一些, 移植性與擴展性更好一些, 我覺得它可能會非常有出息的.

  2. 其次, 一個物聯網的開發平臺應該有一個十分傻瓜式的IDE. 目前我所使用過的物聯網的開發平臺的搭建與使用都非常非常的不友好. 一個功能完備且強大的IDE無疑會大大降低開發門檻, 吸引更多的種子選手入坑.

  3. 接著其軟硬件架構因當是非常容易擴展與移植的.當如第一條說的將底層與上層完全的隔離開來. 當上層應用開發者不需要關心底層的時候, 物聯網平臺卻面臨著應用場景眾多, 需求眾多的局面, 因此擴展性與移植性可以實現對於場景需求的定制. 而這些是底層開發者的任務.

  4. 關於將上層與底層完全隔離中有一個非常重要的地方就是強大的任務管理, 應用開發者將不再自己去對程序的運作方式再三斟酌以此來為了實現高效與節能的目的.

  現有物聯網平臺都是在為物聯網的一些特殊需求而設計, 我在這裏不探討這些所謂的"特殊需求"是否成立, 但是忽視開發者感受的開發工具註定不會獲得勝利, 甚至我認為在某種程度上是限制了物聯網的發展和推廣. 不過作為相關行業的人員, 我們也應該看到物聯網開發的與眾不同之處, 這些與眾不同導致了很多目前難以協調的問題, 而這樣的局面也正是我們從業者的機遇與挑戰.

  

物聯網的開發應該是什麽樣子?