即所有的依赖都会被编译到单个可执行文件中去, 没有 DLL 之类的外部依赖?
1
Immortal 2018-01-12 10:01:48 +08:00
没有
如果想要,连 web 的那些图片资源,静态页都可以给你打包进去 |
2
xvsfezz 2018-01-12 10:10:05 +08:00
go 就是为了解决 c++那些复杂的依赖而来的
|
3
we000 2018-01-12 10:13:31 +08:00 1
```
go build -buildmode=shared -linkshared pkg_name go build -linkshared main.go ``` 1.5 版开始就可以动态链接了, 如果一定要这样的话... |
5
88250 2018-01-12 10:16:31 +08:00 1
> go 就是为了解决 c++那些复杂的依赖而来的
然后把 Java 干翻了。 |
6
willchen 2018-01-12 10:18:54 +08:00 1
支持动态链接库 so 文件
|
8
gamexg 2018-01-12 10:52:06 +08:00
是啊,
而且不需要配置就可以交叉编译,直接一次性编译出来 windows、linux、android 下的代码。 |
9
darrh00 2018-01-12 10:59:06 +08:00
看是不是用 cgo,用了就不一定了。
|
10
bramblex 2018-01-12 11:00:20 +08:00
|
11
mengzhuo 2018-01-12 11:12:23 +08:00
是的
谁再敢在生产环境给我整动态链接库的我整死谁 |
12
amaranthf 2018-01-12 11:23:43 +08:00
@bramblex 看层次怎么定义了,反正在我看来所有直接编译成 native 代码的东西都是同一个层次的。
我觉得 go 还是蛮好用的,用这东西写代码,最初你会觉得憋屈,但是憋屈惯了就会发现这东西的开发效率是真高,比 C++高一百倍,工程规模上去之后比 python 也不弱。 |
13
wowowo1 2018-01-12 11:26:35 +08:00
楼上真是为了黑而黑的黑。
|
14
wowowo1 2018-01-12 11:34:44 +08:00
不纯粹。
看编译方式和喜好了, 只看编译方式: 即便只是纯 go,编译方式不一样,( CGO 有没有打开),有些还是会调用本地的 so 文件,有些还调用 libc。 但是说到喜好: 有些直接把静态文件搞进代码。https://github.com/jteeuwen/go-bindata,编译出来还是一个独立的二进制文件。 有些直接把一坨 c 源码搞进代码。https://github.com/mattn/go-sqlite3,编译出来还是一个独立的二进制文件。 有些就要第三方 so 了,https://github.com/qiniu/iconv。 对楼上有些人:&还是 '鬼画符语言适合你。 |
15
bramblex 2018-01-12 11:45:15 +08:00 1
@amaranthf
比 c 艹开发效率高 100 倍的东西多了去了... 我说的是不同的使用场景, 而不是去单单是写写后端这一个领域. 如果你说就写写后端来说, go 开发效率高当然没问题, php 开发 web 效率也高啊. 说 go 半残疾是指 go 更多一个 dsl , 而不是一个现代通用编程语言, 跟 php 一个道理. 所以我不喜欢 go. |
16
bramblex 2018-01-12 11:49:56 +08:00
已 block 楼上那种不懂乱喷的.
鬼画符? 物理数学那么多符号还不都是鬼画符? 你随便开一个算法的讲解难道不是一堆鬼画符? 你随便打开一个计算机相关领域的论文难道不全都是鬼画符? 不懂没问题, 不要瞎比比. 不然我会觉得 goer 都沦落到 phper 水平了. |
20
cholerae 2018-01-12 12:10:45 +08:00 via Android
看眼 go build 的帮助就知道了
|
21
itplanes01 2018-01-12 12:22:21 +08:00 via Android
@bramblex go 开发者的称呼貌似不是 goer,所以,所以了。
|
22
itplanes01 2018-01-12 12:24:45 +08:00 via Android
@bramblex 而且 goer 的英语意思有骂人的语义。
|
23
doubleflower 2018-01-12 12:46:15 +08:00 via Android
go 用 8 宽 tab 缩进你们能忍?
|
24
chai2010 2018-01-12 13:01:58 +08:00
用纯 Go 的一般是单个文件,但是也可能动态链接( netdns 部分)。用 cgo 的一般会有外部依赖,但是也可以静态链接 gcc 的运行时。
|
26
male110 2018-01-12 13:13:39 +08:00
没有
|
27
neoblackcap 2018-01-12 13:16:30 +08:00
@xwhxbg 大概就是应用了现代 PL 理论成果的语言吧,比如有更强大的类型系统。说真的,我觉得 golang 的类型系统真聊胜于无。写类似泛型的代码那是一个痛苦,各种 interface {}。golang 作为一门语言,我觉得他更适合于分布式系统的领域。毕竟有一套比较好的基础,goroutine 什么的。一般性能要求不是特别高的,用 golang 写玩爆其他的,开发速度快,运行速度也过得去。还有就是跨平台简单的应用开发。
@doubleflower 这个应该不是规定的吧,tab 没有规定是 8 个空格宽啊,你可以自行设定为 4 个甚至 2 个空格宽,记得只是缩进用 tab 吧 |
28
missdeer 2018-01-12 13:19:13 +08:00
不一定,有些情况下可以有动态链接的
|
29
bobuick 2018-01-12 13:25:45 +08:00
动态链接是后面加的功能了,如果不去特地使用。都是静态的,只有一个二进制文件,真的一处编译,四处运行哦
|
30
mooncakejs 2018-01-12 13:40:39 +08:00
@bramblex 作为曾经的 phper,php 真轮不到你鄙视,trait interface,class,现代语言里有的,php 少了哪个?
|
32
wowowo1 2018-01-12 13:56:31 +08:00
反回去 block。
某些鬼画符语言的拥趸的爱好就是喷 go,然后看到 go 的新帖子,或者 go 帖子有新回复,立刻进来再喷一遍 go。 鬼画符语言的碰瓷系营销天下第一。 ![]( ) |
34
wowowo1 2018-01-12 14:03:51 +08:00
搞不明白了,
一个以改良 C++为目标的语言拥趸们天天来喷一个以改良 C 为目标的语言,结果还是干不过这门语言,服了。 除了让人更反感之外,到底有什么意思? 精神胜利? |
35
QAPTEAWH 2018-01-12 15:38:26 +08:00
路过求个图,各种编程语言图示。其中 C 是一颗子弹,golang 是三颗子弹。
|
36
amaranthf 2018-01-12 18:27:44 +08:00
@bramblex 大而全的东西总有自己的缺点,C 和 C++很通用了吧,前者构建大型工程的能力堪忧,后者的开发效率或者说对开发人员的水平要求是个硬伤,rust 更不用说了,学习阶梯感觉比 C++还要陡峭,可读性也是个问题。Java 在刚刚这些方面要好一些,但是整体来说就是一个“中庸”。而反观其他一些 specific 的领域,go 在后端以及不需要图形界面的中小型应用方面、python 在不关注执行效率的时候,js 在……在特么各种领域,也都混得风生水起。
|
37
wizardforcel 2018-01-12 19:54:24 +08:00
@bramblex C++ 的 ABI 一团糟,这点真不如 Golang。一个二进制处理方式的问题居然能扯到语言特性上。那 C++ 模板这种负生产力,去工业化的设计是不是该拿来黑一黑?
|
38
dobelee 2018-01-12 20:02:34 +08:00
原来是黑 php 的帖子。
|
39
rwdy2008 2018-01-12 20:03:40 +08:00
工作团队需要什么语言,我就学习并使用什么语言,技多不压身。
所以,你们在互相鄙视争论什么 |
41
bramblex 2018-01-12 20:44:21 +08:00 via iPhone
@wizardforcel 是
|
43
PythonAnswer 2018-01-13 13:12:41 +08:00 via Android
@itplanes01 哈哈你是说 goer 内心是爱 php 的 不然非叫啥 gopher 插点 ph 进去
|