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

简介: 嵌入式 linux 应用 go 语言开发(开篇,缘起)

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的应用,不一定谁更具优势。


相关文章
|
5天前
|
存储 JSON 监控
Viper,一个Go语言配置管理神器!
Viper 是一个功能强大的 Go 语言配置管理库,支持从多种来源读取配置,包括文件、环境变量、远程配置中心等。本文详细介绍了 Viper 的核心特性和使用方法,包括从本地 YAML 文件和 Consul 远程配置中心读取配置的示例。Viper 的多来源配置、动态配置和轻松集成特性使其成为管理复杂应用配置的理想选择。
23 2
|
3天前
|
Go 索引
go语言中的循环语句
【11月更文挑战第4天】
11 2
|
3天前
|
Go C++
go语言中的条件语句
【11月更文挑战第4天】
14 2
|
5天前
|
缓存 Linux 开发者
Linux内核中的并发控制机制:深入理解与应用####
【10月更文挑战第21天】 本文旨在为读者提供一个全面的指南,探讨Linux操作系统中用于实现多线程和进程间同步的关键技术——并发控制机制。通过剖析互斥锁、自旋锁、读写锁等核心概念及其在实际场景中的应用,本文将帮助开发者更好地理解和运用这些工具来构建高效且稳定的应用程序。 ####
21 5
|
6天前
|
监控 Go API
Go语言在微服务架构中的应用实践
在微服务架构的浪潮中,Go语言以其简洁、高效和并发处理能力脱颖而出,成为构建微服务的理想选择。本文将探讨Go语言在微服务架构中的应用实践,包括Go语言的特性如何适应微服务架构的需求,以及在实际开发中如何利用Go语言的特性来提高服务的性能和可维护性。我们将通过一个具体的案例分析,展示Go语言在微服务开发中的优势,并讨论在实际应用中可能遇到的挑战和解决方案。
|
3天前
|
Go
go语言中的 跳转语句
【11月更文挑战第4天】
10 4
|
3天前
|
JSON 安全 Go
Go语言中使用JWT鉴权、Token刷新完整示例,拿去直接用!
本文介绍了如何在 Go 语言中使用 Gin 框架实现 JWT 用户认证和安全保护。JWT(JSON Web Token)是一种轻量、高效的认证与授权解决方案,特别适合微服务架构。文章详细讲解了 JWT 的基本概念、结构以及如何在 Gin 中生成、解析和刷新 JWT。通过示例代码,展示了如何在实际项目中应用 JWT,确保用户身份验证和数据安全。完整代码可在 GitHub 仓库中查看。
14 1
|
7天前
|
Go 数据处理 API
Go语言在微服务架构中的应用与优势
本文摘要采用问答形式,以期提供更直接的信息获取方式。 Q1: 为什么选择Go语言进行微服务开发? A1: Go语言的并发模型、简洁的语法和高效的编译速度使其成为微服务架构的理想选择。 Q2: Go语言在微服务架构中有哪些优势? A2: 主要优势包括高性能、高并发处理能力、简洁的代码和强大的标准库。 Q3: 文章将如何展示Go语言在微服务中的应用? A3: 通过对比其他语言和展示Go语言在实际项目中的应用案例,来说明其在微服务架构中的优势。
|
7天前
|
Go 数据处理 调度
探索Go语言的并发模型:Goroutines与Channels的协同工作
在现代编程语言中,Go语言以其独特的并发模型脱颖而出。本文将深入探讨Go语言中的Goroutines和Channels,这两种机制如何协同工作以实现高效的并发处理。我们将通过实际代码示例,展示如何在Go程序中创建和管理Goroutines,以及如何使用Channels进行Goroutines之间的通信。此外,本文还将讨论在使用这些并发工具时可能遇到的常见问题及其解决方案,旨在为Go语言开发者提供一个全面的并发编程指南。
|
5天前
|
Go 调度 开发者
探索Go语言中的并发模式:goroutine与channel
在本文中,我们将深入探讨Go语言中的核心并发特性——goroutine和channel。不同于传统的并发模型,Go语言的并发机制以其简洁性和高效性著称。本文将通过实际代码示例,展示如何利用goroutine实现轻量级的并发执行,以及如何通过channel安全地在goroutine之间传递数据。摘要部分将概述这些概念,并提示读者本文将提供哪些具体的技术洞见。