cgo不是Go

借用 JWZ的一句话

有些人,当他们面临一个问题时,认为“我知道,我会使用 cgo ”。那么现在,他们有了两个问题。

最近有人在 Gopher 的 Slack Channel 上使用 cgo,对此我感到十分担心,尤其是竟然有个组织内部打算用一个项目来展示 Go,那真是一个坏主意。对此,我曾说过很多次了,因此也许你们讨厌了我的游说,所以我想到了把它写下来并且去做。

cgo 是一个令人惊异的技术,它允许 Go 程序与 C 的类库交互操作。那是一个极其有用的特征,今天它达到了一个 Go 所无法企及的地位。cgo 是让 Go 程序在 Android 和 iOS 上运行的关键。

然而,这只是我的个人意见,我不为任何人说话,我认为 cgo 在 Go 项目中被过度使用了。我相信当面临需要重载一大段用 Go 编写的 C 代码时,程序员会更愿意选择用 cgo 去打包库而非 Go,因为他们认为那样更容易解决问题。我认为那是虚假经济。

显而易见的,cgo 也存在一些不可避免的问题,最明显的一个问题是作为一个二进制 blog,你不得不与显卡驱动或者窗口系统进行交互 。但是使用 cgo 所存在的问题,经过权衡后,大部分人认为还是比较少的。

当你在 Go 项目上建立一个 cgo 库的时候,你可能没有意识到你的这种权衡其实是不完整的。

java 翻译 go语言_cgo 和 Go 语言是两码事【已翻译100%】...相关推荐

  1. android多国语言翻译包命名,android多国语言翻译工具,一键生成28国家翻译6666翻车了...

    最近把软件发到google play苦于多国语言,手动翻译数量太多太蛋疼,因而用百度翻译api进行多国语言翻译.java 很少说直接上代码:json ""; api 匹配的是app ...

  2. Java真的是一门编译型的语言吗——即时编译器JIT

    Java真的是一门编译型的语言吗--即时编译器JIT 如有错误请大佬指正 JIT是什么 JIT(Just-in-Time,实时编译)一直是Java语言的灵魂特性之一. 让我们回忆一下Java程序是如何 ...

  3. 为什么除了Go语言, 其他类C语言都是垃圾[翻译][转]

    2019独角兽企业重金招聘Python工程师标准>>> 英文原文: http://www.syntax-k.de/projekte/go-review 原始翻译: http://ww ...

  4. 为什么可以说Java语言是准动态语言?

    什么是动态语言? 动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化.比如JavaScript便是一个典型的动态语言. 除此之外如Ruby.Python ...

  5. 机器翻译:谷歌翻译是如何对几乎所有语言进行翻译的?

    机器翻译:谷歌翻译是如何对几乎所有语言进行翻译的? 谷歌翻译大家想必都不陌生,但你有没有想过,它究竟是如何将几乎所有的已知语言翻译成我们所选择的语言? 作者:读芯术来源:今日头条|2020-10-11 ...

  6. java商城_商城系统常见开发语言及特点分享

    "对于软件开发的编程语言,其实没有万能灵药." 商城系统常见开发语言及特点 就目前而言,商城系统常见的开发语言有java.php..net等等.我们在搭建网上商城系统时,应该使用哪 ...

  7. 下列python语言、返回结果不是uc_MKAN1-UC 5103作业代写、代做Analytics作业、Java,Python,c/c++程序语言作业代做...

    MKAN1-UC 5103作业代写.代做Analytics作业.Java,Python,c/c++程序语言作业代做 日期:2020-05-21 11:08 Marketing Analytics Sp ...

  8. java和c语言的区别_C语言为何不会过时?你需要掌握多少种语言?

    关注.星标公众号,不错过精彩内容 整理/排版:付斌 转自:嵌入式ARM 01 为什么C语言不会过时 评价任何一门编程语言,都是招人骂的.永远是这样.就像是春寒料峭的季节, 街上穿棉袄和穿单衣的擦肩而过 ...

  9. python和java的区别-Java和Python的区别 学Python语言好还是Java好

    原标题:Java和Python的区别 学Python语言好还是Java好 相信不少想学编程的人都在纠结到底学Java好还是学Python,毕竟当下正是Python的火热时期,然而Java也同样占据编程 ...

最新文章

  1. GVA gin-vue-admin部署后端注意事项
  2. 【转载】Centos7修改root密码
  3. 设计模式学习笔记-观察者模式
  4. 基于CSMA -CA协议的无线星型网络的应用案例介绍
  5. 数组指针——指向数组的指针(通过指针控制数组)
  6. IGDB|2021年大学生夏令营开始报名啦!
  7. java声明代码是什么_java安全编码指南之:声明和初始化说明
  8. GWmodel | 地理加权模型(Ⅱ-1):地理加权主成分分析(GWPCA)
  9. Get Network Utilization
  10. mysql dbversion_爱可生详解MySQL|不能从MySQL 8.0 复制到 5.8?一招教你解决
  11. 新概念下兴起域名商机 云域名是神马浮云
  12. redhat 8常用命令实践
  13. VUE PC端和移动端适配
  14. 大三下,我们该做什么?一篇被转万次的日志,你值得一看
  15. 高德地图路径轨迹起点标点不变_竞品分析之高德地图与百度地图
  16. python爬虫大作业任务书_爬虫大作业
  17. Python爬取豆瓣读书Top250(正则表达式)
  18. 微信/微博的图片处理?-android酷炫图片处理(下)
  19. HTML + js 播放amr音频文件
  20. 光纤收发器的原理及应用_浅析光纤收发器的原理与分类

热门文章

  1. Joel Spolsky在耶鲁的演讲无责任导读
  2. 机器学习从入门到创业手记-1.3 必备的工具与框架
  3. 微控制器编程技术c语言,8位单片机C语言编程:基于PIC16(用c语言对pic16微控制器进行编程的实用指导)...
  4. 五位一体信息化管理平台:提升化工企业安全信息化、网格化和数字化监管能力
  5. 关于Pycharm主题Darcula下使用jupyter显示图片的颜色错误
  6. Ubuntu 安装 uWSGI
  7. struts2 超链接a标签执行action
  8. vue项目落地(qiankun.js)微前端服务
  9. 【poj2248】 Addition Chains(迭代加深)
  10. mssql注入和mysql注入_MSSQL注入代码