cgo有必要存在吗?

weixin_38053139 2019-09-20 10:55:18
想不到cgo存在的用途,虽然高了一点性能和可复用c的库,但使得代码复杂性大大增加和可读性急剧下降,得不偿失啊!还不如将程序写成纯c和纯go通讯的模式
...全文
49 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38067090 2019-09-20
  • 打赏
  • 举报
回复
顺便说一句。写黑客工具 那种现成的 hook rootkit 都是c写的。。- - 再写一遍。。。是不是很难受。
weixin_38069603 2019-09-20
  • 打赏
  • 举报
回复
我是说用通讯方式实现c的调用,比如通过rpc或自定义协议。
weixin_38071717 2019-09-20
  • 打赏
  • 举报
回复
有些情况必须要用cgo,像runc调用setns,go启动就是多线程,人家要求不是多线程才能调
weixin_38092066 2019-09-20
  • 打赏
  • 举报
回复
很有必要,并且是go的优势之一。 不知道系统编程的,不会明白。 java和python,在这方面就是一个明显的弱点,调用C语言函数库不方便。 整个IT业的基础技术还是C语言,整个IT业还是建立在C语言的基础之上。
weixin_38121048 2019-09-20
  • 打赏
  • 举报
回复
cgo不是本来就是go和c通信的方式么? rpc?自定义协议?你准备改造所有的c语言库么 别的不说,我记得sqlite就是cgo的吧,总部间的要求sqlite自己跑成一个服务吧……
weixin_38137526 2019-09-20
  • 打赏
  • 举报
回复
同志= = 比如 hook rookit 还有楼上说的系统编程 是无法用那种什么狗屁 rpc那种那么重的协议的。。。 我也是搞java的。。但是我感觉java最大的缺点是 各种jar包 各种协议怼上去怼的特别臃肿。。。
weixin_38137535 2019-09-20
  • 打赏
  • 举报
回复
我给你举个例子 场景。。。实现进程的隐藏 就这么个需求 java就得费。。。。go的编译型优势就是 系统编程 兼顾 网络编程。。。你多干几年系统编程就理解了。
weixin_38138267 2019-09-20
  • 打赏
  • 举报
回复
赞同,但是考虑下项目迁移的时间问题。在和系统打交道这块少了cgo,go的优势就弱了很多。
weixin_38063369 2019-09-20
  • 打赏
  • 举报
回复
你怕是没遇到过调C的场景。。人家写好的C直接调就行了。。。 C的生态和开源的我都不说有多少了 难道你再重写一遍???

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧