- 主题:[转载]Linus Torvalds 称 C++ 是一种很烂的语言
"LOL," was his response. "C++ solves _none_ of the C issues, and only makes things worse. It really is a crap language.
"For people who don't like C, go to a language that actually offers you something worthwhile. Like languages with memory safety and [which] can avoid some of the dangers of C, or languages that have internal GC [garbage collection] support and make memory management easier.
"C++ solves all the wrong problems, and anybody who says 'rewrite the kernel in C++' is too ignorant to even know that."
He said that when one spoke of the dangers of C, one was also speaking about part of what made C so powerful, "and allows you to implement all those low-level things efficiently".
Torvalds added: "While I think GC [garbage collection] is a wonderful thing for programming simplicity, it's generally not necessarily something you can do in a low-level system programming. So I'm not saying 'integrated GC' is good for OS kernels, but it's a very good thing in most other situations."
https://itwire.com/open-source/rust-support-in-linux-may-be-possible-by-5-14-release-torvalds.html
--
FROM 112.47.122.*
这段话是这几天喷的。换了个新姿势喷 cpp.
【 在 allegro (静水流深) 的大作中提到: 】
: 这是哪一年的老黄历了。
: 虽然现在的C++比那时候复杂度又提升了一个数量级。。
--
FROM 112.47.122.*
vc6 时代,巨硬的 c++ 编译器就是标准啊。当朝我朝大半的人都在做 windows 开发。做 linux 的基本没有。
不过那是 20 年前的。。不能这样推给前人吧。
【 在 mopo (Fred Li) 的大作中提到: 】
: c++一半的坏名声来自于微软吧,一本COM本质论让我彻底脱坑了
: 之前能看到template meta programming已经是极限了
--
修改:hgoldfish FROM 110.81.40.*
FROM 110.81.40.*
按说 go 的语法改成 throw exception 应该不难的。
【 在 ilovecpp (cpp) 的大作中提到: 】
: 当然比C#易学,语言特性总量差别放在这里。也许C#每个语言特性都不难,但总数有这么多呢。
: go是(网络)系统编程语言,为什么要和Java,C#比?甚至spring,还是这个例子,CNCF下面这些项目有多少需要用到spring?又有多少用C#?它本来就不是针对应用层,“大型工程”开发。
: 不过go的错误处理某种意义上还不如C。C的if err goto error集中释放资源比go还方便些。
: ...................
--
FROM 140.224.34.*
(网络)系统编程语言的意思是:
除了做点网络开发,其它事情干起来特别麻烦。讲得更明白一点。。就是除网络编程这个领域之外, go 是个残废。
类似的评价还有:
js 是个 web 编程语言,意思是它除了做 web 前端开发也干不了什么。
java 是个业务逻辑脚本语言,意思是 java 除了业务搬砖,其它的事情不太在行。
python 是个小学生语言,,意思是 python 除了给小学生学习编程,约等于无用。
综上所述,我认为 php 最佳。。
【 在 leadu (leadu) 的大作中提到: 】
: “简单易学易部署”主流语言在这些方面都差不多,区别更可能是主观上的,讨论价值不大,前几大语言都可以这么描述。
: 我不懂什么叫“(网络)系统编程语言”,猜测是像“复盘,赋能,抓手,对标,沉淀,对齐,拉通”?
: 讨论还是聚焦客观对比吧,如果没有啥客观描述,还是等等gpmn回复,他是go版版主
: ...................
--
修改:hgoldfish FROM 140.224.34.*
FROM 140.224.34.*
所以 go 的生态位是处于 java/python/c# 和 c 之间的一个小领域。
用 java/python/c# 这种主流开发网关虽然很快,太过于重型,或者速度不行。
用 c 速度是够了,但是门槛太高。
于是就有个折衷的 go 出来。
【 在 leadu (leadu) 的大作中提到: 】
: 叫better XX的肯定要改进XX的主体功能,边边角角改进XX不能叫better的
: c现在很大一部分是用来写操作系统相关的部分,带gc的语言都做不到,不能叫better c
--
FROM 140.224.34.*
因为写网关用协程很爽啊。。
java 是可以的。现存的网关估计 java 写的比 go 多,但长远地看,用 go 写 restful 网关调用微服务,以及搞微服务网关会越来越多。
nodejs 就算了。js 有协程,但 js 社区最近集体沉迷于用 js 搞函数式编程,对协程不感兴趣。回调又回调的风格现在还是 js 社区的主流,一时半会儿不会有太多 js 程序员想到API 网关,微服务网关这个小领域。
【 在 ilovecpp (cpp) 的大作中提到: 】
: api gateway?还是应用层的东西,恐怕不是go原本的设计方向。
: 用java或者nodejs都可以,前后端总有一边熟悉,为啥要弄个前后端都不熟悉的第三门语言来写api gateway呢?
--
修改:hgoldfish FROM 140.224.34.*
FROM 140.224.34.*
你可能理解错误了。。现在 go 被大量应用在服务端编程。
用于制作 API 网关,比如我要做个手机 APP,需要对接服务端的时候,就用 go 写。但是 go 本身也没有写太多业务逻辑,交给其它微服务,当然说不定微服务也是 go 写的。。go 也拿来写微服务网关,微服务的负载均衡之类的。
或者像 TiDB, influxdb 那样用 go 写数据库。
或者拿 go 写 p2p 应用,数字货币的 API 网关。界面部分和 API 网关分离,中间以 http restful 协议通信。
路由器嵌入式这一块用 go 也有。但可能还不多,因为这个领域对容量要求很严格,目前还是 c 的天下。
【 在 leadu (leadu) 的大作中提到: 】
: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~这么说我就明白了,目前这块空间不太大,路由器嵌入式系统网络应用这块,java/c#跑着费劲或是未必能跑,python性能不够,C开发效率太低了,go确实合适
--
FROM 140.224.34.*
以愚之浅见。。java 加上协程也跟 c# 差不多, 火不起来的。
协程是 all or nothing. 要么整个语言社区都用协程,要么整个社区都不使用协程。假如一部分协程 IO,一部分线程 IO,那就很容易在协程里面出现阻塞整个线程的 IO,写着写着就出事了。
java 社区的 kotlin 就有协程,然并卵,要很小心的编写才不会出问题。
【 在 leadu (leadu) 的大作中提到: 】
: java我觉得迟早也得加上协程,就算不加,api gateway换c#比换go值多了:
: 首先c#和java长得像,而且c#还能写客户端、游戏、wasm啥的
: 要说主观上就是喜欢go,那肯定是换go;但从客观上讲,换go的性价比太低
: ...................
--
FROM 140.224.34.*
协程本身是一个异步的流程。异常本来就不应该传递到父协程。你可以看看 python 协程和 js 协程也是一样的,子协程的异常不抛到父协程里面。
go 本身的异常机制自身会处理好的。没问题的。
【 在 leadu (leadu) 的大作中提到: 】
: go那种扔协程像扔窜天猴一样,扔出去就管不了的方式,在大吞吐下怕是处理各种异常路径有些力不从心
--
FROM 140.224.34.*