1. 程式人生 > >嵌入式客戶端程式開發大彙總

嵌入式客戶端程式開發大彙總

  先不說嵌入式客戶端程式開發,先看發展最好的客戶端程式開發領域:PC端(Win、IOS)、瀏覽器、移動端(Android、IOS)。這些客戶端開發程式設計師人數眾多、生產力極高的工具、良好的生態環境。客戶端程式有人稱為native開發,這是從網際網路開發角度看。

  程式設計=資料結構+演算法+程式語言。雖然程式語言屬於編譯器和計算機底層邏輯的頂層表達,雖都脫胎於圖靈機原理、組合語言,但經過這麼多年的發展,每一種語言都構築了屬於自己慣常的領域一整套複雜的框架、工具鏈:

C#:Windows PC程式等。

Java:Android移動端開發,Web應用開發等。

C++:伺服器端開發、系統軟體等。

JS:前端開發等。

Python:機器學習訓練、機器學習推理、Web爬蟲應用。

……

嵌入式客戶端開發可以說是偽命題,每種客戶端程式開發其實都必須依賴於底層的基礎設施,下面由底層到頂層看一遍:

1、裸機。裸機的客戶端程式開發基本依賴於成熟的Graphics Library(嵌入式GUI圖形庫),難以想象做應用的人自己通過純C開發出GUI。這些純C開發的Graphics Library有:emWin(STemWin)、Microwindows 、MiniGui等。

2、RTOS。RTOS和裸機在客戶端程式開發上基本上一致,都是C語言跑起。

3、Embedded Linux。C++框架類的工具是主流。這是個微軟進不來、谷歌不擅長、蘋果沒興趣的”蠻荒之地“,嵌入式客戶端碎片化、無序生態環境,恐怕沒多少大公司有興趣去開發類似Android SDK、Object-c類似的工具佔領市場。X Window、Qt。

4、移動端。實際上這個已經異變了,發展歷程像極了PC端。PC端萌出階段開發難度、缺乏工具程度類似於現在的嵌入式Linux。後來隨著蘋果、谷歌等公司的強力加碼(諾基亞那套東西就是沒有學習微軟在PC端的優秀做法),開發工具和生態環境得到極大發展。又創造出了一個新的客戶端大環境,且程式設計師數量有逼殺PC端的態勢。這就是嵌入式軟體領域在某個單項標準化、統一化後爆發的實力。當然還是有人繼續用著生產力底下、小眾的工具開發著產品使用者不到數百人的Qt介面軟體,還美名其曰對底層更瞭解。其實Qt公司何嘗不想像谷歌對Java的改造那樣構建起一套生產力極大、開發者眾多的平臺,奈何嵌入式碎片化太嚴重。