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. RocketMQ历史版本下载
  2. 关于编辑器对input标签报错提示“表单输入没有相关label”的问题
  3. 小氓男-灰色按钮激活V1.0
  4. 研究表明,胸大无脑是不存在的......
  5. JS判断两种格式的输入日期的正确性
  6. java动态修改class_Java Agent入门学习之动态修改代码
  7. Windows和Linux动态库比较 (Zhuan)
  8. 红黑树的删除_红黑树揭秘
  9. python *args 和 **kwargs
  10. [Python设计模式] 第13章 造小人——建造者模式
  11. Collections.unmodifiableList方法的使用与场景
  12. 逻辑表达式三种化简方法
  13. Linux系统安装与使用基础实验报告
  14. PHP 100以内质数表
  15. LOAP引擎:clickhouse 01: 介绍、安装及集群搭建
  16. 算法学习笔记——数据结构:树状数组BIT
  17. 小程序页面浏览到底部触发事件
  18. 设置TextView滚动
  19. java selenium一一等待超时设置
  20. mysql定时任务 每日执行存储过程

热门文章

  1. IP地址的划分及其范围
  2. vue 数组中的元素 渲染到一行
  3. 智慧校园管理系统,精细化+网格化
  4. ubuntu18.04根目录已满造成开机失败报错Fail to start....
  5. EC-R3588SPC八核8K人工智能工业主机
  6. 零基础入门编程神器!苹果的免费编程应用出了Mac版了
  7. 室内制图如何让您的办公室受益
  8. 粤通院 招聘FPGA工程师
  9. 50个汉字对应到 varchar是多少
  10. 小程序报错 Invalid regular expression: invalid group specifier name