嵌入式linux應用之go語言開發(開篇,緣起)


搜遍整個互聯網,沒有相關使用go語言開發嵌入式linux的。

廣大嵌入式愛好者對高級語言不感冒?不敢嘗試?

那我就做個布道者,第一個敢於吃螃蟹的人吧。

期待go做出來的應用,開發更高效,運行更穩定,功能更強大。

探索能否帶來開發工作效率的提升,產品質量穩定性方面的提升,產品功能上的增強。

物聯網時代,就是要有所“變革”。而我理解的“變革”一詞,有兩層含義,“改變”和“革命”。一是要有所改變,不能守舊。守舊就是退步,就會逐漸跟不讓步伐。二是要敢於改變,敢於堅持,敢於嘗試新事物,排除非議,即敢於“革命”。

選用go語言開發嵌入式linux的理由?

一、go調c的驅動,太容易了,有先天的優勢。

二、go做的應用,甚至可以在電腦環境下去跑,去仿真。調試完后很容易就切換到嵌入式系統上。

三、c語言的指針操作,空指針異常等,在應用里監測不到,容易造成應用崩潰。

四、遇到跟第三方對接的,如銀聯https通信,用c處理起來特別費勁。

五、c不可能把 https的整個細節如tls鏈路層握手都自己去實現,只能是調用開源庫如OpenSSL等,效率低下且穩定性難以保證。

六、有時需要跟平台對接,http的json協議格式或者是webservice接口。讓c去處理這些嗎?一個個拼接http報文頭拼接字符串?效率太低了。能一天完成的兩天去做就是浪費資源。

總之,問題太多。c是很強大,但不適合未來的發展要求。

曾經因為android應用大行其道,感覺linux的空間越來越窄了而退縮。既要會c,又要懂go,估計我會是個獨行者而迷茫。

但是現在想通了,一切皆有可能。物聯網時代已經來臨,不一定全是Android的天下。

物聯網時代同硬件交互,android再方便好用也免不了找人給它封裝c的jni吧。但是用go一人就搞定了。

如果界面不是主要的,android的速度和效率比不過go,因此嵌入式linux還是有價值的,用go開發是一種選擇。可以堅持一下,多做些嘗試與研究。

質量和效率,是每個人都要考慮的。

質量和效率才能保證產品在市場競爭中立於不敗之地。

應以產品在市場上獲得好評而感到驕傲,以產品受到客戶批評而感到羞愧。

選擇哪種語言不是目的,語言都只是工具。

但要用合適的工具做合適的事,追求質量和高效率,選哪種語言就值得考慮了。

你會用c去開發web,會去用php開發嵌入式嗎?

若環境是Android系統,首選java毫無疑問,因為有優勢。

目前的嘗試只針對嵌入式linux。

為啥不在嵌入式linux上搞java? linux系統肯定能支持java的啊。

因為不想折騰。

java若撇開強大的第三方庫,撇開Android的SDK底子的支持,撇開華麗的Android界面,在嵌入式上不占優勢。

還要去給java層封裝JNI才能調c的驅動嗎?太麻煩了。且一般跑嵌入式linux系統的CPU主頻和資源不太高。

若把java的虛擬機再裝上去,運行速度也不會快。Android上是專門優化過的Dalvik虛擬機。有折騰的時間用c早搞完了。java還是在J2EE和Android上發功吧。

即便系統是Adnroid的,如果界面不占主要地位,注意是若界面不是主要的!比如車載pos。則go做出來的應用和Adnroid的應用,不一定誰更具優勢。

做事難,推動難,難在堅持,難在攜手共進,這里面是需要信念的!

個人微信公眾號:aazhen1987,歡迎交流!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM