不考虑 c,只考虑 c++
不考虑嵌入式
先说我的个人观点
我觉得能。虽然性能略逊,但研发协作效率更好
我也是 golang 萌新,大家再来各抒己见吧
1
Weixiao0725 2020-05-25 02:08:03 +08:00 7
根本不可能,rust 都不敢说这话
|
2
hehheh 2020-05-25 02:13:07 +08:00
@Weixiao0725 你一说 rust,我倒是想起来前几年这种话题的主语一般是 rust 。
|
3
u823tg 2020-05-25 02:14:19 +08:00
肯定会挤压 c++一定的份额,但是取代不可能。 后面可能 rust 也会挤压 c++份额,毕竟好多 c++ bug 是内存问题。人是最不可信。
|
4
CismonX 2020-05-25 02:49:50 +08:00
template metaprogramming 是 C++ 的灵魂
然而 go 现在连个最基本的泛型都还没有( |
5
momocraft 2020-05-25 02:58:11 +08:00
个人观点: 你根本不知道为什么需要 c++
|
6
neoblackcap 2020-05-25 03:10:21 +08:00 16
先多写两行 golang 的代码,你就知道到底 golang 缺什么,有什么优势。不要天天 golang 的代码都没写多少就开始各种安利。你连坑都没踩,连填坑都不知道怎么填,安利都很无力就问能不能替代这个替代那个。你心中都没有数,告诉你结果你又会相信么?
|
7
fixend 2020-05-25 04:22:50 +08:00 via Android
十多年前,安卓,移动互联网还没流行,满街都是 c, c++,vb,delphi,php,用 java 的都很少,c++是大学生必学语言。
现在比起以前,c++的确没落了,很多学生根本不学这个,对个人能力要求高,待遇又没 java 高,写起来还累。 学得人少,招不到人,很多公司也转语言了。 go 这几年的确越来越多公司用,虽然远比不上 java,总得来看,发展趋势是很好的。 |
8
littlecreek 2020-05-25 04:25:15 +08:00
C++在一些特定领域, 对内存布局有很高要求的地方, 仍然无法用 Go 代替
另外语言本身只是一小部分因素, C++大量的现存库, Go 在这方面短时间内仍然存在很大短板. 所以不存在替代的问题. 最近这些年各种新语言如过江之鲫, 但是之前的语言真正被挤压而式微的, 估计就三两个吧, 而是都是本身存在明显的短板, 且并未形成较高的生态的. (比如 Perl?) |
9
ericgui 2020-05-25 04:44:12 +08:00
用 golang 写 JVM ?
|
10
lithbitren 2020-05-25 05:32:19 +08:00 2
不太可能,除了方便的并发和 gc 在 web 上比较好用,其他不管是语法还是生态都比不了包括 c++在内的主流语言。
带 gc 的语言,基本进入不了必须用 c++的场景。 go 的阵地主要还是做 web 服务,或者对服务做些基础设施,未来应该还可以吃掉一些其他 web 语言的份额吧,c++就别太强求了。 |
11
iceheart 2020-05-25 06:21:01 +08:00 via Android 3
chrome 和 golang 都是谷歌的亲儿子,也没见 chromium 里有一行 go 代码啊
|
12
clino 2020-05-25 06:22:07 +08:00 via Android 2
go 能做应用,不适合做系统,楼主应该没考虑到做系统的场合
rust 应该是新兴语言里唯一适合做系统的 |
13
k9982874 2020-05-25 07:12:23 +08:00 via iPhone
面对的场景都不一样谈何替代?
这问题就好像司机能替代厨子一样 |
14
silvernoo 2020-05-25 07:42:04 +08:00 1
go 的编译器就是用 go 写的,只要够强,就能替代很大的一部分 C++的份额
|
15
AngryPanda 2020-05-25 07:42:48 +08:00 via Android
@fixend 我特意去看了 tiobe 排行榜 2010 年的,java 已经是仅次于 c 的第二名。
|
16
vk42 2020-05-25 07:51:43 +08:00 3
动不动喊要取代谁是新手才会有的行为。语言之间的差异化决定了它们各自有各自适用的场景。硬把不适合的语言塞到不适合的应该场景那就是自找苦吃……
|
17
zachlhb 2020-05-25 08:00:24 +08:00 via Android
@iceheart 是的,这也就是为啥我一直不学 go 的原因,连谷歌自己都不怎么用的语言,大家却用的这么起劲,就像安卓,谷歌又搞个 kotlin,如果真的看好 go,直接把 go 优化了迁移上去啊
|
19
zjsxwc 2020-05-25 08:07:50 +08:00
GC 问题,go 不能代替 cpp
|
21
playniuniu 2020-05-25 08:21:23 +08:00 via iPhone
虽然我力挺 Go,但我觉得 Go 根本不可能取代 c++,应用场景完全不一样。
Rust 能取代 C++ 吗?我也很怀疑。Rust 学习曲线陡峭,注定小众。任何不容易入门的语言,注定不会流行。哪怕设计的再优雅也不行。 |
23
xuanbg 2020-05-25 08:37:22 +08:00
大众语言靠生态,小众语言靠爱发电。靠爱发的电充其量照亮一个小角落,怎么有可能影响到生态呢。
|
24
sunziren 2020-05-25 08:38:59 +08:00
“golang”,这个单词是不是念“江狗”
|
26
z281874655 2020-05-25 09:13:34 +08:00
go 的工资溢价是真的高
|
27
nicevar 2020-05-25 09:15:24 +08:00 1
想取代 c++的语言多了, go 算老几...
|
28
hobairiku 2020-05-25 09:21:47 +08:00
只要有 GC,就别说话了
|
29
PotatoBrother 2020-05-25 09:24:54 +08:00
不能,这辈子都不能。
|
30
XIVN1987 2020-05-25 09:25:59 +08:00
GC 语言不可能完全替代非 GC 语言,,
|
31
artyhacker 2020-05-25 09:27:00 +08:00
Go 对标的是 Java,Rust 对标的才是 C++. 目前来看二者都是不可能成功取代的.
|
32
coloz 2020-05-25 09:27:34 +08:00
现在开发硬件用 c++的越来越多了
|
33
jorneyr 2020-05-25 09:30:01 +08:00 1
同理: 这么多年对 Java 喊打喊杀的多了去,Go 算老几
|
35
zachlhb 2020-05-25 09:38:51 +08:00 via Android
@ica10888 我们公司前面经理用 go 开发的项目全都不稳定,客户天天反馈投诉,然后现在老板直接封杀了 go,经理被撤职,也不知道是技术问题还是语言问题,但是我用 py 写的就没问题,而且我 py 还是新学的
|
36
shilyx 2020-05-25 09:39:02 +08:00
golang 会取代一部分 c++做服务端程序的份额
但是这部分份额 golang 不取代,也会被 java netcore 等去取代 c++的固有优势领域(操作系统 网络模块 计算模块 内存敏感模块 效率敏感模块等)还未受到 golang 的影响 ps:前段时间用 golang 写排序,恶心坏了,无比想念 c++的泛型,更加羡慕 c#的函数式 |
37
liuguang 2020-05-25 09:39:35 +08:00 4
go 语言错误处理麻烦、没有泛型、没有枚举,gc 性能一般比不上 Java 。不支持原生的线程,在 CPU 密集型的应用中,性能必然不行。而嵌入式方面,go 的运行时过大,导致根本不能用在嵌入式。总体而言华而不实,写 web 程序可以,其它领域基本没啥优势可言。rust 替换 C++倒是有可能,你看 linux 内核现在允许提交 rust 代码了,它为啥不允许提交 go 语言代码呢,想一想。
|
38
fixend 2020-05-25 09:42:51 +08:00 via Android
@AngryPanda 那个搞笑榜? Python 的排名现在还比 java 高呢,你看有多少公司招 python 的?
|
39
securityCoding 2020-05-25 09:44:38 +08:00
@zachlhb kotlin 是 jb 家的...
|
40
sryanyuan 2020-05-25 09:47:35 +08:00
争来争去没意思 学两个 根据项目来选语言
|
41
eliteYang 2020-05-25 09:52:20 +08:00
go 连太子都算不上,还在争夺封疆大吏中
|
42
paoqi2048 2020-05-25 09:55:50 +08:00
C++是游戏开发领域的绝对霸主,连 C 都做不到,更不要说 go 了
|
43
default7 2020-05-25 10:03:22 +08:00
@z281874655 红利期啊,要快,不然过了就难
|
45
AlohaV2 2020-05-25 10:10:55 +08:00 via iPhone
领域细分的结果而已,取代我觉得是很难的,各有各的优势。c++的优势在于接近更低级的语言,我能遇见的代码里,c++用来和 fpga 打交道,做交易系统做回测系统。干这行不赚钱么?中国人有句话叫.....
|
46
xiri 2020-05-25 10:13:47 +08:00
rust 可能更适合,但是完全代替还是不太可能的
|
47
blless 2020-05-25 10:14:52 +08:00 via Android
@zachlhb 有一说一啊,楼上说话的好歹也是学过用过的…你这说不学也不会学 Go 的也在指指点点有点过分了啊
|
48
blless 2020-05-25 10:21:34 +08:00 via Android
Go 对标的从来不是 C/C++,Go 在我看来的唯一优势就是心智负担够低。记得领域驱动设计里面有提过,业务也是区分技术复杂度和业务复杂度的。很多业务根本就不是技术问题,这个时候 Go/Java 之类优势就出来了。
|
50
gggxxxx 2020-05-25 10:42:15 +08:00 via iPhone 1
开发中语言并不需要,重要的是现存库。能代替 c++的语言太多了,但是基础库比传统 c/c++的库好的不多。
java 就是最典型的例子,java 语言本身很弱,但是库强大。处理个字串都全部用的库函数。 如果有其他语言能方便直接对接现存 java 库,java 也早就被取代了 |
51
littlewing 2020-05-25 10:43:53 +08:00 via iPhone
不可能,除非没有 GC
|
53
ppphp 2020-05-25 11:21:11 +08:00
游戏服务端是据我所知唯一一个 c++能被 golang 完全替代的领域,其他省省吧
|
56
2kCS5c0b0ITXE5k2 2020-05-25 11:31:39 +08:00
@gggxxxx Kotlin ?
|
58
SingeeKing 2020-05-25 11:47:35 +08:00
@sunziren #24 我怀疑你在钓鱼,Python 表示你在逗我
|
59
wangyzj OP @neoblackcap 一个纯讨论到您这就成安利
|
61
chihiro2014 2020-05-25 11:57:08 +08:00
每个语言都有它存在的道理。想替换 C++,太难。Go 其实是个比上不足,比下也不足的产物。想去替换 C++但是根本做不到。因为底层 rust 的性能远比 go 来的强,rust 都做不到,更何况 go 呢?如果是上层应用,比如 web,又比不过 java 。Web 后端开发,能有 java 更快的么。所以其实 go 还是蛮尴尬的,个人见解
|
62
beidounanxizi 2020-05-25 12:02:07 +08:00
为了 go 我可以放弃 JAVA 取代不取代 这个话题 太容易钓鱼了🎣
|
63
si 2020-05-25 12:05:01 +08:00
完全替代是不可能,如果排除掉某些,那也不叫完全了。
如果只是单纯要拿来替代,不考虑其他问题和成本,那大部分情况下都是可以的。 大部分语言在大部分情况下都可以被别的语言代替。C++可以被 go 替换,Go 也可以被 C++替换 一般个人写某门语言不爽了,随时可以换其他语言重写。但一个公司那么多人,不会出现某个员工觉得用某某语言不爽,叫公司换语言。只有遇到因为语言的严重的缺陷导致的问题,才会考虑。 一个用 C++的公司,招的员工都是用 C++的,一般都是熟悉 C++,不熟悉 Go,你问他们选择用什么,那肯定是选择熟悉的 C++。 |
66
wangyzj OP @chihiro2014 你这个说的在理
go 生存在一个半低层区域,至于说做 web 应用,主要是我特别不喜欢 java,但我也承认生态上 java 是无敌的 |
71
cumt21g 2020-05-25 12:48:46 +08:00
go 没可能,rust 有可能
|
74
tulongtou 2020-05-25 12:59:18 +08:00 via iPhone
@zachlhb go 从设计底层来说,就不适合写 UI 类型的应用。其次 kotlin 直接编译成 jvm 的字节码,和 Java 无缝衔接,Android 切换到 kotlin 开发没有什么成本,换 go 的话成本高多了
|
75
bojue 2020-05-25 13:02:29 +08:00
自己收藏了一个链接,辩证的看吧,技术选型只有遇到瓶颈的时候才会显示出重要性: https://www.zhihu.com/question/50065322/answer/1095622997
|
76
Jirajine 2020-05-25 13:04:12 +08:00 via Android
@playniuniu 一直不知道“Rust 学习曲线陡峭,注定小众”这个说法是怎么来的,rust 完全对标 cpp,论学习曲线、上手难度远比 cpp 容易的多,cpp 这么一个恶心丑陋的缝合怪都能流行起来为什么 rust 不行呢。
|
77
damngood 2020-05-25 13:07:15 +08:00
对性能要求特别高的场景不太可能完全用 go 去做. 至少是在 hot path 上用 c/c++/rust 来处理.
所以完全替代 c++ 是不存在的. 这个任务就丢给 rust 这种吧. 对于绝大部分的应用服务来说 go 是可以用来取代 c/c++ 的. 心智负担上小不少. 当然这同样也是 Java 的主场. |
78
jinsongzhao 2020-05-25 13:10:19 +08:00
不可以,C++需要一个没有 GC 的语言替换,目前比较公认的是 rust 。
|
79
jinsongzhao 2020-05-25 13:12:00 +08:00
@Weixiao0725 别说太满,C 不可以还接近点。C++嘛,没准 10 年后,真大变样了。
|
80
wangyzj OP @Jirajine cpp 的问题你是说到点上了,rust 的问题还是生态问题,而且缺少杀手级别应用
就好比 go,没有 docker,go 还不知道在干嘛 |
81
wangyzj OP @jinsongzhao #79 你这句我是同意的,c 是无敌的,c++太乱了
|
82
newmlp 2020-05-25 13:17:22 +08:00
不可能,只要追求性能的程序,一定是 c 艹的天下
|
83
blless 2020-05-25 13:21:20 +08:00 via Android
其实 Go 算起来还能算 C 一族语系,底层内存模型几乎都是用 C 解释的。因此 Go 另外一个好处就出来了,学好 Go 理论上是可以平滑深入 C 的。JAVA C#这种优势就比较小,我刚开始学 Java 其实引用类型跟值类型都好久没搞懂。学了 Go 之后反而有些东西豁然开然了。
|
84
fixend 2020-05-25 13:25:08 +08:00 via Android
@tulongtou 那都比较后面了,03,04 年的时候,主流机器还是单核 2Ghz,256m,512m 内存,跑 c++都觉得慢,印象中也就银行,网易会用 jsp,其他都是 php,asp,vc6.0 vb6.0,那时候 java 还是用 jbuilder 做 ide,卡得要死,j2ee 有,但不流行,一般公司用不上,需求都是做 erp 。
|
85
jinsongzhao 2020-05-25 13:27:43 +08:00
@playniuniu
@Jirajine C++也很陡峭了,用了 10 多年都没学完所有特性,很多特性不到那个场景也用不到。C++之父给它定义的原则是,包含所有完善的语言特性,用不用和用法由人去决定,没有包含 GC 是因为 GC 没有达到他的“完善”标准。我认为如果要 Rust 优雅起来,会损害灵活性,就不可能替代 C++了。 |
86
tairan2006 2020-05-25 13:32:22 +08:00
不能,go 最适合搞网络编程,其他领域都一般。
|
87
yy77 2020-05-25 13:42:05 +08:00
连 google 自己也没有全线采用 Go 来替代。一般而言,需要按照具体的需求和情况来分析。
|
88
AmrtaShiva 2020-05-25 13:43:25 +08:00
替代 Python 倒是有那么一点点可能
|
90
TransAM 2020-05-25 13:50:28 +08:00
|
91
natforum 2020-05-25 13:51:20 +08:00
rust 能替代 c++吧
|
92
MarkLeeyun 2020-05-25 13:54:39 +08:00
@iceheart 您看过 chromium 的代码吗?说不定别人正在用 go 小范围重构呢?
|
93
fyxtc 2020-05-25 14:07:38 +08:00
真是日经贴。。。天天争哪个语言好能加工资吗?
|
94
hankai17 2020-05-25 14:18:46 +08:00
死循环 跟 协程那个快? 毫无疑问 死循环快
|
97
hronro 2020-05-25 14:34:16 +08:00 via iPhone
@MarkLeeyun 你知道 Linus 今天起床后脑袋里想了什么吗?说不定他正在设想明天用 Go 重写 Linux 内核呢
|
98
dog82 2020-05-25 14:43:16 +08:00
golang 的应用场合是高并发的服务端,取代部分 j2ee,跟 cpp 的重合度并不高
|
100
xpresslink 2020-05-25 14:58:34 +08:00
够浪能开发 3D 游戏么?
|