- 主题:【转】微软正从 C/C++ 改用 Rust 来构建其基础设施软件
rust最大的优势是生命周期管理,这个对所有语言都一样。
这里稍微谈谈go。我当时评估go的目的是想替换python。因为我每过6年就会做一次技
术堆栈的升级,python这里卡的有点太旧了。但当时尝试了一下认为还是不能接替
python。
go和python理念方面比较像,都是工程师思维比较的实用派。但这类目标讲究的是简
单快速稳定高效的出活,所以比较考验第三方生态。go当时还是有比较大的差距的。
至于执行性能我觉得从来就不是大问题。需要性能的场合本来就是需要投入额外优化
精力的。python用cython可以无缝做热点替换不断逼近c性能。go的性能卖点也不是那
么的吸引人。此外工程性角度,python也是可以维护好大规模项目的,这主要是一个
管理的问题而不是语言的问题。所以我最终还是没切换。当然现在另说,不过现在我
兴趣也不在go上面。
【 在 liaotianxia (liaotianxia) 的大作中提到: 】
: rust 比 go的优势在哪里?
--
修改:lvsoft FROM 49.77.137.*
FROM 49.77.137.*
建议你看看rust的tutorial或者介绍,不要想当然。
【 在 hgoldfish (老鱼) 的大作中提到: 】
: rust 主要是内存管理的创新。。就这样子足以带来安全编程的革命?不太相信啊。
rust 能够防止内存被多次释放以致崩溃,但是能够防止长时间运行的内存泄漏吗?
--
FROM 49.77.137.*
这个跟刷不刷评没啥关系。
自身实力够,刷评就是快速走出积累期的正面手段。
自身实力不足,刷评才是恶意目的。
我对rust的评价也不是看各种评论指标,而是从我的各方面观察得出。
比如我关注的好几个项目都有或者已经完成了基于rust重做的操作。那这个对我来
说就是非常有说服力的东西。
【 在 javaboy (喝了咖啡就话多-_-;) 的大作中提到: 】
: 分享一下我长期潜水观察得到的结论:rust团队在网络刷好评上是下了相当大的
工夫的。
: 附件图是reddit编程版上搜索rust的结果。可以看出很多帖子的价值和点赞量根
本不成比例。比如图中1.36.0发布的消息,本身就是个小版本发布,几乎没什么信
息量,主题下也只有131个很敷衍的回复,主题本身却获得了800多个赞。仿佛有6、
700人无脑点了赞似的。
: 而且这不是特例,类似的帖子非常多。在reddit的这个版面,能拿到800多个赞的
一般都是极火的贴子了。像linus怒喷c++这种贴也只有1100个赞。。但只要和rust
有关的消息,几乎任何毫无意义的水文都能得到700~800多个赞。。
: ...................
--
FROM 49.77.137.*
内存碎片化不是rust在语言层面需要解决的问题。
而且你也说了,c/c++可以自定义allocator,rust也可以了。
你后面的话我是完全看不懂了。
什么叫rust本身没有做?那个malloc/free难道本身就做了什么?
就算rust本身什么也没有做,那c/c++不也一样?
“也没有提供形式化地检验来保证程序员为了解决这个问题没有引入内存bug”又是
什么意思,c/c++难道哪里提供了形式化的验证手段不成?
何况rust本来就自带了专门针对碎片化问题的jemalloc,而且在binary模式下默认
开启。
https://doc.rust-lang.org/1.9.0/book/custom-allocators.html
【 在 javaboy (喝了咖啡就话多-_-;) 的大作中提到: 】
: 老鱼说的是对的。
: rust可以防止use after free, use before malloc, double free之类的问题,
但确实解决不了内存碎片化的问题。
: 在c++/c里我们一般自定义allocator,或者替换malloc/free来解决这个问题。
: ...................
--
修改:lvsoft FROM 49.77.137.*
FROM 49.77.137.*
我已经拒掉很多高工资大空间的机会了。
有时候我也觉得我挺任性的,不知道我这么做对不对。
但反正作为纯粹的技术人,至少是不用担心后路问题的,所以任性一点也没关系。
【 在 eematlab (一辰未冉) 的大作中提到: 】
: 没法像你这么任性, 找到一份可以发挥自己长处并且有成长空间的工作很难。在小
的圈子得到认可容易, 但脱离那个小圈, 别人凭什么付你高工资给你大空间。年纪
越大薪水越高, 换一个空间越难,代价越大。技术,有时候当成兴趣也挺好, 并不
一定能以它为生
: 发自「今日水木 on PCT-AL10」
--
FROM 49.77.137.*
我对java这种民工用的语言,一丁点兴趣都没。
【 在 liaotianxia 的大作中提到: 】
: 为啥一直不用java,你的技术路线选择车里为啥一直避开这么重要甚至可以说核心的一个选项。
--
FROM 180.111.51.*
简单的说要看这门语言的核心卖点是啥。
java刚诞生的时候宣传的核心卖点是跨平台,但这只是java表面上的卖点,并不关键,只能说对java真正的关键卖点起了助力作用。
java真正的核心价值是可以让外行进过简单的培训也能写出凑合能用的,至少是不容易弄崩系统的代码。
所以java是第一个大规模的催生出培训班体系,产生了让大量的民工培训下就能上岗的这种生态的语言。之后java的所有体系都是为这个服务的,包括design pattern,各种框架,以及围绕如何更好的使用框架的培训甚至认证等等之类的。这个就叫民工语言。
一项技术,从诞生到进入千家万户,离不开工业化这个阶段阶段。java就是承载了这个信息技术的工业化生产阶段的媒介。但写程序和其他工业化大生产不一样,写程序需要人的智能。而java是第一个成功的把人的智能作为一种消耗品,并能大规模稳定生产稳定消费的语言。这个角度来说java是很重要,也很伟大,但跟我关系不大。
【 在 stub 的大作中提到: 】
: 民工语言怎么理解
--
修改:lvsoft FROM 180.111.51.*
FROM 180.111.51.*
欸?对于有装b需求的人来说,才会觉得这是装b吧?
我有说过民工语言很low么?我有说过民工很low么?我说的是跟我关系不大,不感兴趣而已。
小学语文没学过“谁知盘中餐,粒粒皆辛苦”么?是谁给你的能俯视农民的高高在上的装逼感?
另外你说冯诺依曼认为所有的高级语言都是愚蠢的,我没听说过他有这样的观点,麻烦给出链接让我看看。要说冯机语言的特征,那还就是c这类面向过程的高级语言最能体现了,非冯的都是基于lambda演算的。这两类语言确实有过一争高下的历史,应用上也有过起伏,但现在也都融合了。世界的进步依赖的是象牙塔创造的源头,以及工业化的扩散。一个researching一个engineering两者都同等重要,尤其是现在社会越发讲究交叉学科,researcher不能轻视engineering能力,好的engineer也具备一定的researching素质,只不过是每个人有自己的自身定位,更倾向于某一侧而已。把两者割裂开来强行一个鄙视另一个,所以我说你才是装b需求者,是故意挑事的那种人。
最后,讨论问题麻烦就事论事。你这番言论没提供什么有效信息,有的只是对我个人的攻击。你这种行为叫lowb。懂?
【 在 siegfried415 的大作中提到: 】
: 人类的任何被广泛使用的工具,如果能够降低使用难度,便于大规模推广,就会得到广泛的使用,成为有价值的进步,价值从来都不是由那些孤芳自赏的人躲在象牙塔中造的所谓有逼格的东西产生的,举了例子,对于冯诺依曼来说,只要有机器语言就足够了,他认为任何高级语言都是愚蠢的,包括你所崇拜的C语言、rust什么的,如果冯也能上水木,估计他会评价C语言、rust都是农民工语言,然后摆出一副不屑一顾的装B表情。
: 我觉得吧,人们讨论语言的优劣、建立语言的谱系,是为了在面对特定任务时更容易地找到比较合适的工具,而不是为了在装逼链上占据更高的位置,当然对某些人来说,后者具有更大的意义。。。
:
--
FROM 180.111.51.*
你该说的是他。
我是有一说一就事论事,也不知道那里惹了他了,一副阴阳怪气的嘴脸。
【 在 javaboy 的大作中提到: 】
: 优劣好坏,还是可以讲清楚的。。。别这样啦
:
--
FROM 180.111.51.*
我觉得每个语言能成事,最关键的还是语言特性和诞生时代。
c是时代早,承载了汇编之后的高级语言的需求,又刚好搭上了unix的车。c+unix+tcpip构成了现代整个信息系统的基础。
java么是被跨平台的需求催生的,为了吸取了c的教训,设计的时候约束就比较强,也不是啥大毛病就是给我一种乏味无聊的感觉。但刚好2000年前后信息系统大爆发,产生了大量信息系统建设需求,产生了大量程序员的需求,java是唯一一个能保证工程规模、质量和成本的语言。
python么诞生的比java更早,但一路草根过来本身是不温不火的。但python因为语言极端简单(我记得最初的目标是用于婴幼儿早教)。虽然python一度是startup的常用语言,但毕竟规模大了之后还是要转其他语言的,相对还不是那么的成气候。所以python的基石是它易学易用的特点让它在非IT行业爆发了,抓住了科学计算这个行业,借由这个基础延伸到了ai领域。
JavaScript是一门土鳖到令人无语的语言。但一如c搭上了unix遍及全球一样,JavaScript搭上了浏览器这个新一代的os。好比力大板砖飞一样,语言也是只要规模足够大,再怎么土鳖都是能改好的。早期的jquery,中期的coffeescript等中间层语言,现在的ts,es。但js的未来,我只能说我看不清。应该可以无脑的说它已经立于不败之地了,但我总觉得还少了点什么。
rust的定位不会是大众语言,但现代IT系统早就过了早期粗放式发展阶段。当年windows的蓝屏频率,在那点代码规模下就只做到这个质量,放到现在是不可想象的。以后的代码规模只会越加庞大,但人们对代码质量的要求也只会越发的高。系统级编程确实需要一门比c更好的语言,原本这个位置应该是c++的,但c++这二十多年坦白地说我不知道到底干了个啥。可以说c++的理想是c++++++,但实际工程实践中人们只把它当c+用,只当是比c好一点的c语言而已。我是觉得rust处在一个正确的时间点,也在做正确的事情。不过rust的门槛和定位也决定了它的市场规模会比较小,影响力会比较局部。
【 在 No1 的大作中提到: 】
: 时也,命也。设计好的编程语言多了去了
: C、Java、JavaScript、Python都在最合适的时间挖了最深的坑,里面填的人不多都不可能。
: 但现在看来能背负万人坑之名的,还得是JavaScript
: ...................
--
FROM 180.111.51.*