Go 不是谷歌亲儿子吗?

2021-11-07 11:42:48 +08:00
 MakHoCheung

https://developers.googleblog.com/2021/11/announcing-kotlin-support-for-protocol.html

At Google, we’re investing deeply in the Kotlin language and ecosystem. Android development is now Kotlin first, our engineering teams work on language evolution through the Kotlin Foundation, and inside of Google we’re using Kotlin more and more to build our backend services. We love Kotlin for its expressiveness, safety, simple async support through coroutines, and easy bidirectional interoperability with the Java programming language.

14577 次点击
所在节点    Go 编程语言
101 条回复
oOoOoOoOoOo
2021-11-07 18:39:26 +08:00
@skiy 所以不久后某些公司应征标准: 熟练掌握本公司开发语言
skiy
2021-11-07 19:04:18 +08:00
@sagaxu at google 和 by google 的差别😂
janus77
2021-11-07 19:09:43 +08:00
go 不擅长用于后端服务啊,都是中间件和工具类软件比较多,写业务还是 java 好
coolmenu
2021-11-07 19:10:04 +08:00
@skiy 还真是这些细微的区别
iseki
2021-11-07 19:26:13 +08:00
发表点暴论:go 除了编译打包比 kt 快,语法规范比 kt 短,还有啥好处吗?这两个特点也都是放弃了大量特性才换来的…
MakHoCheung
2021-11-07 19:30:20 +08:00
@skiy 明年估计是华为的仓颉
R4rvZ6agNVWr56V0
2021-11-07 20:58:21 +08:00
Ref: https://qr.ae/pGDClR

There is no single programming language. Google has a very open development environment with many different service APIs.

Java, Javascript, C++, Python, Go, Sawzal (a custom logging language), and probably a few other languages are supported.

Search is mostly based on C++ and some Python.

Ads is a Java/SQL stack.

Google Apps is a Javascript/Java/C++ stack.
godev2021
2021-11-07 21:00:34 +08:00
@iseki 哈哈 业余写一下  Go 简洁随性
minsheng
2021-11-07 21:09:15 +08:00
@MakHoCheung

具体到 Swift 里面,举个例子。

Swift 不像 Java ,语言自带 getter/setter 。Swift setter 可以理解成一个语法糖:

var current = value.property
modify(&current)
value.property = current

这样就会导致一个问题,在修改 value.property 的时候,它的值被复制了一遍。Swift 里很多类型内部存储都是一个引用计数的对象,然后实现了一层 Copy-on-Write 。但如果 current 被复制了一遍,那么在调用 modify 的时候,current 那边就会发现自己的内部存储和 value.property 是共享的,所以就直接必须分配内存、深拷贝。这就让 Copy-on-Write 变得没有意义了。

Swift 有隐藏语法,_read/_write 来替代 get/set ,可以直接 yield ,避免这个问题,但这不属于语言标准的一部分,是编译器暂时给大家在性能很要命的地方,比如说标准库的容器实现,用的。
zjsxwc
2021-11-07 21:14:32 +08:00
swift 与 java js 不能放一起比吧,swift 没有 gc ,是通过编译时自动代码生成回收资源,确实有成为系统级编程的可能,比那个立志取代 rust 的 v-lang ,但最后好像翻车了,靠谱多了。
ly841000
2021-11-07 21:14:32 +08:00
@iseki 不是暴论,go 除了能编译 native, go 有的 c#全都有,甚至 c#的 native 编译也基本可用, 我是不明白转 go 有什么意思
感觉 go 是私生子, Dark 是亲儿子,Kotlin 是干儿子
casillasyi
2021-11-07 21:22:15 +08:00
没有什么好怀疑争论的,原来写 go 的就踏实写 go ,原来写 Java 的就踏实写 Java 。不要因为 google 用了什么就觉得什么好,kotlin 写后端服务在国内要推广普及还有很长的路要走。虽然我也觉得 kotlin 是 better java 。
cyrivlclth
2021-11-07 21:47:20 +08:00
@skiy 不用立了,以前在华为用过一款自研语言,名字叫 GTR 。。。08 年整出来的
wtdd
2021-11-07 22:03:53 +08:00
亲不亲的别太当真,语言这种基础工具就像工具箱,换哪个都是用,喜欢就换,死脑筋才抱着一个工具箱当儿子
agagega
2021-11-07 22:16:02 +08:00
@skiy
做个新语言本来就不是什么麻烦的事情,现在 LLVM 已经非常成熟了。对操作系统和编程语言这些东西(单指「有没有」,可以挖的地方还是很多的)产生莫名其妙的崇拜,属于是十几年前某些专家言论的余波。

问题在于推了个语言,之后呢? Apple 能推 Swift 是因为对自家生态有高度的掌控力,微软的 C#也类似,但也是基于微软这种巨头十几年如一日地推; Rust 、Go 能流行是因为他们很好地解决了某类问题。

就国内某些企业朝三暮四始乱终弃对待自家开源项目的作风,且不论这些语言会成啥样,作为开发者很难对他们产生多少信任。
Leviathann
2021-11-07 23:04:03 +08:00
@MakHoCheung 听说是一个比较像 ts 的静态语言,编译到 js
Leviathann
2021-11-07 23:26:41 +08:00
@agagega docker k8s 的大获成功对 go 的推广简直是神之助力,killer app 绝对是推广语言的最佳办法
像 kotlin 1.0 了 5 ,6 年,大饼还摊的特别大,海陆空( jvm native web)三栖制霸,说实话生态也就差强人意,好在 jvm 上能沾 java 的光
skiy
2021-11-07 23:40:23 +08:00
@agagega 都是从内部推的吧。国内的开源治理很差。当初 centos 说要转成 stream 形式发布的时候,rockylinux 在短短的时间内就已经把整个架构搭建起来了。国内的很多开源项目都是单打独斗的多。或者说总搞内讧(最近发现 qv2ray 就是内讧了)

华为要推它自家的鸿蒙,所以它将要推的编程语言与它的手机操作系统生死与共。swift 与 apple 的各产品也是如此。

必须要依靠垄断性的产品和话语权来推吧。(比如如果出来一个现象级的 VR 产品,然后该产品要使用某某语言,我觉得还是有机会的)
skiy
2021-11-07 23:44:32 +08:00
@MakHoCheung 如果鸿蒙没起来,华为的手机没芯片卖了的话,这个很难推。
zhilincom
2021-11-08 00:13:10 +08:00
@skiy 不懂开源项目有什么可内讧的?不满意可以自己 fork 一份改啊。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://yangjunhui.monster/t/813608

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX