Redian新闻
>
golang性能比C和Cpp差好遠,尤其在非x86平台,跟本不是宣傳的
avatar
golang性能比C和Cpp差好遠,尤其在非x86平台,跟本不是宣傳的# Programming - 葵花宝典
r*9
1
公司的律师给办的eb1,140顺利通过,485也是他们给办。我的485全部材料交给律师一
个月了,还没有给我提交上去。
之前HR明确给我说不要自己和律师直接联系,于是我催了HR两次,她都是客套话,让我
等。
我现在着急用卡想跳槽,这个情况,如何破?
avatar
g*e
2
1 热
2 有些app明显不如果ipad 2 smooth,如wsj。翻页的时候找到了android的感觉。不知
道是不是app没优化造成的。
现在等app待优化
avatar
m*p
3
我上一個貼提到了golang兩大問題:GOGC和goroutine調度,今天開會同事又發現很多
其他性能問題。
1. encryption(對稱或非對稱):golang非常慢,比openssl慢10倍不止,因為openssl
寫了很多assembly,尤其在非x86上面特別明顯。
2. string vectorization:libc有很多手寫SSE/AVX優化,對應的golang根本全靠編譯
器,在x86和非x86上表現都很差,也是10倍不止。
3. 沒有標準threadlocal,這個Cpp14也有很多優化,多核性能差距明顯。
4. golang周邊庫不如cpp穩健,尤其和folly、abseil比較
5. golang不支持硬件加速,因為目前很多硬件廠商都倒向LLVM,它彌補了部分GCC、
ICC的弊病,留給golang的市場空間變小了
結論:
a. 嚴肅項目(尤其跟性能相關的後台項目)還是cpp天下
b. 深度學習應該使用python和cpp
c. 刷題最好用cpp或java,未來cpp/java都會有fiber,比goroutine強
總之golang看起來很好,但是實際性能不怎麼樣,注定是小眾語言。
avatar
M*s
4
avatar
d*6
5
刚才把这个帖子转发到PDA版,立马被删了,娃哈哈哈哈,伤不起啊!!

【在 g****e 的大作中提到】
: 1 热
: 2 有些app明显不如果ipad 2 smooth,如wsj。翻页的时候找到了android的感觉。不知
: 道是不是app没优化造成的。
: 现在等app待优化

avatar
b*t
6
go的三巨头就不说了,连小马仔russ cox都是当年的奥赛金牌。
你确信他们都搞错了。
avatar
a*y
7
为什么要删?

【在 d****6 的大作中提到】
: 刚才把这个帖子转发到PDA版,立马被删了,娃哈哈哈哈,伤不起啊!!
avatar
m*p
8
就憑幾個牛人幾個公司幾年時間就想超越cpp、java或csharp,我看懸,golang最好的
結果就是scala,是小眾語言。
avatar
d*6
9
“翻页的时候找到了android的感觉......"

【在 a***y 的大作中提到】
: 为什么要删?
avatar
w*m
10
go是区块链语言,不会是小众语言。
觉得go性能不好,可以去leetcode和java同时刷刷比较一下。
avatar
w*g
11
同意,响应时间这个确实太恼火了
我用zinio读杂志,居然每页都是分开16个小方格分别响应的,等小膏药都相应了都2,3
秒钟过去了,这个实在是不能忍

【在 g****e 的大作中提到】
: 1 热
: 2 有些app明显不如果ipad 2 smooth,如wsj。翻页的时候找到了android的感觉。不知
: 道是不是app没优化造成的。
: 现在等app待优化

avatar
y*j
12
个人认为GOLang作为系统语言来说过于高级,应该有一个稍微低级一点的语言GO--就好
了。
avatar
a*y
13
说明安猪和iPad的差距变小了,他们应该高兴才对。

【在 d****6 的大作中提到】
: “翻页的时候找到了android的感觉......"
avatar
w*g
14
用cpp可破。


:我上一個貼提到了golang兩大問題:GOGC和goroutine調度,今天開會同事又發現很多
avatar
k*0
15
CPU跟不上现象度

【在 g****e 的大作中提到】
: 1 热
: 2 有些app明显不如果ipad 2 smooth,如wsj。翻页的时候找到了android的感觉。不知
: 道是不是app没优化造成的。
: 现在等app待优化

avatar
g*t
16
Go的性能打的是java,python。
任何语言和c,Fortran, pascal比性能本身就是个错误。
从计算的角度来看。
能严肃多线程并行的语言除了c sharp,cpp, java就只有golang了。golang开发速度和
python差不多(如果你不用第三方库)。
avatar
c*y
17
RE

【在 d****6 的大作中提到】
: 刚才把这个帖子转发到PDA版,立马被删了,娃哈哈哈哈,伤不起啊!!
avatar
g*t
18
你说的这些都是很好的知识。但结论有些不靠谱。尤其是未来java的
Fiber赢goroutine.这个大部分其实是取决于资金,不是技术。
avatar
m*p
19
leetcode的測試數據量太小,大部分是jvm啟動慢的問題,而且jit也不一定被啟動。
leetcode的測試結果偏向靜態連結非託管程序。

【在 w********m 的大作中提到】
: go是区块链语言,不会是小众语言。
: 觉得go性能不好,可以去leetcode和java同时刷刷比较一下。

avatar
m*p
20
(如果你不用第三方库)-> 這個才是重點好嗎。
一個語言不是拼自己的標準庫,是拼社區,三方庫,這方面cpp和java完爆golang。
我結論的前提是:當FB和G、M開放他們自己的庫後,cpp競爭力明顯上升。再加上無縫
兼容LLVM,硬件加速未來也沒有問題。有機會去研究一下我提到的folly和abseil再說
吧,golang的三方庫就是開玩笑。

【在 g****t 的大作中提到】
: Go的性能打的是java,python。
: 任何语言和c,Fortran, pascal比性能本身就是个错误。
: 从计算的角度来看。
: 能严肃多线程并行的语言除了c sharp,cpp, java就只有golang了。golang开发速度和
: python差不多(如果你不用第三方库)。

avatar
m*p
21
我同意資金第一重要,但你認為力挺java的amazon + oracle + ibm + google比google
自己錢少麼?
golang連標準委員會都沒有(Cpp還是ISO呢),是google自己的玩具,其他大企業誰敢
大規模用?FB?Amazon?M?IBM?
另外還要考慮的是沈澱資本,按代碼量計算,golang能超過cpp或者java麼?感覺連
python這種二流語言都趕不上

【在 g****t 的大作中提到】
: 你说的这些都是很好的知识。但结论有些不靠谱。尤其是未来java的
: Fiber赢goroutine.这个大部分其实是取决于资金,不是技术。

avatar
g*t
22
我看的点不是web后台。我认为下面两个观察是很牢固的,当然,也欢迎批评。
1。能严肃多线程并行的语言除了c sharp,cpp, java就只有golang
2。不用第三方库,做数值计算要么多语言。单语言最好的选择现在我找到的就是golang。
我不用第三方库的理由是很明显的,你想想就明白了.
我不可能在指甲盖小的芯片里装pandas

google

【在 m*****p 的大作中提到】
: 我同意資金第一重要,但你認為力挺java的amazon + oracle + ibm + google比google
: 自己錢少麼?
: golang連標準委員會都沒有(Cpp還是ISO呢),是google自己的玩具,其他大企業誰敢
: 大規模用?FB?Amazon?M?IBM?
: 另外還要考慮的是沈澱資本,按代碼量計算,golang能超過cpp或者java麼?感覺連
: python這種二流語言都趕不上

avatar
g*t
23
这取决于公司对单个项目的投入。对散户来说这些信息是不可知的。
所以我认为这条不需要列入讨论内容。

google

【在 m*****p 的大作中提到】
: 我同意資金第一重要,但你認為力挺java的amazon + oracle + ibm + google比google
: 自己錢少麼?
: golang連標準委員會都沒有(Cpp還是ISO呢),是google自己的玩具,其他大企業誰敢
: 大規模用?FB?Amazon?M?IBM?
: 另外還要考慮的是沈澱資本,按代碼量計算,golang能超過cpp或者java麼?感覺連
: python這種二流語言都趕不上

avatar
w*m
24
做web都差不多的,没人care。
要看大腿。
java报了android的大腿。
python报了DL的大腿。
现在go要报区块链的大腿了。
一个语言的命运啊,当然要靠自我奋斗,但是也要考虑到历史的行程。。
avatar
g*t
25
假如不考虑第三方库等历史因素。我现在感觉Go开发速度和python差不多。
只要你自己补好emacs,vim等的tool。
写个区块链。python多半是比不上go。无论从开发速度还是运行和部署。

【在 w********m 的大作中提到】
: 做web都差不多的,没人care。
: 要看大腿。
: java报了android的大腿。
: python报了DL的大腿。
: 现在go要报区块链的大腿了。
: 一个语言的命运啊,当然要靠自我奋斗,但是也要考虑到历史的行程。。

avatar
m*p
26
我沒有說要用python這個二流語言啊,我的結論是:刷題練手、嚴肅項目最好用cpp或
java或csharp。
你說的那是嵌入式,那一定是c和cpp啦,golang編譯出來動輒xxxMB,不支持動態連結
,跟cpp沒法比。
如果做互聯網,那一定是java後台啦,框架多得很,為什麼不能用第三方庫?
如果做桌面應用,那一定是csharp啦,golang能很好的搞桌面麼?
這三種語言(cpp、java、csharp)語法越來越接近,而且java和csharp編譯器本身就
是cpp寫得,是一個非常好和成熟的路線,為什麼要搞另類的golang?
未來golang可以做的,他們(cpp20、java10、csharp8)都可以做,還有豐富的第三方
庫,為啥不用?
我個人感覺把這三種語言的新特性弄清楚比新學golang更重要,而且他們之間感念相近
,觸類旁通。

golang。

【在 g****t 的大作中提到】
: 我看的点不是web后台。我认为下面两个观察是很牢固的,当然,也欢迎批评。
: 1。能严肃多线程并行的语言除了c sharp,cpp, java就只有golang
: 2。不用第三方库,做数值计算要么多语言。单语言最好的选择现在我找到的就是golang。
: 我不用第三方库的理由是很明显的,你想想就明白了.
: 我不可能在指甲盖小的芯片里装pandas
:
: google

avatar
m*p
27
區塊鏈,為什麼不用cpp加第三方庫?

【在 g****t 的大作中提到】
: 假如不考虑第三方库等历史因素。我现在感觉Go开发速度和python差不多。
: 只要你自己补好emacs,vim等的tool。
: 写个区块链。python多半是比不上go。无论从开发速度还是运行和部署。

avatar
g*t
28
你非要无视事实。
说golang做不了严肃项目。
Python二流语言。
那又有什么意思呢?
我觉得你对two language dilemma 经历的不够。
不知道 两种语言 实际上会有多少麻烦。
谁要是觉得python 加c开发算法产品容易。
那他多半没做过足够多的项目。


: 我沒有說要用python這個二流語言啊,我的結論是:刷題練手、嚴肅項目
最好用
cpp或

: java或csharp。

: 你說的那是嵌入式,那一定是c和cpp啦,golang編譯出來動輒xxxMB,不
支持動
態連結

: ,跟cpp沒法比。

: 如果做互聯網,那一定是java後台啦,框架多得很,為什麼不能用第三方
庫?

: 如果做桌面應用,那一定是csharp啦,golang能很好的搞桌面麼?

: 這三種語言(cpp、java、csharp)語法越來越接近,而且java和csharp
編譯器
本身就

: 是cpp寫得,是一個非常好和成熟的路線,為什麼要搞另類的golang?

: 未來golang可以做的,他們(cpp20、java10、csharp8)都可以做,還有
豐富的
第三方

: 庫,為啥不用?



【在 m*****p 的大作中提到】
: 區塊鏈,為什麼不用cpp加第三方庫?
avatar
g*t
29
你自己查资料吧。golang处在c和python之间。
你把语言的表达能力做x
可预测性做y
XY上任何一个横向zone都有需求


: 區塊鏈,為什麼不用cpp加第三方庫?



【在 m*****p 的大作中提到】
: 區塊鏈,為什麼不用cpp加第三方庫?
avatar
f*t
30
不知道你为什么一个劲地揪着某些运算的性能不放,眼光狭隘。我就不在另一个帖回复
了,意见统一写在这里。
* 写一个http web service,几十行代码没有额外dependency,编译成一个binary放到
所有环境中都能运行。C++行吗?
* 加第三方库一般go get一下就解决了。C++/java行吗?就我个人经验而谈,从github
下载的C++开源项目,几乎没一个能按照README里的步骤顺利编译的。
* 随便创建几百个goroutine,之间用channel通信,基本不用考虑性能问题,开发效率
极高。C++行吗?你在测试中发现的不容易解决的性能问题,都是极端条件下才会发生
的现象,绝大多数时候并不需要担心这点。
* Go才出现几年,没标准委员会很正常。大公司不敢用的说法完全没有逻辑。大公司有
百万行以上的代码,工具都是针对现有语言开发的,不可能直接替换成另一种语言,都
是先从一小群爱好者开始慢慢推广。这也是为什么Amazon等公司一直用Java,FB费好大
劲给PHP做HHVM。目前Go在中小型公司的新项目上很受欢迎,另外uber算大公司了吧,
很多backend service选择了用Go开发,不也用着好好的。
大部分开发工作是business driven的,与其盯着几个10x性能问题,不如花时间想想这
些事情:招聘或培养合格程序员的成本,让代码在不同的开发与生产环境之间顺利部署
的难度,代码可读与可维护性,不需要微调时的开发效率……你就能明白为什么Go会在
web service和system management领域流行起来。最好的语言是满足business需求的同
时,综合成本最低的语言。
avatar
y*u
31
> 就我个人经验而谈,从github下载的C++开源项目,几乎没一个能按照README里的步
骤顺利编译的
嗯呢,都是泪啊

github

【在 f*******t 的大作中提到】
: 不知道你为什么一个劲地揪着某些运算的性能不放,眼光狭隘。我就不在另一个帖回复
: 了,意见统一写在这里。
: * 写一个http web service,几十行代码没有额外dependency,编译成一个binary放到
: 所有环境中都能运行。C++行吗?
: * 加第三方库一般go get一下就解决了。C++/java行吗?就我个人经验而谈,从github
: 下载的C++开源项目,几乎没一个能按照README里的步骤顺利编译的。
: * 随便创建几百个goroutine,之间用channel通信,基本不用考虑性能问题,开发效率
: 极高。C++行吗?你在测试中发现的不容易解决的性能问题,都是极端条件下才会发生
: 的现象,绝大多数时候并不需要担心这点。
: * Go才出现几年,没标准委员会很正常。大公司不敢用的说法完全没有逻辑。大公司有

avatar
g*t
32
楼主比较熟悉他传统上用来跑benchmark的一些case。可能没有实际卖过软件.
这个可以理解。但是软件现在是大发展的时代。。。

github

【在 f*******t 的大作中提到】
: 不知道你为什么一个劲地揪着某些运算的性能不放,眼光狭隘。我就不在另一个帖回复
: 了,意见统一写在这里。
: * 写一个http web service,几十行代码没有额外dependency,编译成一个binary放到
: 所有环境中都能运行。C++行吗?
: * 加第三方库一般go get一下就解决了。C++/java行吗?就我个人经验而谈,从github
: 下载的C++开源项目,几乎没一个能按照README里的步骤顺利编译的。
: * 随便创建几百个goroutine,之间用channel通信,基本不用考虑性能问题,开发效率
: 极高。C++行吗?你在测试中发现的不容易解决的性能问题,都是极端条件下才会发生
: 的现象,绝大多数时候并不需要担心这点。
: * Go才出现几年,没标准委员会很正常。大公司不敢用的说法完全没有逻辑。大公司有

avatar
h*c
33
哈哈哈,确实如此。

【在 y**********u 的大作中提到】
: > 就我个人经验而谈,从github下载的C++开源项目,几乎没一个能按照README里的步
: 骤顺利编译的
: 嗯呢,都是泪啊
:
: github

avatar
w*g
34
不然你们觉得我怎么赚钱...

【在 y**********u 的大作中提到】
: > 就我个人经验而谈,从github下载的C++开源项目,几乎没一个能按照README里的步
: 骤顺利编译的
: 嗯呢,都是泪啊
:
: github

avatar
n*t
35
暈,什麼叫做區塊鏈語言?
你忽悠誰呢?

【在 w********m 的大作中提到】
: go是区块链语言,不会是小众语言。
: 觉得go性能不好,可以去leetcode和java同时刷刷比较一下。

avatar
y*u
36
dong哥好棒

【在 w***g 的大作中提到】
: 不然你们觉得我怎么赚钱...
avatar
n*l
37
sure golang has issues, but c++ has way more issues than that. and those
issues are more fundamental. you think golang designers are idiots, think
again.
avatar
d*a
38
这个话题有必要吵吗。:)
Go本来就不应该和C/C++比性能啊。
avatar
g*t
39
现在区块链好多项目确实是golang写的。


: 暈,什麼叫做區塊鏈語言?

: 你忽悠誰呢?



【在 n******t 的大作中提到】
: 暈,什麼叫做區塊鏈語言?
: 你忽悠誰呢?

avatar
g*t
40
和java,python比差不多。


: 这个话题有必要吵吗。:)

: Go本来就不应该和C/C 比性能啊。



【在 d***a 的大作中提到】
: 这个话题有必要吵吗。:)
: Go本来就不应该和C/C++比性能啊。

avatar
y*u
41
唉,C还没学明白呢,咋整出这么多语言啊,老帮菜真是惨
avatar
h*c
43
区块链这种服务器端的本来就适合用go,但是如果要挖矿那还是c++
avatar
f*t
44
据说Go对于写C的老帮菜们是无缝升级的特供语言

【在 y**********u 的大作中提到】
: 唉,C还没学明白呢,咋整出这么多语言啊,老帮菜真是惨
avatar
g*t
45
Golang一共25个关键字。对python,c,c plus,...
几乎任何语言的马工都是无缝升级----只要你不用第三方库。
我半小时就开始写代码了。
C比golang难写多了。


: 据说Go对于写C的老帮菜们是无缝升级的特供语言



【在 f*******t 的大作中提到】
: 据说Go对于写C的老帮菜们是无缝升级的特供语言
avatar
m*p
47
我上一個貼提到了golang兩大問題:GOGC和goroutine調度,今天開會同事又發現很多
其他性能問題。
1. encryption(對稱或非對稱):golang非常慢,比openssl慢10倍不止,因為openssl
寫了很多assembly,尤其在非x86上面特別明顯。
2. string vectorization:libc有很多手寫SSE/AVX優化,對應的golang根本全靠編譯
器,在x86和非x86上表現都很差,也是10倍不止。
3. 沒有標準threadlocal,這個Cpp14也有很多優化,多核性能差距明顯。
4. golang周邊庫不如cpp穩健,尤其和folly、abseil比較
5. golang不支持硬件加速,因為目前很多硬件廠商都倒向LLVM,它彌補了部分GCC、
ICC的弊病,留給golang的市場空間變小了
結論:
a. 嚴肅項目(尤其跟性能相關的後台項目)還是cpp天下
b. 深度學習應該使用python和cpp
c. 刷題最好用cpp或java,未來cpp/java都會有fiber,比goroutine強
總之golang看起來很好,但是實際性能不怎麼樣,注定是小眾語言。
avatar
b*t
48
go的三巨头就不说了,连小马仔russ cox都是当年的奥赛金牌。
你确信他们都搞错了。
avatar
m*p
49
就憑幾個牛人幾個公司幾年時間就想超越cpp、java或csharp,我看懸,golang最好的
結果就是scala,是小眾語言。
avatar
w*m
50
go是区块链语言,不会是小众语言。
觉得go性能不好,可以去leetcode和java同时刷刷比较一下。
avatar
y*j
51
个人认为GOLang作为系统语言来说过于高级,应该有一个稍微低级一点的语言GO--就好
了。
avatar
w*g
52
用cpp可破。


:我上一個貼提到了golang兩大問題:GOGC和goroutine調度,今天開會同事又發現很多
avatar
g*t
53
Go的性能打的是java,python。
任何语言和c,Fortran, pascal比性能本身就是个错误。
从计算的角度来看。
能严肃多线程并行的语言除了c sharp,cpp, java就只有golang了。golang开发速度和
python差不多(如果你不用第三方库)。
avatar
g*t
54
你说的这些都是很好的知识。但结论有些不靠谱。尤其是未来java的
Fiber赢goroutine.这个大部分其实是取决于资金,不是技术。
avatar
m*p
55
leetcode的測試數據量太小,大部分是jvm啟動慢的問題,而且jit也不一定被啟動。
leetcode的測試結果偏向靜態連結非託管程序。

【在 w********m 的大作中提到】
: go是区块链语言,不会是小众语言。
: 觉得go性能不好,可以去leetcode和java同时刷刷比较一下。

avatar
m*p
56
(如果你不用第三方库)-> 這個才是重點好嗎。
一個語言不是拼自己的標準庫,是拼社區,三方庫,這方面cpp和java完爆golang。
我結論的前提是:當FB和G、M開放他們自己的庫後,cpp競爭力明顯上升。再加上無縫
兼容LLVM,硬件加速未來也沒有問題。有機會去研究一下我提到的folly和abseil再說
吧,golang的三方庫就是開玩笑。

【在 g****t 的大作中提到】
: Go的性能打的是java,python。
: 任何语言和c,Fortran, pascal比性能本身就是个错误。
: 从计算的角度来看。
: 能严肃多线程并行的语言除了c sharp,cpp, java就只有golang了。golang开发速度和
: python差不多(如果你不用第三方库)。

avatar
m*p
57
我同意資金第一重要,但你認為力挺java的amazon + oracle + ibm + google比google
自己錢少麼?
golang連標準委員會都沒有(Cpp還是ISO呢),是google自己的玩具,其他大企業誰敢
大規模用?FB?Amazon?M?IBM?
另外還要考慮的是沈澱資本,按代碼量計算,golang能超過cpp或者java麼?感覺連
python這種二流語言都趕不上

【在 g****t 的大作中提到】
: 你说的这些都是很好的知识。但结论有些不靠谱。尤其是未来java的
: Fiber赢goroutine.这个大部分其实是取决于资金,不是技术。

avatar
g*t
58
我看的点不是web后台。我认为下面两个观察是很牢固的,当然,也欢迎批评。
1。能严肃多线程并行的语言除了c sharp,cpp, java就只有golang
2。不用第三方库,做数值计算要么多语言。单语言最好的选择现在我找到的就是golang。
我不用第三方库的理由是很明显的,你想想就明白了.
我不可能在指甲盖小的芯片里装pandas

google

【在 m*****p 的大作中提到】
: 我同意資金第一重要,但你認為力挺java的amazon + oracle + ibm + google比google
: 自己錢少麼?
: golang連標準委員會都沒有(Cpp還是ISO呢),是google自己的玩具,其他大企業誰敢
: 大規模用?FB?Amazon?M?IBM?
: 另外還要考慮的是沈澱資本,按代碼量計算,golang能超過cpp或者java麼?感覺連
: python這種二流語言都趕不上

avatar
g*t
59
这取决于公司对单个项目的投入。对散户来说这些信息是不可知的。
所以我认为这条不需要列入讨论内容。

google

【在 m*****p 的大作中提到】
: 我同意資金第一重要,但你認為力挺java的amazon + oracle + ibm + google比google
: 自己錢少麼?
: golang連標準委員會都沒有(Cpp還是ISO呢),是google自己的玩具,其他大企業誰敢
: 大規模用?FB?Amazon?M?IBM?
: 另外還要考慮的是沈澱資本,按代碼量計算,golang能超過cpp或者java麼?感覺連
: python這種二流語言都趕不上

avatar
w*m
60
做web都差不多的,没人care。
要看大腿。
java报了android的大腿。
python报了DL的大腿。
现在go要报区块链的大腿了。
一个语言的命运啊,当然要靠自我奋斗,但是也要考虑到历史的行程。。
avatar
g*t
61
假如不考虑第三方库等历史因素。我现在感觉Go开发速度和python差不多。
只要你自己补好emacs,vim等的tool。
写个区块链。python多半是比不上go。无论从开发速度还是运行和部署。

【在 w********m 的大作中提到】
: 做web都差不多的,没人care。
: 要看大腿。
: java报了android的大腿。
: python报了DL的大腿。
: 现在go要报区块链的大腿了。
: 一个语言的命运啊,当然要靠自我奋斗,但是也要考虑到历史的行程。。

avatar
m*p
62
我沒有說要用python這個二流語言啊,我的結論是:刷題練手、嚴肅項目最好用cpp或
java或csharp。
你說的那是嵌入式,那一定是c和cpp啦,golang編譯出來動輒xxxMB,不支持動態連結
,跟cpp沒法比。
如果做互聯網,那一定是java後台啦,框架多得很,為什麼不能用第三方庫?
如果做桌面應用,那一定是csharp啦,golang能很好的搞桌面麼?
這三種語言(cpp、java、csharp)語法越來越接近,而且java和csharp編譯器本身就
是cpp寫得,是一個非常好和成熟的路線,為什麼要搞另類的golang?
未來golang可以做的,他們(cpp20、java10、csharp8)都可以做,還有豐富的第三方
庫,為啥不用?
我個人感覺把這三種語言的新特性弄清楚比新學golang更重要,而且他們之間感念相近
,觸類旁通。

golang。

【在 g****t 的大作中提到】
: 我看的点不是web后台。我认为下面两个观察是很牢固的,当然,也欢迎批评。
: 1。能严肃多线程并行的语言除了c sharp,cpp, java就只有golang
: 2。不用第三方库,做数值计算要么多语言。单语言最好的选择现在我找到的就是golang。
: 我不用第三方库的理由是很明显的,你想想就明白了.
: 我不可能在指甲盖小的芯片里装pandas
:
: google

avatar
m*p
63
區塊鏈,為什麼不用cpp加第三方庫?

【在 g****t 的大作中提到】
: 假如不考虑第三方库等历史因素。我现在感觉Go开发速度和python差不多。
: 只要你自己补好emacs,vim等的tool。
: 写个区块链。python多半是比不上go。无论从开发速度还是运行和部署。

avatar
g*t
64
你非要无视事实。
说golang做不了严肃项目。
Python二流语言。
那又有什么意思呢?
我觉得你对two language dilemma 经历的不够。
不知道 两种语言 实际上会有多少麻烦。
谁要是觉得python 加c开发算法产品容易。
那他多半没做过足够多的项目。


: 我沒有說要用python這個二流語言啊,我的結論是:刷題練手、嚴肅項目
最好用
cpp或

: java或csharp。

: 你說的那是嵌入式,那一定是c和cpp啦,golang編譯出來動輒xxxMB,不
支持動
態連結

: ,跟cpp沒法比。

: 如果做互聯網,那一定是java後台啦,框架多得很,為什麼不能用第三方
庫?

: 如果做桌面應用,那一定是csharp啦,golang能很好的搞桌面麼?

: 這三種語言(cpp、java、csharp)語法越來越接近,而且java和csharp
編譯器
本身就

: 是cpp寫得,是一個非常好和成熟的路線,為什麼要搞另類的golang?

: 未來golang可以做的,他們(cpp20、java10、csharp8)都可以做,還有
豐富的
第三方

: 庫,為啥不用?



【在 m*****p 的大作中提到】
: 區塊鏈,為什麼不用cpp加第三方庫?
avatar
g*t
65
你自己查资料吧。golang处在c和python之间。
你把语言的表达能力做x
可预测性做y
XY上任何一个横向zone都有需求


: 區塊鏈,為什麼不用cpp加第三方庫?



【在 m*****p 的大作中提到】
: 區塊鏈,為什麼不用cpp加第三方庫?
avatar
f*t
66
不知道你为什么一个劲地揪着某些运算的性能不放,眼光狭隘。我就不在另一个帖回复
了,意见统一写在这里。
* 写一个http web service,几十行代码没有额外dependency,编译成一个binary放到
所有环境中都能运行。C++行吗?
* 加第三方库一般go get一下就解决了。C++/java行吗?就我个人经验而谈,从github
下载的C++开源项目,几乎没一个能按照README里的步骤顺利编译的。
* 随便创建几百个goroutine,之间用channel通信,基本不用考虑性能问题,开发效率
极高。C++行吗?你在测试中发现的不容易解决的性能问题,都是极端条件下才会发生
的现象,绝大多数时候并不需要担心这点。
* Go才出现几年,没标准委员会很正常。大公司不敢用的说法完全没有逻辑。大公司有
百万行以上的代码,工具都是针对现有语言开发的,不可能直接替换成另一种语言,都
是先从一小群爱好者开始慢慢推广。这也是为什么Amazon等公司一直用Java,FB费好大
劲给PHP做HHVM。目前Go在中小型公司的新项目上很受欢迎,另外uber算大公司了吧,
很多backend service选择了用Go开发,不也用着好好的。
大部分开发工作是business driven的,与其盯着几个10x性能问题,不如花时间想想这
些事情:招聘或培养合格程序员的成本,让代码在不同的开发与生产环境之间顺利部署
的难度,代码可读与可维护性,不需要微调时的开发效率……你就能明白为什么Go会在
web service和system management领域流行起来。最好的语言是满足business需求的同
时,综合成本最低的语言。
avatar
y*u
67
> 就我个人经验而谈,从github下载的C++开源项目,几乎没一个能按照README里的步
骤顺利编译的
嗯呢,都是泪啊

github

【在 f*******t 的大作中提到】
: 不知道你为什么一个劲地揪着某些运算的性能不放,眼光狭隘。我就不在另一个帖回复
: 了,意见统一写在这里。
: * 写一个http web service,几十行代码没有额外dependency,编译成一个binary放到
: 所有环境中都能运行。C++行吗?
: * 加第三方库一般go get一下就解决了。C++/java行吗?就我个人经验而谈,从github
: 下载的C++开源项目,几乎没一个能按照README里的步骤顺利编译的。
: * 随便创建几百个goroutine,之间用channel通信,基本不用考虑性能问题,开发效率
: 极高。C++行吗?你在测试中发现的不容易解决的性能问题,都是极端条件下才会发生
: 的现象,绝大多数时候并不需要担心这点。
: * Go才出现几年,没标准委员会很正常。大公司不敢用的说法完全没有逻辑。大公司有

avatar
g*t
68
楼主比较熟悉他传统上用来跑benchmark的一些case。可能没有实际卖过软件.
这个可以理解。但是软件现在是大发展的时代。。。

github

【在 f*******t 的大作中提到】
: 不知道你为什么一个劲地揪着某些运算的性能不放,眼光狭隘。我就不在另一个帖回复
: 了,意见统一写在这里。
: * 写一个http web service,几十行代码没有额外dependency,编译成一个binary放到
: 所有环境中都能运行。C++行吗?
: * 加第三方库一般go get一下就解决了。C++/java行吗?就我个人经验而谈,从github
: 下载的C++开源项目,几乎没一个能按照README里的步骤顺利编译的。
: * 随便创建几百个goroutine,之间用channel通信,基本不用考虑性能问题,开发效率
: 极高。C++行吗?你在测试中发现的不容易解决的性能问题,都是极端条件下才会发生
: 的现象,绝大多数时候并不需要担心这点。
: * Go才出现几年,没标准委员会很正常。大公司不敢用的说法完全没有逻辑。大公司有

avatar
h*c
69
哈哈哈,确实如此。

【在 y**********u 的大作中提到】
: > 就我个人经验而谈,从github下载的C++开源项目,几乎没一个能按照README里的步
: 骤顺利编译的
: 嗯呢,都是泪啊
:
: github

avatar
w*g
70
不然你们觉得我怎么赚钱...

【在 y**********u 的大作中提到】
: > 就我个人经验而谈,从github下载的C++开源项目,几乎没一个能按照README里的步
: 骤顺利编译的
: 嗯呢,都是泪啊
:
: github

avatar
n*t
71
暈,什麼叫做區塊鏈語言?
你忽悠誰呢?

【在 w********m 的大作中提到】
: go是区块链语言,不会是小众语言。
: 觉得go性能不好,可以去leetcode和java同时刷刷比较一下。

avatar
y*u
72
dong哥好棒

【在 w***g 的大作中提到】
: 不然你们觉得我怎么赚钱...
avatar
n*l
73
sure golang has issues, but c++ has way more issues than that. and those
issues are more fundamental. you think golang designers are idiots, think
again.
avatar
d*a
74
这个话题有必要吵吗。:)
Go本来就不应该和C/C++比性能啊。
avatar
g*t
75
现在区块链好多项目确实是golang写的。


: 暈,什麼叫做區塊鏈語言?

: 你忽悠誰呢?



【在 n******t 的大作中提到】
: 暈,什麼叫做區塊鏈語言?
: 你忽悠誰呢?

avatar
g*t
76
和java,python比差不多。


: 这个话题有必要吵吗。:)

: Go本来就不应该和C/C 比性能啊。



【在 d***a 的大作中提到】
: 这个话题有必要吵吗。:)
: Go本来就不应该和C/C++比性能啊。

avatar
y*u
77
唉,C还没学明白呢,咋整出这么多语言啊,老帮菜真是惨
avatar
h*c
79
区块链这种服务器端的本来就适合用go,但是如果要挖矿那还是c++
avatar
f*t
80
据说Go对于写C的老帮菜们是无缝升级的特供语言

【在 y**********u 的大作中提到】
: 唉,C还没学明白呢,咋整出这么多语言啊,老帮菜真是惨
avatar
g*t
81
Golang一共25个关键字。对python,c,c plus,...
几乎任何语言的马工都是无缝升级----只要你不用第三方库。
我半小时就开始写代码了。
C比golang难写多了。


: 据说Go对于写C的老帮菜们是无缝升级的特供语言



【在 f*******t 的大作中提到】
: 据说Go对于写C的老帮菜们是无缝升级的特供语言
avatar
w*m
83
性能可以了,碾压java。看看阿里小哥的高票答案 https://www.zhihu.com/question/
59481694
亮点是编译快,节省内存。

【在 n*w 的大作中提到】
: 不理解的一点是。go比较简单。很多特性都没有。又说又很多大牛在做。为什么性能重
: 来不是名列前茅的。记得第一版出来时无论是编译还是运行速度都慢。
:
: python-

avatar
f*t
84
Go里还是有指针的概念,java python程序员会比较难受。对于cpp程序员来说又精简掉
了template等复杂的东西。所以说从c过来是最舒服的。

【在 g****t 的大作中提到】
: Golang一共25个关键字。对python,c,c plus,...
: 几乎任何语言的马工都是无缝升级----只要你不用第三方库。
: 我半小时就开始写代码了。
: C比golang难写多了。
:
:
: 据说Go对于写C的老帮菜们是无缝升级的特供语言
:

avatar
g*t
85
(A)
call by name
Call by value两分
(B)
指针,然后一致的call by value
A,B两个设计思路。各刷半小时题。总共一小时就解决了。
关键是认准知识点。不要和别的搅合在一起。


: Go里还是有指针的概念,java python程序员会比较难受。对于cpp程序员
来说又
精简掉

: 了template等复杂的东西。所以说从c过来是最舒服的。



【在 f*******t 的大作中提到】
: Go里还是有指针的概念,java python程序员会比较难受。对于cpp程序员来说又精简掉
: 了template等复杂的东西。所以说从c过来是最舒服的。

avatar
m*p
86
zhihu這個回答你仔細看過了嗎?裡面最重要的一個限制條件就是單核心單線程,所以
go比java強跟cpp差不多結果不可信。如果不限CPU核心數量,cpp會完爆狗浪


: 性能可以了,碾压java。看看阿里小哥的高票答案 https://www.zhihu.com/
question/

: 59481694

: 亮点是编译快,节省内存。



【在 w********m 的大作中提到】
: 性能可以了,碾压java。看看阿里小哥的高票答案 https://www.zhihu.com/question/
: 59481694
: 亮点是编译快,节省内存。

avatar
y*u
87
好性奋呢?晚上撸起裤子就是干,学一下

【在 g****t 的大作中提到】
: Golang一共25个关键字。对python,c,c plus,...
: 几乎任何语言的马工都是无缝升级----只要你不用第三方库。
: 我半小时就开始写代码了。
: C比golang难写多了。
:
:
: 据说Go对于写C的老帮菜们是无缝升级的特供语言
:

avatar
s*k
88
Golang比较目标不是CPP啊,是python一样容易程度和开发进度,大于Java的性能,然
后比java,python都好的memory efficient,和编译部署环境,

【在 m*****p 的大作中提到】
: zhihu這個回答你仔細看過了嗎?裡面最重要的一個限制條件就是單核心單線程,所以
: go比java強跟cpp差不多結果不可信。如果不限CPU核心數量,cpp會完爆狗浪
:
:
: 性能可以了,碾压java。看看阿里小哥的高票答案 https://www.zhihu.com/
: question/
:
: 59481694
:
: 亮点是编译快,节省内存。
:

avatar
m*n
89
Go
比我速度高的没我轻松
比我轻松的没我速度高
avatar
w*m
90
这道题是leetcode上面find subString的高配版。
Hard disk IO bound。
多核并发上面,Java能有啥黑魔法beat go。

【在 m*****p 的大作中提到】
: zhihu這個回答你仔細看過了嗎?裡面最重要的一個限制條件就是單核心單線程,所以
: go比java強跟cpp差不多結果不可信。如果不限CPU核心數量,cpp會完爆狗浪
:
:
: 性能可以了,碾压java。看看阿里小哥的高票答案 https://www.zhihu.com/
: question/
:
: 59481694
:
: 亮点是编译快,节省内存。
:

avatar
n*t
91
既然我們都再聊技術,有誰告訴我why blockchain要用 go嗎?
此外用go的好處是?

【在 g****t 的大作中提到】
: 现在区块链好多项目确实是golang写的。
:
:
: 暈,什麼叫做區塊鏈語言?
:
: 你忽悠誰呢?
:

avatar
b*s
92
展开说说,为什么选golang做数值计算

golang。

【在 g****t 的大作中提到】
: 我看的点不是web后台。我认为下面两个观察是很牢固的,当然,也欢迎批评。
: 1。能严肃多线程并行的语言除了c sharp,cpp, java就只有golang
: 2。不用第三方库,做数值计算要么多语言。单语言最好的选择现在我找到的就是golang。
: 我不用第三方库的理由是很明显的,你想想就明白了.
: 我不可能在指甲盖小的芯片里装pandas
:
: google

avatar
n*t
93
如果一個語言打算serious,why GC?

【在 g****t 的大作中提到】
: Golang一共25个关键字。对python,c,c plus,...
: 几乎任何语言的马工都是无缝升级----只要你不用第三方库。
: 我半小时就开始写代码了。
: C比golang难写多了。
:
:
: 据说Go对于写C的老帮菜们是无缝升级的特供语言
:

avatar
d*i
94
代码好读懂.对科班出身的可能看template, reflection, annotation代码像呼吸一样
自然,但是对我等广大的门外汉,要抄别人的代码感觉go最清晰.仔细读完effective go,
就可以开工了. 大不了工作中多翻翻language specification, memory model,都不长
.要看c++和java的类似文档会吐血的.

【在 n******t 的大作中提到】
: 既然我們都再聊技術,有誰告訴我why blockchain要用 go嗎?
: 此外用go的好處是?

avatar
m*p
95
對於嚴肅的後台大項目:
1. dependency可以用container解決
2. java/cpp有jenkins+cmake+apt+dpkg不比go get差
3. github上面的項目都是upstream,需要os廠商或中間商根據CVE改造,直接git
clone有很大安全風險
4. cpp/java也可以有coroutine或者actor模式,不是golang獨有
5. golang沒有一個除了google的大公司背書,比javascript都差

github

【在 f*******t 的大作中提到】
: 不知道你为什么一个劲地揪着某些运算的性能不放,眼光狭隘。我就不在另一个帖回复
: 了,意见统一写在这里。
: * 写一个http web service,几十行代码没有额外dependency,编译成一个binary放到
: 所有环境中都能运行。C++行吗?
: * 加第三方库一般go get一下就解决了。C++/java行吗?就我个人经验而谈,从github
: 下载的C++开源项目,几乎没一个能按照README里的步骤顺利编译的。
: * 随便创建几百个goroutine,之间用channel通信,基本不用考虑性能问题,开发效率
: 极高。C++行吗?你在测试中发现的不容易解决的性能问题,都是极端条件下才会发生
: 的现象,绝大多数时候并不需要担心这点。
: * Go才出现几年,没标准委员会很正常。大公司不敢用的说法完全没有逻辑。大公司有

avatar
m*p
96
這個測試也印證了我的結論:golang性能上僅僅跟java相同,比csharp差好多,根本無
法跟cpp比較。
cpp一般是csharp的2~3倍,在這裡csharp是golang的3倍,綜合,cpp比golang快一個
數量級。

python-

【在 n*w 的大作中提到】
: https://read.acloud.guru/comparing-aws-lambda-performance-of-node-js-python-
: java-c-and-go-29c1163c2581

avatar
m*p
97
cpp有很多魔法可以提高性能,golang基本不行,java和golang一個檔次。
我的意思是多路多核服務器,cpp可以比java和golang快很多,根本不是這篇知乎裡面
cpp僅僅比golang快一點的結論。
If local disk: unbuffered IO, SPDK, memory-mapped file
If remote disk: RDMA, DPDK
If using accelerator: TCAM, hardware regex engine, FPGA memory comparison
If not using accelerator: x86 SSE STTNI and AVX
cpp能把golang打出屎來

【在 w********m 的大作中提到】
: 这道题是leetcode上面find subString的高配版。
: Hard disk IO bound。
: 多核并发上面,Java能有啥黑魔法beat go。

avatar
h*c
98
为什么go不支持呢?难点在哪?

【在 m*****p 的大作中提到】
: cpp有很多魔法可以提高性能,golang基本不行,java和golang一個檔次。
: 我的意思是多路多核服務器,cpp可以比java和golang快很多,根本不是這篇知乎裡面
: cpp僅僅比golang快一點的結論。
: If local disk: unbuffered IO, SPDK, memory-mapped file
: If remote disk: RDMA, DPDK
: If using accelerator: TCAM, hardware regex engine, FPGA memory comparison
: If not using accelerator: x86 SSE STTNI and AVX
: cpp能把golang打出屎來

avatar
m*p
99
所以結論還是我前面提出的:
科班嚴肅大項目還是會用java、cpp、csharp,只有自己單幹的門外漢才首選golang。
golang能幹的java、cpp、csharp都能幹,golang只不過是在這三個裡面取捨折中一下
:平庸的性能,平庸的功能,平庸的第三方支持。
單個方向上都不是第一選擇:比甜比不過csharp,比快比不過cpp,比廣比不過java,
golang目前還不是一流語言。

go,

【在 d*****i 的大作中提到】
: 代码好读懂.对科班出身的可能看template, reflection, annotation代码像呼吸一样
: 自然,但是对我等广大的门外汉,要抄别人的代码感觉go最清晰.仔细读完effective go,
: 就可以开工了. 大不了工作中多翻翻language specification, memory model,都不长
: .要看c++和java的类似文档会吐血的.

avatar
m*p
100
需要CPU和廣大硬件廠商開發第三方庫。
譬如Intel的ICC、TBB和Nvidia的CUDA,並且可以兼容C語言,直接操作底層設備。
我最反感golang的一點是其在性能上吹牛,跟java差不多就說跟java一樣唄,非得說跟
cpp差不過,結論是差好遠好嘛

【在 h**c 的大作中提到】
: 为什么go不支持呢?难点在哪?
avatar
h*c
101
Go的项目里各种文件就直接放在最顶层文件夹里。Java这种语言,一行代码还没写就几
十层文件夹了。而且go不需要任何makefile,it just works,也不需要任何恶心的
markup language或者json配置文件。总之go的文件结构特别干净,适合程序员的审美。
avatar
h*c
102
Go在语言特性上也特别节制,没有各种恶心的oop特性,不容易写出anti-pattern。
avatar
m*p
103
你提到的這個文件夾平鋪審美我很不適應,什麼雜七雜八的asm, defs, os, signal,
sys都混入了,真正runtime文件也就幾個,放到arch文件夾裡不行麼?要是像gcc那樣
支持幾十種處理器,豈不是有幾百個文件?
HACKING.md os_linux_noauxv.go
Makefile os_linux_ppc64x.go
alg.go os_linux_s390x.go
append_test.go os_nacl.go
asm.s os_nacl_arm.go
asm_386.s os_netbsd.go
asm_amd64.s os_netbsd_386.go
asm_amd64p32.s os_netbsd_amd64.go
asm_arm.s os_netbsd_arm.go
asm_arm64.s os_openbsd.go
asm_mips64x.s os_openbsd_arm.go
asm_mipsx.s os_plan9.go
asm_ppc64x.h os_plan9_arm.go
asm_ppc64x.s os_solaris.go
asm_s390x.s os_windows.go
atomic_arm64.s panic.go
atomic_mips64x.s plugin.go
atomic_mipsx.s pprof
atomic_pointer.go print.go
atomic_ppc64x.s proc.go
callers_test.go proc_runtime_test.go
cgo proc_test.go
cgo.go profbuf.go
cgo_mmap.go profbuf_test.go
cgo_ppc64x.go proflabel.go
cgo_sigaction.go race
cgocall.go race.go
cgocallback.go race0.go
cgocheck.go race_amd64.s
chan.go rand_test.go
chan_test.go rdebug.go
chanbarrier_test.go relax_stub.go
closure_test.go rt0_android_386.s
compiler.go rt0_android_amd64.s
complex.go rt0_android_arm.s
complex_test.go rt0_android_arm64.s
cpuflags_amd64.go rt0_darwin_386.s
cpuprof.go rt0_darwin_amd64.s
cputicks.go rt0_darwin_arm.s
crash_cgo_test.go rt0_darwin_arm64.s
crash_nonunix_test.go rt0_dragonfly_amd64.s
crash_test.go rt0_freebsd_386.s
crash_unix_test.go rt0_freebsd_amd64.s
debug rt0_freebsd_arm.s
debug.go rt0_linux_386.s
defs1_linux.go rt0_linux_amd64.s
defs1_netbsd_386.go rt0_linux_arm.s
defs1_netbsd_amd64.go rt0_linux_arm64.s
defs1_netbsd_arm.go rt0_linux_mips64x.s
defs1_solaris_amd64.go rt0_linux_mipsx.s
defs2_linux.go rt0_linux_ppc64.s
defs3_linux.go rt0_linux_ppc64le.s
defs_arm_linux.go rt0_linux_s390x.s
defs_darwin.go rt0_nacl_386.s
defs_darwin_386.go rt0_nacl_amd64p32.s
defs_darwin_amd64.go rt0_nacl_arm.s
defs_darwin_arm.go rt0_netbsd_386.s
defs_darwin_arm64.go rt0_netbsd_amd64.s
defs_dragonfly.go rt0_netbsd_arm.s
defs_dragonfly_amd64.go rt0_openbsd_386.s
defs_freebsd.go rt0_openbsd_amd64.s
defs_freebsd_386.go rt0_openbsd_arm.s
defs_freebsd_amd64.go rt0_plan9_386.s
defs_freebsd_arm.go rt0_plan9_amd64.s
defs_linux.go rt0_plan9_arm.s
defs_linux_386.go rt0_solaris_amd64.s
defs_linux_amd64.go rt0_windows_386.s
defs_linux_arm.go rt0_windows_amd64.s
defs_linux_arm64.go runtime-gdb.py
defs_linux_mips64x.go runtime-gdb_test.go
defs_linux_mipsx.go runtime-lldb_test.go
defs_linux_ppc64.go runtime.go
defs_linux_ppc64le.go runtime1.go
defs_linux_s390x.go runtime2.go
defs_nacl_386.go runtime_linux_test.go
defs_nacl_amd64p32.go runtime_mmap_test.go
defs_nacl_arm.go runtime_test.go
defs_netbsd.go runtime_unix_test.go
defs_netbsd_386.go rwmutex.go
defs_netbsd_amd64.go rwmutex_test.go
defs_netbsd_arm.go select.go
defs_openbsd.go sema.go
defs_openbsd_386.go sigaction_linux.go
defs_openbsd_amd64.go signal_386.go
defs_openbsd_arm.go signal_amd64x.go
defs_plan9_386.go signal_arm.go
defs_plan9_amd64.go signal_arm64.go
defs_plan9_arm.go signal_darwin.go
defs_solaris.go signal_darwin_386.go
defs_solaris_amd64.go signal_darwin_amd64.go
defs_windows.go signal_darwin_arm.go
defs_windows_386.go signal_darwin_arm64.go
defs_windows_amd64.go signal_dragonfly.go
duff_386.s signal_dragonfly_amd64.go
duff_amd64.s signal_freebsd.go
duff_arm.s signal_freebsd_386.go
duff_arm64.s signal_freebsd_amd64.go
duff_mips64x.s signal_freebsd_arm.go
duff_ppc64x.s signal_linux_386.go
env_plan9.go signal_linux_amd64.go
env_posix.go signal_linux_arm.go
env_test.go signal_linux_arm64.go
error.go signal_linux_mips64x.go
example_test.go signal_linux_mipsx.go
export_arm_test.go signal_linux_ppc64x.go
export_futex_test.go signal_linux_s390x.go
export_linux_test.go signal_mips64x.go
export_mmap_test.go signal_mipsx.go
export_test.go signal_nacl.go
export_unix_test.go signal_nacl_386.go
export_windows_test.go signal_nacl_amd64p32.go
extern.go signal_nacl_arm.go
fastlog2.go signal_netbsd.go
fastlog2_test.go signal_netbsd_386.go
fastlog2table.go signal_netbsd_amd64.go
float.go signal_netbsd_arm.go
funcdata.h signal_openbsd.go
futex_test.go signal_openbsd_386.go
gc_test.go signal_openbsd_amd64.go
gcinfo_test.go signal_openbsd_arm.go
go_tls.h signal_plan9.go
hash32.go signal_ppc64x.go
hash64.go signal_sighandler.go
hash_test.go signal_solaris.go
hashmap.go signal_solaris_amd64.go
hashmap_fast.go signal_unix.go
heapdump.go signal_windows.go
iface.go sigqueue.go
iface_test.go sigqueue_plan9.go
internal sigtab_linux_generic.go
lfstack.go sigtab_linux_mipsx.go
lfstack_32bit.go sizeclasses.go
lfstack_64bit.go slice.go
lfstack_test.go softfloat64.go
lock_futex.go softfloat64_test.go
lock_sema.go softfloat_arm.go
malloc.go sqrt.go
malloc_test.go sqrt_test.go
map_test.go stack.go
mapspeed_test.go stack_test.go
mbarrier.go string.go
mbitmap.go string_test.go
mcache.go stubs.go
mcentral.go stubs2.go
mem_bsd.go stubs32.go
mem_darwin.go stubs_android.go
mem_linux.go stubs_asm.go
mem_plan9.go stubs_linux.go
mem_windows.go stubs_nonlinux.go
memclr_386.s symtab.go
memclr_amd64.s symtab_test.go
memclr_amd64p32.s sys_arm.go
memclr_arm.s sys_arm64.go
memclr_arm64.s sys_darwin_386.s
memclr_mips64x.s sys_darwin_amd64.s
memclr_mipsx.s sys_darwin_arm.s
memclr_plan9_386.s sys_darwin_arm64.s
memclr_plan9_amd64.s sys_dragonfly_amd64.s
memclr_ppc64x.s sys_freebsd_386.s
memclr_s390x.s sys_freebsd_amd64.s
memmove_386.s sys_freebsd_arm.s
memmove_amd64.s sys_linux_386.s
memmove_amd64p32.s sys_linux_amd64.s
memmove_arm.s sys_linux_arm.s
memmove_arm64.s sys_linux_arm64.s
memmove_linux_amd64_test.go sys_linux_mips64x.s
memmove_mips64x.s sys_linux_mipsx.s
memmove_mipsx.s sys_linux_ppc64x.s
memmove_plan9_386.s sys_linux_s390x.s
memmove_plan9_amd64.s sys_mips64x.go
memmove_ppc64x.s sys_mipsx.go
memmove_s390x.s sys_nacl_386.s
memmove_test.go sys_nacl_amd64p32.s
mfinal.go sys_nacl_arm.s
mfinal_test.go sys_netbsd_386.s
mfixalloc.go sys_netbsd_amd64.s
mgc.go sys_netbsd_arm.s
mgclarge.go sys_nonppc64x.go
mgcmark.go sys_openbsd_386.s
mgcsweep.go sys_openbsd_amd64.s
mgcsweepbuf.go sys_openbsd_arm.s
mgcwork.go sys_plan9_386.s
mheap.go sys_plan9_amd64.s
mkduff.go sys_plan9_arm.s
mkfastlog2table.go sys_ppc64x.go
mknacl.sh sys_s390x.go
mksizeclasses.go sys_solaris_amd64.s
mmap.go sys_windows_386.s
mprof.go sys_windows_amd64.s
msan sys_x86.go
msan.go syscall2_solaris.go
msan0.go syscall_nacl.h
msan_amd64.s syscall_solaris.go
msize.go syscall_windows.go
mstats.go syscall_windows_test.go
mwbbuf.go testdata
net_plan9.go textflag.h
netpoll.go time.go
netpoll_epoll.go timeasm.go
netpoll_kqueue.go timestub.go
netpoll_nacl.go tls_arm.s
netpoll_solaris.go tls_arm64.h
netpoll_stub.go tls_arm64.s
netpoll_windows.go tls_mips64x.s
noasm.go tls_mipsx.s
norace_linux_test.go tls_ppc64x.s
norace_test.go tls_s390x.s
numcpu_freebsd_test.go trace
os2_freebsd.go trace.go
os2_nacl.go traceback.go
os2_openbsd.go type.go
os2_plan9.go typekind.go
os2_solaris.go unaligned1.go
os3_plan9.go unaligned2.go
os3_solaris.go utf8.go
os_android.go vdso_linux.go
os_darwin.go vdso_linux_386.go
os_darwin_arm.go vdso_linux_amd64.go
os_darwin_arm64.go vdso_linux_test.go
os_dragonfly.go vdso_none.go
os_freebsd.go vlop_386.s
os_freebsd_arm.go vlop_arm.s
os_linux.go vlop_arm_test.go
os_linux_arm.go vlrt.go
os_linux_arm64.go wincallback.go
os_linux_be64.go write_err.go
os_linux_generic.go write_err_android.go
os_linux_mips64x.go zcallback_windows.go
os_linux_mipsx.go zcallback_windows.s

美。

【在 h**c 的大作中提到】
: Go的项目里各种文件就直接放在最顶层文件夹里。Java这种语言,一行代码还没写就几
: 十层文件夹了。而且go不需要任何makefile,it just works,也不需要任何恶心的
: markup language或者json配置文件。总之go的文件结构特别干净,适合程序员的审美。

avatar
m*p
104
反正我是感覺golang runtime寫得不如openjdk hotspot經典,比linux kernel更差得
遠。
avatar
g*t
105
我想问一句。你做过的软件项目最多多少用户?严肃的大项目不是凭空想象可以得到的。
Golang本身在goog内部就有很多应用了。而且什么时候有谁拿golang和c比性能了吗


: 對於嚴肅的後台大項目:

: 1. dependency可以用container解決

: 2. java/cpp有jenkins cmake apt dpkg不比go get差

: 3. github上面的項目都是upstream,需要os廠商或中間商根據CVE改造,
直接
git

: clone有很大安全風險

: 4. cpp/java也可以有coroutine或者actor模式,不是golang獨有

: 5. golang沒有一個除了google的大公司背書,比javascript都差

: github



【在 m*****p 的大作中提到】
: 反正我是感覺golang runtime寫得不如openjdk hotspot經典,比linux kernel更差得
: 遠。

avatar
s*k
106
我们现在内部正在上一个golang的项目,service3个月就上线而且还在继续增长,同样
的项目想基于原来的CPP库改造,都没人敢碰,所以在实际公司中的项目中,考虑的因
素太多了

【在 m*****p 的大作中提到】
: 所以結論還是我前面提出的:
: 科班嚴肅大項目還是會用java、cpp、csharp,只有自己單幹的門外漢才首選golang。
: golang能幹的java、cpp、csharp都能幹,golang只不過是在這三個裡面取捨折中一下
: :平庸的性能,平庸的功能,平庸的第三方支持。
: 單個方向上都不是第一選擇:比甜比不過csharp,比快比不過cpp,比廣比不過java,
: golang目前還不是一流語言。
:
: go,

avatar
g*t
107
如果简化一下问题,不考虑第三方库。
用表达能力好做X轴正向,速度快为Y正向
那么XY平面上每个远离原点的语言
随着市场需求的变化
可能都会有个巅峰时段
前提是工程质量要高
不能太不可预测
最好不出现把人憋死的坑


: 我们现在内部正在上一个golang的项目,service3个月就上线而且还在继续增长
,同样

: 的项目想基于原来的CPP库改造,都没人敢碰,所以在实际公司中的项目中,考
虑的因

: 素太多了



【在 s********k 的大作中提到】
: 我们现在内部正在上一个golang的项目,service3个月就上线而且还在继续增长,同样
: 的项目想基于原来的CPP库改造,都没人敢碰,所以在实际公司中的项目中,考虑的因
: 素太多了

avatar
b*s
108
most of c++ vs java benchmarks were written by java developers

【在 m*****p 的大作中提到】
: cpp有很多魔法可以提高性能,golang基本不行,java和golang一個檔次。
: 我的意思是多路多核服務器,cpp可以比java和golang快很多,根本不是這篇知乎裡面
: cpp僅僅比golang快一點的結論。
: If local disk: unbuffered IO, SPDK, memory-mapped file
: If remote disk: RDMA, DPDK
: If using accelerator: TCAM, hardware regex engine, FPGA memory comparison
: If not using accelerator: x86 SSE STTNI and AVX
: cpp能把golang打出屎來

avatar
m*p
109
國際一流公司的媒體控制網關,大客戶是ATT和Verizon等一級郀I商,這個夠嚴肅吧?
都是C或Cpp,買第三方的庫,絕對不用開源github,害怕有GPL3。

的。

【在 g****t 的大作中提到】
: 我想问一句。你做过的软件项目最多多少用户?严肃的大项目不是凭空想象可以得到的。
: Golang本身在goog内部就有很多应用了。而且什么时候有谁拿golang和c比性能了吗
:
:
: 對於嚴肅的後台大項目:
:
: 1. dependency可以用container解決
:
: 2. java/cpp有jenkins cmake apt dpkg不比go get差
:
: 3. github上面的項目都是upstream,需要os廠商或中間商根據CVE改造,
: 直接
: git
:
: clone有很大安全風險

avatar
m*p
110
golang適合搞“前景不明朗”的小團隊實驗工程,這不屬於我講的“嚴肅”項目。
公司也分:一流大公司、一般大公司、二流公司、小公司、創業公司,不是每個公司都
要golang才能解決問題。
沒人敢碰說明你們公司或項目缺骨幹。

【在 s********k 的大作中提到】
: 我们现在内部正在上一个golang的项目,service3个月就上线而且还在继续增长,同样
: 的项目想基于原来的CPP库改造,都没人敢碰,所以在实际公司中的项目中,考虑的因
: 素太多了

avatar
m*p
111
我昨天突然想到可以用一個國家來形容golang:澳大利亞
袋鼠國是怎樣一個奇葩的國家,不是G7卻令人嚮往,就跟golang一樣,10歲了也不是程
序語言前五名,相比之下,10歲的java已經快要奪冠了。袋鼠國也是,立國幾十年,人
均收入爆高,卻不是G7成員。
想移民澳大利亞(golang)的人請注意:
袋鼠國科技不如美帝(cpp)、人氣不如中帝(java)、文化不如西歐英國(csharp)
,完全不是第一梯隊國家(語言)。袋鼠國只適合本身技能低無法移民美帝、又被西歐
(MS)拒之門外、還不想跟土共(java)為伍的轉行人士開發“短平快、糙快猛”的新
項目。
我從來沒說golang絕對不好,我是說golang跟主流語言相比“不夠好”,就像澳大利亞
現在的尷尬定位一樣。
為什麼不能用第三方庫?美帝、英帝、中帝都有自己的一幫簇擁,澳大利亞有什麼?人
均GDP麼(日均代碼量)麼?
對於不是科班出身的普通移民,澳大利亞確實有一些吸引力,但前提是想好自己未來要
放棄:技術(美帝)、錢途(中帝)、文化逼格(西歐)
golang從來就不是silver bullet

【在 g****t 的大作中提到】
: 如果简化一下问题,不考虑第三方库。
: 用表达能力好做X轴正向,速度快为Y正向
: 那么XY平面上每个远离原点的语言
: 随着市场需求的变化
: 可能都会有个巅峰时段
: 前提是工程质量要高
: 不能太不可预测
: 最好不出现把人憋死的坑
:
:
: 我们现在内部正在上一个golang的项目,service3个月就上线而且还在继续增长

avatar
w*m
112
在大公司退休靠不住。
不管能力多强,年纪大了被扫地出门的多了。
被赶走前带走点东西糊口,go比你说的那些语言强。
不慢,关键是内存用的少。现在云上的内存一直在涨价。
打个比方,那个阿里小哥做的hackathon,敏感词替换,就是习总登基以后做点东西的
好项目。
大家都不傻。

【在 m*****p 的大作中提到】
: golang適合搞“前景不明朗”的小團隊實驗工程,這不屬於我講的“嚴肅”項目。
: 公司也分:一流大公司、一般大公司、二流公司、小公司、創業公司,不是每個公司都
: 要golang才能解決問題。
: 沒人敢碰說明你們公司或項目缺骨幹。

avatar
g*t
113
你可能需要清醒下脑子。用ssh上站。shift-f 什么的查一下本版13年到今日的Golang
帖子。把基本事实弄对。
第一个要点,golang对标的是java,python
不是cpp。rust 对标的是cpp
你批评的东西完全牛头不对马嘴。Rob Pik什么的怎么可能去和C系列比性能?
第二个要点,golang在外面发展起来之前。google内部已经有很多项目在跑了。你查查
就知道了
。Ken Thompson 这些人你觉得不是科班出身的?不是严肃项目?
你讲的话偏离常识太远了。


: golang適合搞“前景不明朗”的小團隊實驗工程,這不屬於我
講的“嚴肅”項目。

: 公司也分:一流大公司、一般大公司、二流公司、小公司、創業公司,不
是每個
公司都

: 要golang才能解決問題。

: 沒人敢碰說明你們公司或項目缺骨幹。



【在 m*****p 的大作中提到】
: 我昨天突然想到可以用一個國家來形容golang:澳大利亞
: 袋鼠國是怎樣一個奇葩的國家,不是G7卻令人嚮往,就跟golang一樣,10歲了也不是程
: 序語言前五名,相比之下,10歲的java已經快要奪冠了。袋鼠國也是,立國幾十年,人
: 均收入爆高,卻不是G7成員。
: 想移民澳大利亞(golang)的人請注意:
: 袋鼠國科技不如美帝(cpp)、人氣不如中帝(java)、文化不如西歐英國(csharp)
: ,完全不是第一梯隊國家(語言)。袋鼠國只適合本身技能低無法移民美帝、又被西歐
: (MS)拒之門外、還不想跟土共(java)為伍的轉行人士開發“短平快、糙快猛”的新
: 項目。
: 我從來沒說golang絕對不好,我是說golang跟主流語言相比“不夠好”,就像澳大利亞

avatar
m*p
114
敏感詞過濾都是用硬件加速的,純軟件根本不行,更別提golang了


: 在大公司退休靠不住。

: 不管能力多强,年纪大了被扫地出门的多了。

: 被赶走前带走点东西糊口,go比你说的那些语言强。

: 不慢,关键是内存用的少。现在云上的内存一直在涨价。

: 打个比方,那个阿里小哥做的hackathon,敏感词替换,就是习总登基以后做点
东西的

: 好项目。

: 大家都不傻。



【在 w********m 的大作中提到】
: 在大公司退休靠不住。
: 不管能力多强,年纪大了被扫地出门的多了。
: 被赶走前带走点东西糊口,go比你说的那些语言强。
: 不慢,关键是内存用的少。现在云上的内存一直在涨价。
: 打个比方,那个阿里小哥做的hackathon,敏感词替换,就是习总登基以后做点东西的
: 好项目。
: 大家都不傻。

avatar
m*p
115
你的觀點不就正好證明了我的結論麼,你再看看我的標題。
第一,性能:
golang根本沒法跟cpp比性能,差一個數量級,golang僅僅是跟java相似,比python快
而已。
Cpp可以說跟assembly差不多,因為性能只有XX%的差異,不會超過一倍。
但是golang跟cpp根本不是某些人宣傳的那樣,接近cpp,其實是接近java。
golang也不可能取代對性能有要求的cpp領域,所以golang差不多10年了普及率也不高。
第二,社區:
不是因為有幾個人、幾個公司的語言就是一流語言,臉家還有項目用php、hhvm,你認
為php是一流語言麼?
golang相比java、cpp,除了狗家,還有誰大規模用?開源項目除了docker、k8s、juju
還有幾個?普及率能跟java、cpp比麼?
第三,嚴肅項目的根據地:
搞android必須搞java,搞deep learning和HPC必須搞cpp,搞windows必須搞csharp
你說說哪個行業、哪個項目必須用golang,沒有golang玩不了的?
感覺golang在這方面還不如javascript的用戶群牢固。

Golang

【在 g****t 的大作中提到】
: 你可能需要清醒下脑子。用ssh上站。shift-f 什么的查一下本版13年到今日的Golang
: 帖子。把基本事实弄对。
: 第一个要点,golang对标的是java,python
: 不是cpp。rust 对标的是cpp
: 你批评的东西完全牛头不对马嘴。Rob Pik什么的怎么可能去和C系列比性能?
: 第二个要点,golang在外面发展起来之前。google内部已经有很多项目在跑了。你查查
: 就知道了
: 。Ken Thompson 这些人你觉得不是科班出身的?不是严肃项目?
: 你讲的话偏离常识太远了。
:

avatar
m*p
116
結論:
golang的地位就是澳大利亞那樣的二流OECD國家在聯合國裡面的地位。
什麼都能做但是什麼都不拔尖。性能不如cpp、社區不如java、在某些領域的統治地位
不如javascript。
替代性非常強,什麼大家拿、信息藍都可以拿來跟袋鼠國比較。
avatar
s*o
117
golang也不在我的武器库里,主要是因为:
1. 表达能力太差
2. 长得忒丑

【在 m*****p 的大作中提到】
: 結論:
: golang的地位就是澳大利亞那樣的二流OECD國家在聯合國裡面的地位。
: 什麼都能做但是什麼都不拔尖。性能不如cpp、社區不如java、在某些領域的統治地位
: 不如javascript。
: 替代性非常強,什麼大家拿、信息藍都可以拿來跟袋鼠國比較。

avatar
g*t
118
你讲的事实部分和你的结论完全没有关系。
比较的什么加拿大澳大利亚更是一比糊涂账。
多少年来除了你,没人拿golang和c plus比性能。
人的第一卖点是M:N scheduler
第二卖点不是语言,是易用性。


: 結論:

: golang的地位就是澳大利亞那樣的二流OECD國家在聯合國裡面的地位。

: 什麼都能做但是什麼都不拔尖。性能不如cpp、社區不如java、在某些領域的統
治地位

: 不如javascript。

: 替代性非常強,什麼大家拿、信息藍都可以拿來跟袋鼠國比較。



【在 m*****p 的大作中提到】
: 結論:
: golang的地位就是澳大利亞那樣的二流OECD國家在聯合國裡面的地位。
: 什麼都能做但是什麼都不拔尖。性能不如cpp、社區不如java、在某些領域的統治地位
: 不如javascript。
: 替代性非常強,什麼大家拿、信息藍都可以拿來跟袋鼠國比較。

avatar
h*l
119
搞deep learning一定要用cpp吗?难道不是python? 我是纯外行,随便瞎问问。:)

高。

【在 m*****p 的大作中提到】
: 你的觀點不就正好證明了我的結論麼,你再看看我的標題。
: 第一,性能:
: golang根本沒法跟cpp比性能,差一個數量級,golang僅僅是跟java相似,比python快
: 而已。
: Cpp可以說跟assembly差不多,因為性能只有XX%的差異,不會超過一倍。
: 但是golang跟cpp根本不是某些人宣傳的那樣,接近cpp,其實是接近java。
: golang也不可能取代對性能有要求的cpp領域,所以golang差不多10年了普及率也不高。
: 第二,社區:
: 不是因為有幾個人、幾個公司的語言就是一流語言,臉家還有項目用php、hhvm,你認
: 為php是一流語言麼?

avatar
m*p
120
你是不是根本看不懂我最開始提到的goroutine sched問題?目前runtime 2根本不支持
NUMA,在G和M之間引入P完全是勉強提高性能的臨時解決方案,go關鍵字隱含多線程不
可控,性能低下在支持NUMA的新sched前完全無解。新sched概念早在2014年就提出了,
目前根本沒有實現,說明golang內部嚴重缺人,也是無解。go是二流語言沒跑。
DL/ML的核心庫都是cpp,py只不過是調用一下而已。


: 你讲的事实部分和你的结论完全没有关系。

: 比较的什么加拿大澳大利亚更是一比糊涂账。

: 多少年来除了你,没人拿golang和c plus比性能。

: 人的第一卖点是M:N scheduler

: 第二卖点不是语言,是易用性。

: 治地位



【在 g****t 的大作中提到】
: 你讲的事实部分和你的结论完全没有关系。
: 比较的什么加拿大澳大利亚更是一比糊涂账。
: 多少年来除了你,没人拿golang和c plus比性能。
: 人的第一卖点是M:N scheduler
: 第二卖点不是语言,是易用性。
:
:
: 結論:
:
: golang的地位就是澳大利亞那樣的二流OECD國家在聯合國裡面的地位。
:
: 什麼都能做但是什麼都不拔尖。性能不如cpp、社區不如java、在某些領域的統
: 治地位

avatar
c*v
121
golang当然不是tie 1语言,这还用得着你攻击加拿大才能说明白吗?
scheduler性能有疑问是个人都知道。但是也有容易用,内存少的优点。
其实就typed unix pipeline类似的东西。
dl有c (not cpp),lua.
ml更复杂。

【在 m*****p 的大作中提到】
: 你是不是根本看不懂我最開始提到的goroutine sched問題?目前runtime 2根本不支持
: NUMA,在G和M之間引入P完全是勉強提高性能的臨時解決方案,go關鍵字隱含多線程不
: 可控,性能低下在支持NUMA的新sched前完全無解。新sched概念早在2014年就提出了,
: 目前根本沒有實現,說明golang內部嚴重缺人,也是無解。go是二流語言沒跑。
: DL/ML的核心庫都是cpp,py只不過是調用一下而已。
:
:
: 你讲的事实部分和你的结论完全没有关系。
:
: 比较的什么加拿大澳大利亚更是一比糊涂账。
:
: 多少年来除了你,没人拿golang和c plus比性能。
:
: 人的第一卖点是M:N scheduler

avatar
s*k
122
任何一个公司的新项目都是从前景不明朗开始的,要是都是前景明朗的,那都是维护老
旧的系统,当然是CPP和Java居多,但是那样的项目基本对人没啥成长
至于没人敢碰和公司能力,我就不透露了,至少业界前三,没人敢碰是连原来CPP的核
心开发人员都在往golang转,自己开发的项目都不准备继续CPP下去,为啥,因为CPP带
来的性能提升,远远抵消不了开发维护难度的增加和项目推进速度慢的损失。尤其对于
cloud部署来说,CPP的性能提升更不明显

【在 m*****p 的大作中提到】
: golang適合搞“前景不明朗”的小團隊實驗工程,這不屬於我講的“嚴肅”項目。
: 公司也分:一流大公司、一般大公司、二流公司、小公司、創業公司,不是每個公司都
: 要golang才能解決問題。
: 沒人敢碰說明你們公司或項目缺骨幹。

avatar
h*l
123
py只是调用一下啊?听上去没有什么技术含量。:)
那用py做AI的难点是哪里?或者说什么地方需要动脑筋比较花时间?Domain Knowledge
? 调模型参数?

【在 m*****p 的大作中提到】
: 你是不是根本看不懂我最開始提到的goroutine sched問題?目前runtime 2根本不支持
: NUMA,在G和M之間引入P完全是勉強提高性能的臨時解決方案,go關鍵字隱含多線程不
: 可控,性能低下在支持NUMA的新sched前完全無解。新sched概念早在2014年就提出了,
: 目前根本沒有實現,說明golang內部嚴重缺人,也是無解。go是二流語言沒跑。
: DL/ML的核心庫都是cpp,py只不過是調用一下而已。
:
:
: 你讲的事实部分和你的结论完全没有关系。
:
: 比较的什么加拿大澳大利亚更是一比糊涂账。
:
: 多少年来除了你,没人拿golang和c plus比性能。
:
: 人的第一卖点是M:N scheduler

avatar
h*l
124
和我现在的部门情况有点像,也是老系统用CPP做,新系统用其他语言。不过我们这里
主要是管理层在推新系统,核心CPP的人要么不愿去做新系统,要么就离开公司了。老
板们肯定是不喜欢CPP的,生产力太低,受技术大牛影响太大,开发成本太高,几乎没
办法找到大量合格的C++程序员。要是一个公司随便就能找到几十个或者上百个大牛C++
程序员,干活努力,工资10万封顶,那肯定所有公司都用C++了啊。:)

【在 s********k 的大作中提到】
: 任何一个公司的新项目都是从前景不明朗开始的,要是都是前景明朗的,那都是维护老
: 旧的系统,当然是CPP和Java居多,但是那样的项目基本对人没啥成长
: 至于没人敢碰和公司能力,我就不透露了,至少业界前三,没人敢碰是连原来CPP的核
: 心开发人员都在往golang转,自己开发的项目都不准备继续CPP下去,为啥,因为CPP带
: 来的性能提升,远远抵消不了开发维护难度的增加和项目推进速度慢的损失。尤其对于
: cloud部署来说,CPP的性能提升更不明显

avatar
x*u
125
C++的问题不是程序员工资高,而是不合格程序员比例大。
C++几乎没法开发大项目,要不就是一个牛人单打独斗,要不就是一个特别强势的人定
一个极严格的规范把大部分特性禁用属下只搬砖,否则写出来的代码就是灾难。

++
护老
的核
CPP带
对于

【在 h**l 的大作中提到】
: 和我现在的部门情况有点像,也是老系统用CPP做,新系统用其他语言。不过我们这里
: 主要是管理层在推新系统,核心CPP的人要么不愿去做新系统,要么就离开公司了。老
: 板们肯定是不喜欢CPP的,生产力太低,受技术大牛影响太大,开发成本太高,几乎没
: 办法找到大量合格的C++程序员。要是一个公司随便就能找到几十个或者上百个大牛C++
: 程序员,干活努力,工资10万封顶,那肯定所有公司都用C++了啊。:)

avatar
h*l
126
是的,但这两者其实也是相关联的,如果公司愿意出足够多的钱,还是能招到合格C++
程序员的。关键现在也没新人学了,年轻人连JAVA都不学了,谁还学C++?

【在 x****u 的大作中提到】
: C++的问题不是程序员工资高,而是不合格程序员比例大。
: C++几乎没法开发大项目,要不就是一个牛人单打独斗,要不就是一个特别强势的人定
: 一个极严格的规范把大部分特性禁用属下只搬砖,否则写出来的代码就是灾难。
:
: ++
: 护老
: 的核
: CPP带
: 对于

avatar
x*u
127
难题就在这里
花钱可以招到足够的C++程序员,但是无法去除里面的沙子还是用不了。Java和C#是极
为抗操的语言可以扔给地球对面的印度外包公司折腾,C++这么搞就废了。

【在 h**l 的大作中提到】
: 是的,但这两者其实也是相关联的,如果公司愿意出足够多的钱,还是能招到合格C++
: 程序员的。关键现在也没新人学了,年轻人连JAVA都不学了,谁还学C++?

avatar
m*p
128
“尤其对于cloud部署来说,CPP的性能提升更不明显”
container/kvm部署golang和cpp的性能差異目前我們還沒有做,但非常懷疑這個cpp性
能提升不明顯的結論,有reference link沒?前面有人貼link說aws lambda上csharp性
能是golang的三倍,三倍也算不明顯嗎?


: 任何一个公司的新项目都是从前景不明朗开始的,要是都是前景明朗的,那都是
维护老

: 旧的系统,当然是CPP和Java居多,但是那样的项目基本对人没啥成长

: 至于没人敢碰和公司能力,我就不透露了,至少业界前三,没人敢碰是连原来
CPP的核

: 心开发人员都在往golang转,自己开发的项目都不准备继续CPP下去,为啥,因
为CPP带

: 来的性能提升,远远抵消不了开发维护难度的增加和项目推进速度慢的损失。尤
其对于

: cloud部署来说,CPP的性能提升更不明显



【在 s********k 的大作中提到】
: 任何一个公司的新项目都是从前景不明朗开始的,要是都是前景明朗的,那都是维护老
: 旧的系统,当然是CPP和Java居多,但是那样的项目基本对人没啥成长
: 至于没人敢碰和公司能力,我就不透露了,至少业界前三,没人敢碰是连原来CPP的核
: 心开发人员都在往golang转,自己开发的项目都不准备继续CPP下去,为啥,因为CPP带
: 来的性能提升,远远抵消不了开发维护难度的增加和项目推进速度慢的损失。尤其对于
: cloud部署来说,CPP的性能提升更不明显

avatar
w*g
129
说得太对了。我带了好几个人了,从来不敢让他们插手我的C++项目。
只要引入一个好玩点的bug就够我受的了。
好在现在有python。

【在 x****u 的大作中提到】
: C++的问题不是程序员工资高,而是不合格程序员比例大。
: C++几乎没法开发大项目,要不就是一个牛人单打独斗,要不就是一个特别强势的人定
: 一个极严格的规范把大部分特性禁用属下只搬砖,否则写出来的代码就是灾难。
:
: ++
: 护老
: 的核
: CPP带
: 对于

avatar
h*l
130
C++性能好是无可争议的,有人拿benchmark results 来证明java或者python比C++快,
甚至还拿leetcode的运行时间来举例,都是在搞笑。所以说这不是问题。
问题是stroustrup大爷弄出来C++以后三十多年了,冒出来这么多语言,各自立一个山
头。要是C++真得很好用,那些语言不会有生存空间。。。C++17 C++20 可能是好用了
很多,但是sorry, too late. 其实这和中国足球搞不好是一样的,因为中国小孩都不
踢球了。
所以存在就是合理的。当然吹牛不好。我也不喜欢AI的人吹嘘AI马上就要取代人类,紧
急关头一定要记得拔电源啥的。我对无人车也持保留态度。但大家都是要混口饭吃。尤
其如果golang比java的主要差距是在ecosystem的话,吹牛还是会很有帮助的。 :)

【在 w***g 的大作中提到】
: 说得太对了。我带了好几个人了,从来不敢让他们插手我的C++项目。
: 只要引入一个好玩点的bug就够我受的了。
: 好在现在有python。

avatar
y*u
131
> 但大家都是要混口饭吃
对,谁给咱饭吃,咱就干啥,不挑

【在 h**l 的大作中提到】
: C++性能好是无可争议的,有人拿benchmark results 来证明java或者python比C++快,
: 甚至还拿leetcode的运行时间来举例,都是在搞笑。所以说这不是问题。
: 问题是stroustrup大爷弄出来C++以后三十多年了,冒出来这么多语言,各自立一个山
: 头。要是C++真得很好用,那些语言不会有生存空间。。。C++17 C++20 可能是好用了
: 很多,但是sorry, too late. 其实这和中国足球搞不好是一样的,因为中国小孩都不
: 踢球了。
: 所以存在就是合理的。当然吹牛不好。我也不喜欢AI的人吹嘘AI马上就要取代人类,紧
: 急关头一定要记得拔电源啥的。我对无人车也持保留态度。但大家都是要混口饭吃。尤
: 其如果golang比java的主要差距是在ecosystem的话,吹牛还是会很有帮助的。 :)

avatar
l*0
132
中国都是笨蛋去踢球,负筛选,能踢得好才怪。一流霸主的国家足球不会强。

【在 h**l 的大作中提到】
: C++性能好是无可争议的,有人拿benchmark results 来证明java或者python比C++快,
: 甚至还拿leetcode的运行时间来举例,都是在搞笑。所以说这不是问题。
: 问题是stroustrup大爷弄出来C++以后三十多年了,冒出来这么多语言,各自立一个山
: 头。要是C++真得很好用,那些语言不会有生存空间。。。C++17 C++20 可能是好用了
: 很多,但是sorry, too late. 其实这和中国足球搞不好是一样的,因为中国小孩都不
: 踢球了。
: 所以存在就是合理的。当然吹牛不好。我也不喜欢AI的人吹嘘AI马上就要取代人类,紧
: 急关头一定要记得拔电源啥的。我对无人车也持保留态度。但大家都是要混口饭吃。尤
: 其如果golang比java的主要差距是在ecosystem的话,吹牛还是会很有帮助的。 :)

avatar
x*u
133
C++性能并不好,因为缺少轮子,你又不可能自己手撸所有的

【在 h**l 的大作中提到】
: C++性能好是无可争议的,有人拿benchmark results 来证明java或者python比C++快,
: 甚至还拿leetcode的运行时间来举例,都是在搞笑。所以说这不是问题。
: 问题是stroustrup大爷弄出来C++以后三十多年了,冒出来这么多语言,各自立一个山
: 头。要是C++真得很好用,那些语言不会有生存空间。。。C++17 C++20 可能是好用了
: 很多,但是sorry, too late. 其实这和中国足球搞不好是一样的,因为中国小孩都不
: 踢球了。
: 所以存在就是合理的。当然吹牛不好。我也不喜欢AI的人吹嘘AI马上就要取代人类,紧
: 急关头一定要记得拔电源啥的。我对无人车也持保留态度。但大家都是要混口饭吃。尤
: 其如果golang比java的主要差距是在ecosystem的话,吹牛还是会很有帮助的。 :)

avatar
s*k
134
不知道三倍这个benchmark哪里来的,每个人实现不一样,我没有做过C# 对golang的对
比,不过网上有很多,随便找一个https://hackernoon.com/go-vs-net-core-in-terms
-of-http-performance-7535a61b67b8,可以试一下,
我觉得其实你可以改变mindset,你对底层了解,为啥不想着去提升golang性能,这样
impact会大得多,如果你假设别家都是不知道golang比CPP性能不如,误入golang,恐
怕也太低估这么多上golang公司的技术能力和项目判断了。相反,如果golang性能不如
CPP下还这么收欢迎,岂不是Golang性能提升之后更大有可图,所以做这个的话,
impact比你只是比较CPP和golang大多了。
当然项目选择语言,各家各个项目组,历史现实都不一样,不好判断

【在 m*****p 的大作中提到】
: “尤其对于cloud部署来说,CPP的性能提升更不明显”
: container/kvm部署golang和cpp的性能差異目前我們還沒有做,但非常懷疑這個cpp性
: 能提升不明顯的結論,有reference link沒?前面有人貼link說aws lambda上csharp性
: 能是golang的三倍,三倍也算不明顯嗎?
:
:
: 任何一个公司的新项目都是从前景不明朗开始的,要是都是前景明朗的,那都是
: 维护老
:
: 旧的系统,当然是CPP和Java居多,但是那样的项目基本对人没啥成长
:
: 至于没人敢碰和公司能力,我就不透露了,至少业界前三,没人敢碰是连原来
: CPP的核

avatar
y*u
135
看这个帖子学了好多,各位基友太厉害了,爱你们
avatar
g*t
136
楼主不了解cpp用户痛点。

terms

【在 s********k 的大作中提到】
: 不知道三倍这个benchmark哪里来的,每个人实现不一样,我没有做过C# 对golang的对
: 比,不过网上有很多,随便找一个https://hackernoon.com/go-vs-net-core-in-terms
: -of-http-performance-7535a61b67b8,可以试一下,
: 我觉得其实你可以改变mindset,你对底层了解,为啥不想着去提升golang性能,这样
: impact会大得多,如果你假设别家都是不知道golang比CPP性能不如,误入golang,恐
: 怕也太低估这么多上golang公司的技术能力和项目判断了。相反,如果golang性能不如
: CPP下还这么收欢迎,岂不是Golang性能提升之后更大有可图,所以做这个的话,
: impact比你只是比较CPP和golang大多了。
: 当然项目选择语言,各家各个项目组,历史现实都不一样,不好判断

avatar
h*l
137
哈哈,那帮国家队踢球的也不是笨蛋,天分有限倒是真的, 因为合适的可供选拔的人
才太少了。美国足球也还马马虎虎了,主要问题是其它几项运动太火把人才分流了。中
国的问题是场地都被拿去造房子,开演唱会,跳广场舞了,没地儿踢球。

【在 l**********0 的大作中提到】
: 中国都是笨蛋去踢球,负筛选,能踢得好才怪。一流霸主的国家足球不会强。
avatar
h*l
138
哈哈,没错。我是假设有足够多的C++牛人。但这个假设在实际生活中基本上是不存在
的, 所以程序往往在性能和稳定性上都会有问题,尤其是在使用时间比较长,牛人慢慢
流失的情况下。 其实楼主把自己克隆1万个,很多问题就解决了。:)

【在 x****u 的大作中提到】
: C++性能并不好,因为缺少轮子,你又不可能自己手撸所有的
avatar
m*p
139
你說的應該是c++03 stl性能不好,老黃曆了,現在正在改變。
c++11和c++03是兩種語言,c++20和c++11/03比則是第三種語言。

【在 x****u 的大作中提到】
: C++性能并不好,因为缺少轮子,你又不可能自己手撸所有的
avatar
x*u
140
C++1x也是垃圾
举个例子,用C++写加密层如何无缝切到GPU上?

【在 m*****p 的大作中提到】
: 你說的應該是c++03 stl性能不好,老黃曆了,現在正在改變。
: c++11和c++03是兩種語言,c++20和c++11/03比則是第三種語言。

avatar
w*g
141
C++20都有了啊。刚刚看了眼,感觉也没啥大差别。

【在 m*****p 的大作中提到】
: 你說的應該是c++03 stl性能不好,老黃曆了,現在正在改變。
: c++11和c++03是兩種語言,c++20和c++11/03比則是第三種語言。

avatar
m*n
142
golang的初衷就是智商高于80%分位低于95%分位的较优秀人才能编利索,而且在这个档
秒杀竞争品种,例如python
至于你说的极限速度不如C++
不是废话吗?
C++几个能用好,几个能继承前任代码?
avatar
b*s
143
possible features变化不小,如果能实现

【在 w***g 的大作中提到】
: C++20都有了啊。刚刚看了眼,感觉也没啥大差别。
avatar
n*t
144
BS 這個人思維主要是推廣語言而不是拿他自己的baby來實現軟件。你看他這麼多年除
了寫書幹了啥?這種人搞出來的語言很多都是中看不中用的東西。
此外,C++性能好只有程序員把他當C來寫的時候才行,本身性能也就一般般。隨便舉個
例子,任何care性能的人,會把std::string搞成那樣嗎?

【在 h**l 的大作中提到】
: C++性能好是无可争议的,有人拿benchmark results 来证明java或者python比C++快,
: 甚至还拿leetcode的运行时间来举例,都是在搞笑。所以说这不是问题。
: 问题是stroustrup大爷弄出来C++以后三十多年了,冒出来这么多语言,各自立一个山
: 头。要是C++真得很好用,那些语言不会有生存空间。。。C++17 C++20 可能是好用了
: 很多,但是sorry, too late. 其实这和中国足球搞不好是一样的,因为中国小孩都不
: 踢球了。
: 所以存在就是合理的。当然吹牛不好。我也不喜欢AI的人吹嘘AI马上就要取代人类,紧
: 急关头一定要记得拔电源啥的。我对无人车也持保留态度。但大家都是要混口饭吃。尤
: 其如果golang比java的主要差距是在ecosystem的话,吹牛还是会很有帮助的。 :)

avatar
S*n
145
看好rust,它才是有可能打败cpp的。区块链中也有用rust装逼的
avatar
b*n
146
让你笑死我了,你们厂完全不用C++所以你怕C++成了这样吧,C++没那么可怕,程序开
发都有质量控制
C这种可读性差的一个牛人单干有可能,比如Linus

【在 x****u 的大作中提到】
: 难题就在这里
: 花钱可以招到足够的C++程序员,但是无法去除里面的沙子还是用不了。Java和C#是极
: 为抗操的语言可以扔给地球对面的印度外包公司折腾,C++这么搞就废了。

avatar
b*n
147
dong总你们质量控制不行啊,说说你们采用了啥方法监督控制质量,我们看看能不能给
你提提建议

【在 w***g 的大作中提到】
: 说得太对了。我带了好几个人了,从来不敢让他们插手我的C++项目。
: 只要引入一个好玩点的bug就够我受的了。
: 好在现在有python。

avatar
x*u
148
C++的所谓质量控制就是阉割

【在 b*****n 的大作中提到】
: 让你笑死我了,你们厂完全不用C++所以你怕C++成了这样吧,C++没那么可怕,程序开
: 发都有质量控制
: C这种可读性差的一个牛人单干有可能,比如Linus

avatar
b*n
149
stl只是一个general的实现,目的不是cover所有specific的问题

【在 m*****p 的大作中提到】
: 你說的應該是c++03 stl性能不好,老黃曆了,現在正在改變。
: c++11和c++03是兩種語言,c++20和c++11/03比則是第三種語言。

avatar
b*n
150
看了前面大拿的发言,感觉是给不愿意学C++的C老帮菜们用的
跟智商没关系

【在 m*****n 的大作中提到】
: golang的初衷就是智商高于80%分位低于95%分位的较优秀人才能编利索,而且在这个档
: 秒杀竞争品种,例如python
: 至于你说的极限速度不如C++
: 不是废话吗?
: C++几个能用好,几个能继承前任代码?

avatar
b*n
151
这么说吧,火药危险吧,照样生产吧,你听说军工厂经常爆炸么?

【在 x****u 的大作中提到】
: C++的所谓质量控制就是阉割
avatar
x*u
152
C++等于让全厂工人随便碰火药

【在 b*****n 的大作中提到】
: 这么说吧,火药危险吧,照样生产吧,你听说军工厂经常爆炸么?
avatar
f*t
153
同意。
Golang能在像uber这样管理混乱的公司一统江湖,正是因为它在开发效率和运营效率之
间取得了完美的平衡,相比于其它语言有巨大的优势。
不知道两个月过去,楼主有没有认清golang是新一代公司主要backend语言的现实,别
再为c++招魂了。公司的技术骨干做决定时会考虑商业需求,在什么语言合适的问题上
绝对有判断力。

terms

【在 s********k 的大作中提到】
: 不知道三倍这个benchmark哪里来的,每个人实现不一样,我没有做过C# 对golang的对
: 比,不过网上有很多,随便找一个https://hackernoon.com/go-vs-net-core-in-terms
: -of-http-performance-7535a61b67b8,可以试一下,
: 我觉得其实你可以改变mindset,你对底层了解,为啥不想着去提升golang性能,这样
: impact会大得多,如果你假设别家都是不知道golang比CPP性能不如,误入golang,恐
: 怕也太低估这么多上golang公司的技术能力和项目判断了。相反,如果golang性能不如
: CPP下还这么收欢迎,岂不是Golang性能提升之后更大有可图,所以做这个的话,
: impact比你只是比较CPP和golang大多了。
: 当然项目选择语言,各家各个项目组,历史现实都不一样,不好判断

avatar
F*s
154
先说需求,你要干什么,然后再比较工具。我小时候经常比较C和Pascal,那时候比较
的点跟现在可不一样。既然C++什么都能做为啥要用别的呢?说开发效率,都是copy自
己积累了几十年的代码库,智能指针也能省很多事。要说公司雇了一批新手,那就没办
法了,我永远不会钻进这样的新手组。
最近忙于写作,路过打一把酱油。
avatar
P*i
155
招魂也谈不上。
遇到性能攸关的项目,还是得上c++。golang在k8s算得上一统江湖吧,envoy还是得用c
++写。

【在 f*******t 的大作中提到】
: 同意。
: Golang能在像uber这样管理混乱的公司一统江湖,正是因为它在开发效率和运营效率之
: 间取得了完美的平衡,相比于其它语言有巨大的优势。
: 不知道两个月过去,楼主有没有认清golang是新一代公司主要backend语言的现实,别
: 再为c++招魂了。公司的技术骨干做决定时会考虑商业需求,在什么语言合适的问题上
: 绝对有判断力。
:
: terms

avatar
f*t
156
哪种情况叫性能攸关?我没听说过哪家公司的golang backend service因为性能问题只
好用c++重写。一些要挖掘单机最后一丝性能的项目用c++很正常,没人说go能完全取而
代之,但只要靠堆机器scale up,go就有机会。看待go的时候要认识到以下两点才能不
偏激:
1. Golang的性能完全胜任足够复杂的高并发后端系统,比如uber的车辆调度和twitch
的直播评论。
2. 新公司后端选择了golang是因为它好用,不是因为它们盲目跟风。

用c

【在 P****i 的大作中提到】
: 招魂也谈不上。
: 遇到性能攸关的项目,还是得上c++。golang在k8s算得上一统江湖吧,envoy还是得用c
: ++写。

avatar
P*i
157
我说的envy就是性能攸关啊。
你要搞个service mesh,每个反向代理的延迟、吞吐量都差30+%,整套服务下来还不得
要命。

twitch

【在 f*******t 的大作中提到】
: 哪种情况叫性能攸关?我没听说过哪家公司的golang backend service因为性能问题只
: 好用c++重写。一些要挖掘单机最后一丝性能的项目用c++很正常,没人说go能完全取而
: 代之,但只要靠堆机器scale up,go就有机会。看待go的时候要认识到以下两点才能不
: 偏激:
: 1. Golang的性能完全胜任足够复杂的高并发后端系统,比如uber的车辆调度和twitch
: 的直播评论。
: 2. 新公司后端选择了golang是因为它好用,不是因为它们盲目跟风。
:
: 用c

avatar
p*u
158
公司飞速发展的初级阶段需要糙快猛,就用简单容易上手的语言。等做大之后有钱有闲
了,再招牛人们手撸C/C++提高performance,变相节省data center开支。FB不就是这
样么?

twitch

【在 f*******t 的大作中提到】
: 哪种情况叫性能攸关?我没听说过哪家公司的golang backend service因为性能问题只
: 好用c++重写。一些要挖掘单机最后一丝性能的项目用c++很正常,没人说go能完全取而
: 代之,但只要靠堆机器scale up,go就有机会。看待go的时候要认识到以下两点才能不
: 偏激:
: 1. Golang的性能完全胜任足够复杂的高并发后端系统,比如uber的车辆调度和twitch
: 的直播评论。
: 2. 新公司后端选择了golang是因为它好用,不是因为它们盲目跟风。
:
: 用c

avatar
f*t
159
提高perf节省dc cost主要并不是依靠语言。架构复杂的分布式系统里,用c++重写几个
component,效率就能高10倍,不觉得这种说法是天方夜谭吗。我的经验是,fb这样的
大公司花了最多精力在这些优化上:
1.减少硬件浪费。有的service只需要3台机器,却配置了10台,需要一系列capacity管
理工具通过系统load动态调整,并把service放进container。
2.减少软件浪费。比如某组的ranking engineer测试新feature后发现没有用但忘记删
除,不断生成的data占用很多资源,清除这些每天能节省PB级的存储。
3.追踪regression。在php repo里,每个diff都有可能造成性能问题,需要一个系统自
动锁定谁是trouble maker。
4.提供各种工具让developer的工作更有效率。人工成本可不比服务器成本少。

【在 p*u 的大作中提到】
: 公司飞速发展的初级阶段需要糙快猛,就用简单容易上手的语言。等做大之后有钱有闲
: 了,再招牛人们手撸C/C++提高performance,变相节省data center开支。FB不就是这
: 样么?
:
: twitch

avatar
p*u
160
Scylla DB就比Cassandra的throughput大很多倍:
https://www.scylladb.com/product/benchmarks/

【在 f*******t 的大作中提到】
: 提高perf节省dc cost主要并不是依靠语言。架构复杂的分布式系统里,用c++重写几个
: component,效率就能高10倍,不觉得这种说法是天方夜谭吗。我的经验是,fb这样的
: 大公司花了最多精力在这些优化上:
: 1.减少硬件浪费。有的service只需要3台机器,却配置了10台,需要一系列capacity管
: 理工具通过系统load动态调整,并把service放进container。
: 2.减少软件浪费。比如某组的ranking engineer测试新feature后发现没有用但忘记删
: 除,不断生成的data占用很多资源,清除这些每天能节省PB级的存储。
: 3.追踪regression。在php repo里,每个diff都有可能造成性能问题,需要一个系统自
: 动锁定谁是trouble maker。
: 4.提供各种工具让developer的工作更有效率。人工成本可不比服务器成本少。

avatar
b*n
161
我觉得你是不是没有get到,大厂一个single service经常使用达到万台机器
用不用C++明显要考虑(节省的运行成本(电费、硬件开销)- 增加的软件开发成本)
如果使用的机器数量是n,前者是O(n),后者是O(c)

【在 f*******t 的大作中提到】
: 提高perf节省dc cost主要并不是依靠语言。架构复杂的分布式系统里,用c++重写几个
: component,效率就能高10倍,不觉得这种说法是天方夜谭吗。我的经验是,fb这样的
: 大公司花了最多精力在这些优化上:
: 1.减少硬件浪费。有的service只需要3台机器,却配置了10台,需要一系列capacity管
: 理工具通过系统load动态调整,并把service放进container。
: 2.减少软件浪费。比如某组的ranking engineer测试新feature后发现没有用但忘记删
: 除,不断生成的data占用很多资源,清除这些每天能节省PB级的存储。
: 3.追踪regression。在php repo里,每个diff都有可能造成性能问题,需要一个系统自
: 动锁定谁是trouble maker。
: 4.提供各种工具让developer的工作更有效率。人工成本可不比服务器成本少。

avatar
f*t
162
天哪,是啥让你觉得后者是O(c)的。跑10台机器上的service,跟跑10000台机器上的
service,开发成本能一样吗?大厂service各种耦合,重写一个service往往解决不了
什么问题,另外还有迁移测试等成本。
我前边回的几个帖,用手机好不容易打了那么多字,就是希望大家能意识到软件最终是
要为公司的business服务的,语言的性能只是一个指标,往往还不是决定性因素,看问
题的时候要多考虑几个维度。感觉对牛弹琴了。。。

【在 b*****n 的大作中提到】
: 我觉得你是不是没有get到,大厂一个single service经常使用达到万台机器
: 用不用C++明显要考虑(节省的运行成本(电费、硬件开销)- 增加的软件开发成本)
: 如果使用的机器数量是n,前者是O(n),后者是O(c)

avatar
b*n
163
不是O(c)难道是O(n)?只要你承认比O(n)小,再回去看看我的帖子

【在 f*******t 的大作中提到】
: 天哪,是啥让你觉得后者是O(c)的。跑10台机器上的service,跟跑10000台机器上的
: service,开发成本能一样吗?大厂service各种耦合,重写一个service往往解决不了
: 什么问题,另外还有迁移测试等成本。
: 我前边回的几个帖,用手机好不容易打了那么多字,就是希望大家能意识到软件最终是
: 要为公司的business服务的,语言的性能只是一个指标,往往还不是决定性因素,看问
: 题的时候要多考虑几个维度。感觉对牛弹琴了。。。

avatar
f*t
164
多说无益,你自己来大厂体验一下就知道了

【在 b*****n 的大作中提到】
: 不是O(c)难道是O(n)?只要你承认比O(n)小,再回去看看我的帖子
avatar
h*e
165
编程语言性能在绝大部分环境下不起决定性作用,2018年了,这个不需要你再来安利吧
。你也不要觉得自己不是牛还会弹琴。
没记错的话你就是Facebook的吧?你厂狂用C++你跑来和大家拼命讲语言性能不重要,
大家觉得你有点分裂而已。

【在 f*******t 的大作中提到】
: 天哪,是啥让你觉得后者是O(c)的。跑10台机器上的service,跟跑10000台机器上的
: service,开发成本能一样吗?大厂service各种耦合,重写一个service往往解决不了
: 什么问题,另外还有迁移测试等成本。
: 我前边回的几个帖,用手机好不容易打了那么多字,就是希望大家能意识到软件最终是
: 要为公司的business服务的,语言的性能只是一个指标,往往还不是决定性因素,看问
: 题的时候要多考虑几个维度。感觉对牛弹琴了。。。

avatar
b*n
166
大多数golang的service跑在不超过几个,十几个机器上。我好奇golang跑的最大的
service是什么?有超过一千台server的golang service么?我想围观一下
avatar
f*t
167
你既同意"编程语言性能在绝大部分环境下不起决定性作用",又反对“语言性能不重要
”,到底谁分裂了?
另外声明一下,我明确把话题限定在golang的性能在大部分分布式系统中不是瓶颈,请
不要曲解我的意思。
再谈谈fb backend狂用c++的设定,这是个很有意思的话题。我认为主要是由于早期招
的人多是acm选手和从google挖的c++程序员,大多数系统的原型是c++,很难改变了。
与G家闲人众多不同,F的dev infra团队没有足够的资源去支持其它语言,比如golang
的支持是两三个dev出于兴趣用业余时间一点点搞起来的。16年后端build system从
fbmake改成buck,golang由于不是主流语言,用它开发只能一步步地把坑踩过去。
thrift的支持不好,跟其它service通信都有问题,还谈什么。我写的一个需要cgo的
side project直接无法编译,只好放弃。这恰好印证了我之前说的,legacy code太多
无法重写大公司只好沿着一条道走到黑的理论。G家dev support资源应该是很多的,所
以后端百花齐放,可以选择c++, java和go,甚至更多小众语言进行开发。

【在 h****e 的大作中提到】
: 编程语言性能在绝大部分环境下不起决定性作用,2018年了,这个不需要你再来安利吧
: 。你也不要觉得自己不是牛还会弹琴。
: 没记错的话你就是Facebook的吧?你厂狂用C++你跑来和大家拼命讲语言性能不重要,
: 大家觉得你有点分裂而已。

avatar
p*u
168
FB早期不是纯php吗?赵海平也不是狗家的前员工,写hiphop就是图C++的performance。

golang

【在 f*******t 的大作中提到】
: 你既同意"编程语言性能在绝大部分环境下不起决定性作用",又反对“语言性能不重要
: ”,到底谁分裂了?
: 另外声明一下,我明确把话题限定在golang的性能在大部分分布式系统中不是瓶颈,请
: 不要曲解我的意思。
: 再谈谈fb backend狂用c++的设定,这是个很有意思的话题。我认为主要是由于早期招
: 的人多是acm选手和从google挖的c++程序员,大多数系统的原型是c++,很难改变了。
: 与G家闲人众多不同,F的dev infra团队没有足够的资源去支持其它语言,比如golang
: 的支持是两三个dev出于兴趣用业余时间一点点搞起来的。16年后端build system从
: fbmake改成buck,golang由于不是主流语言,用它开发只能一步步地把坑踩过去。
: thrift的支持不好,跟其它service通信都有问题,还谈什么。我写的一个需要cgo的

avatar
p*y
169
看完两个高楼,收获很大

performance。

【在 p*u 的大作中提到】
: FB早期不是纯php吗?赵海平也不是狗家的前员工,写hiphop就是图C++的performance。
:
: golang

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。