go语言被称作互联网时代的c语言,用来开发嵌入式linux是一种享受。

希望能否带来开发工作效率的提升,产品质量稳定性方面的提升,产品功能上的增强。

物联网时代,就是要有所“变革”。而我理解的“变革”一词,有两层含义,“改变”和“革命”。一是要有所改变,不能守旧。守旧就是退步,就会逐渐跟不让步伐。二是要敢于改变,敢于坚持,敢于尝试新事物,排除非议,即敢于“革命”。

选用go语言开发嵌入式linux的理由?

一、go调c的驱动,太容易了,有先天的优势。

二、go做的应用,执行效率高,甚至接近c语言或超过c语言。甚至可以在电脑环境下去跑,去仿真。调试完后很容易就切换到嵌入式系统上。超过c语言有些人可能不信。但是,举个例子吧,你用c自己造的轮子,调用socket通信,有使用go的net官方库稳定吗?

三、c语言的指针操作,空指针异常等,在应用里监测不到,容易造成应用崩溃。

四、遇到跟第三方对接的,如银联https通信,用c处理起来特别费劲。

五、c不可能把 https的整个细节如tls链路层握手都自己去实现,只能是调用开源库如OpenSSL等,效率低下且稳定性难以保证。啥轮子都需要自己造,且不一定稳定。而go,好多开源的软件库和包供使用,有很多现成的轮子。

六、有时需要跟平台对接,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,欢迎交流!

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:3 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐