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,欢迎交流!

嵌入式 linux 应用 go 语言开发(开篇,缘起)相关推荐

  1. 嵌入式linux之go语言开发(六)几行代码实现终端的远程日志诊断

    日志是应用的镜子,可以发现应用中的问题,重要性不言而喻. 以往设备有问题了,是如何诊断的?我们是现场人员到现场,又是配合抓包,又是配合提供机器日志,效率极其低下. 如今都物联网时代了,能让数据跑路的还 ...

  2. 嵌入式linux之go语言开发(九)关于嵌入式GUI

    go语言没有官方的GUI. 其实怎么说呢,这一块儿的需求也不怎么迫切.毕竟每个语言都有自己擅长的领域. 在电脑上开发界面还是C#或QT或java的swing来的快.没必要非用go吧,更多的是在电脑上基 ...

  3. 嵌入式linux之go语言开发(三)卡库的封装

    卡库的封装和调用,这是一个重头戏,完成了它,则就完整了所有的封装.至于网络通信,记录存储等,则可以 使用go本身的模块去做.后续做一版完整的go语言版B503应用. 截至目前,非接触式卡库的封装接近尾 ...

  4. 《嵌入式Linux与物联网软件开发——C语言内核深度解析》一第1章 C语言与内存1.1 引言...

    本节书摘来自异步社区<嵌入式Linux与物联网软件开发--C语言内核深度解析>一书中的第1章,第1.1节,作者朱有鹏 , 张先凤,更多章节内容可以访问云栖社区"华章计算机&quo ...

  5. 《嵌入式Linux与物联网软件开发——C语言内核深度解析》一2.4 位运算构建特定二进制数...

    本节书摘来自异步社区<嵌入式Linux与物联网软件开发--C语言内核深度解析>一书中的第2章,第2.4节,作者朱有鹏 , 张先凤,更多章节内容可以访问云栖社区"异步社区" ...

  6. 嵌入式Linux与物联网软件开发:C语言内核深度解析

    嵌入式Linux与物联网软件开发:C语言内核深度解析     1.C语言与内存         1.引言         2.计算机程序运行的目的         3.位.半字.字的概念和内存位宽   ...

  7. 嵌入式 Linux 与物联网软件开发 ——C 语言内核深度解析

    C 语言是嵌入式 Linux 领域的主要开发语言. 对于学习嵌入式.单片机.Linux 驱动开发等技术来说,C 语言是必须要过的一关.C 语言学习的特点是入门容易.深入理解难.精通更是难上加难.很多用 ...

  8. GCC编译器简明教程(Linux下C语言开发环境的搭建)

    GCC编译器简明教程(Linux下C语言开发环境的搭建) 市面上常见的Linux都是发行版本,典型的Linux发行版包含了Linux内核.桌面环境(例如GNOME.KDE.Unity等)和各种常用的必 ...

  9. 关于Linux下C语言开发基础的实验内容。

    Linux下C语言开发基础实验内容 目录 1.Linux下C语言开发流程 2.vi,vim编辑器的使用 3.Gcc编译器的使用 总体选项: 警告选项: 4.GDB 基本命令的使用 5.Make 工程管 ...

最新文章

  1. sql查询远程数据库的表的数据并填充到本地数据库的表
  2. oracle 压缩 插入速度,求助大佬:向压缩表插入数据,压缩未生效
  3. zend studio
  4. matlab gui 中指定axes窗口画进度条
  5. 使用onclick跳转到其他页面。使用button跳转到指定url
  6. 启动outlook时报错:mapi无法加载信息服务msncon.dll
  7. 2021重庆高考成绩名次排名查询,重庆高考排名对应大学-重庆高考位次大学(2021年理科)...
  8. 笔记本电脑锁_2020年最好的10款笔记本电脑
  9. LeetCode--056--合并区间(java)
  10. Deadline提前,引入滚动审稿,想投ACL 2022的同学要抓紧了
  11. g6的minimap中的配置_使用GGEditor开发流程编辑应用
  12. C/C++ typedef用法详解
  13. J-Link软件和文档包的版本发行说明(4)[V6.50 ~ V6.90a版本]
  14. Cloud Native 演进可行性研究
  15. 专业修图工具:Affinity Photo for mac
  16. 金融科技数据中台基于 DolphinScheduler 的应用改造
  17. iOS 常用框架介绍
  18. 如何判断两个地址是否在同一网段
  19. Linux学习-----Chapter six
  20. css3画各种三角形(transparent)

热门文章

  1. matlab锯齿交换,MATLAB折线消除锯齿平滑
  2. 【ES6】let、const变量提升的验证,以及TDZ死区的理解
  3. c语言编写坦克大战设计报告,c语言编写坦克大战源代码
  4. HTML谷歌怎么加背景音乐,谷歌Chrome浏览器怎么提取网页的背景音乐?
  5. Python 100道基础入门练习题(附答案)【这期完结】
  6. NGFW module恢复密码操作方法
  7. 微信抢抢票服务器,已有多人被坑!抢票“加速包”慎用!
  8. 2022年3月15日黑马第三天
  9. 苹果app签名TF签名如何下载安装?
  10. 旷视科技2022提前批校园招聘已经开启啦!