不考虑 c,只考虑 c++
不考虑嵌入式
先说我的个人观点
我觉得能。虽然性能略逊,但研发协作效率更好
我也是 golang 萌新,大家再来各抒己见吧
![]() | 1 Weixiao0725 2020-05-25 02:08:03 +08:00 ![]() 根本不可能,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 ![]() 先多写两行 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 ![]() 不太可能,除了方便的并发和 gc 在 web 上比较好用,其他不管是语法还是生态都比不了包括 c++在内的主流语言。 带 gc 的语言,基本进入不了必须用 c++的场景。 go 的阵地主要还是做 web 服务,或者对服务做些基础设施,未来应该还可以吃掉一些其他 web 语言的份额吧,c++就别太强求了。 |
11 iceheart 2020-05-25 06:21:01 +08:00 via Android ![]() chrome 和 golang 都是谷歌的亲儿子,也没见 chromium 里有一行 go 代码啊 |
![]() | 12 clino 2020-05-25 06:22:07 +08:00 via Android ![]() go 能做应用,不适合做系统,楼主应该没考虑到做系统的场合 rust 应该是新兴语言里唯一适合做系统的 |
![]() | 13 k9982874 2020-05-25 07:12:23 +08:00 via iPhone 面对的场景都不一样谈何替代? 这问题就好像司机能替代厨子一样 |
![]() | 14 silvernoo 2020-05-25 07:42:04 +08:00 ![]() 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 ![]() 动不动喊要取代谁是新手才会有的行为。语言之间的差异化决定了它们各自有各自适用的场景。硬把不适合的语言塞到不适合的应该场景那就是自找苦吃…… |
![]() | 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 ![]() 想取代 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 ![]() 同理: 这么多年对 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 ![]() 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 ![]() 开发中语言并不需要,重要的是现存库。能代替 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 PRO @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 是无敌的 |
![]() | 69 DonaidTrump 2020-05-25 12:30:13 +08:00 @fixend 十多年前,JSP, Spring, struct, hibernate, EJB 都被你吃了? |
![]() | 71 cumt21g 2020-05-25 12:48:46 +08:00 go 没可能,rust 有可能 |
![]() | 72 DonaidTrump 2020-05-25 12:54:39 +08:00 via iPhone @fixend 企业级应用基本都是 jsp 的,庞大的 JavaEE 市场你都不知道嘛? |
![]() | 74 DonaidTrump 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 hikarugo 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 游戏么? |