- 主题:c++码农失业的有吗?看work life版码农们很惨呐
dijkstra都自称自己为humble programmer,程序员本来就不是阿猫阿狗可以自称的。
自称为码农这种风气是从Java开始的。因为java的特性就是不容易搞崩,首创了阿猫阿狗培训3个月就能开干的生态。整的跟工厂流水线工人一样就是个拧螺丝的,可以随时替换的角色。那种确实只配称之为码农。
【 在 xxbbiinn77 的大作中提到: 】
: 投行哪能跟程序员比。。。当然,我对投行确实没什么兴趣,做人可以内心里贬低自己,但是在外人面前不要示弱,要有尊严的活着,程序员比码农听起来要更高大上,那么在外人面前就要自称程序员来抬高自己的档次,老子就是程序员,别用码农这种庸俗的职称来污蔑我。
--
FROM 180.158.48.*
unsafe的意思是这段代码的安全性由人负责,而不是rust的机制负责。
另外rust基本上是rebuild everything的,不存在基于c/c++这种事情。有也只是临时性的过渡状态。一个以安全为卖点的语言,怎么可能基于不安全的基础?用脚趾头想都应该能明白。
【 在 overcomeunic 的大作中提到: 】
: 是不是所有的unsafe都得c/c++/asm来兜底
: 如果是,那这玩意就是为了甩锅么?
--
修改:lvsoft FROM 180.158.48.*
FROM 180.158.48.*
并不是保证没有bug,rust只保证不存在内存安全方面的问题,再具体一点就是不存在访问越界,野指针之类的问题。
rust一样会内存泄漏,这个问题跟图灵停机问题一样,是不可判定的。本身就不是可以100%保证解决的问题。
但rust的风格是要写出有问题的代码,会很难。以至于你如果不是对rust极其熟练,是无法绕开各种机制的阻挠,写出内存泄漏的代码的。
【 在 joygpwan 的大作中提到: 】
: 这么强大的吗?代码编译通过就没有bug,怎么保证的,可能引起bug的地方语法层面给禁止了吗
--
FROM 180.158.48.*
我有个朋友是没学rust直接上手就用rust写一个比较大的项目的。
他在google早就习惯了google内部定义的那套c++的代码规范,所以rust强调的东西早就是他的习惯,所以对他来说切rust就跟吃饭喝水一样完全没有问题。
切完rust之后他基本就是rust only的人了...
我惯用的语言是python,我切rust比他要痛苦一些,不过经历一次失败之后现在也ok了。
【 在 RichyMong 的大作中提到: 】
: c++高手是通过清晰的思路搞定生命周期、多线程时对象的操作权等棘手问题
: rust直接在编译器层面模式化,如果本身对这些有清晰的认识,会很习惯
--
FROM 114.222.168.*
rust设计的还是比较有意思的。
举个例子,比如错误处理,rust没有异常,而是Result<>的风格把结果包起来。然后提供一个?语法糖,在返回错误的情况下直接return掉。就像perl里面的xxx or die()。
但如果你要用好这个语法糖,就必须把错误处理流程设计好,否则你就只能unwrap()。
然后你就会发现到处都是unwrap,这代码看着就很丑。
类似的还有一个到处都是的pub。如果你不做好抽象,就只能把方法一个个的pub出来。
我初学rust的时候觉得这各设计奇蠢无比,我当时还想整一套宏让它能够自动pub。
后来我理解了,这种思路是迫使你在没有经过充分思考的情况下,只能写出很丑的代码,
只有完善的代码才会看起来简洁优雅。
本质上也是一种迫使你减少犯错可能的机制。
所以基本上rust的代码如果看起来就简洁漂亮,那这个代码大概率啥都考虑的很清楚了。
【 在 joygpwan 的大作中提到: 】
: 那就已经足够了,c++大部分的crash问题都是内存方面的问题导致了 ,逻辑上的bug确实想不到编译器还可以做什么来避免bug
--
修改:lvsoft FROM 114.222.168.*
FROM 114.222.168.*
java倒也不是因为简单。虽然我说java 民工上三个月培训班也能开工,但并不是说java很low,恰恰相反我是觉得java这门语言风格上有点太学院派了。
我很讨厌java,也基本不写java。需要和javaer合作的场合我写scala(虽然scala也是一门太学院派的语言)。
但偶尔写一下还是很放松的。
我觉得java写起来的特点就是心智负担特别低,因为怎么写都跟裹脚布一样又臭又长,所以到后面我也就懒得去考虑怎么写的漂亮了。
就跟进厂打螺丝会把人干废掉一样,写java也有一样的魔力。
比如有次有个算法如果换成scala我会考虑如何用iterator来写,把它组织的functional一点。
java里我想都不想直接用我最鄙视的n重循环搞定...
java的问题我认为根JavaScript是很像的。这两都是一门设计的残破的语言,但因为某些特性导致很多人在用。然后大家发明了各种东西去弥补它语言设计上的残废。
【 在 xxbbiinn77 的大作中提到: 】
: 好吧,原来是因为java...我到目前还没有接触过java编程,java编程真的这个简单?。。。
--
修改:lvsoft FROM 114.222.168.*
FROM 114.222.168.*
评价c++?我一般都是直接说我不懂c++的...
【 在 xxbbiinn77 的大作中提到: 】
: 你如何评价c++?c++比java好不好?
--
FROM 223.104.4.*
Python我可以点评下。go我用的很少就不点评了。
我是2002年入坑Python的,从那个时候开始我一直是Python+c的方法做所有。小到嵌入式,大到分布式,包括web前端和后端,总之我基本上在绝大部分的领域都是这套方法。基本上水木应该没有多少人在Python领域比我探索的更广。
Python是一门设计理念上有突出风格,优点和缺点都很鲜明的语言。它用来做快速原型开发是最能扬长避短的用法,用来做高性能高可靠性开发也是可以的,只是越追求后者,Python的优势就越小,到后面优势会完全消失,趋向于和其他语言没啥差别。但Python的劣势只能缓解,无法根本解决的。所以大型严肃项目用Python不是不可以,但没啥太大的收益。
我一般每6年会更换自己的常用语言,我在Python+c上面已经停留了太久了,始终没找到更好的方法。但目前来说,我觉得rust能比较好的cover这个组合,最多rust+Python应该也够了
【 在 reflector 的大作中提到: 】
: 能评价一下python和go吗?
: 另外,您惯用python是个人爱好还是工作?我有一个热爱python的同事因为python的随意性已经开始要放弃在项目中使用python,转而用go了。
:
--
FROM 223.104.4.*
一般不愿意脱离技术,一直在一线干的人,有点追求的到了这个年龄都会往这个方向走,比如我也不例外。
但很重要的一点,还要评价他的知识是否还停留在古旧时期。比如他说他会做单片机,那现在最新的mcu他熟不熟,别2024年了还在搞51 avr...
总之,知识的广度和深度,以及新鲜程度这3个维度都是要看的,都过关才能算专家,否则更大的可能只是个混日子的罢了。毕竟年龄的增长是不需要付出任何代价,自然而然的事情。
比如我10年前面过一个90年的清华老大学生,他的问题就是在外企呆废了,知识没有更新。我当时看了他的背景,履历,还有现在的能力,还是不免一阵唏嘘的。
【 在 callmebbser 的大作中提到: 】
: 今天翻邮箱,发现一封标注为“陌生”的招聘网站发来的求职简历,接收时间是20天前
: 。
: 可能是公司HR把我的邮箱给填到这个招聘网站,网站自动推送或者公司HR转递过来了。
: ...................
--
修改:lvsoft FROM 114.222.168.*
FROM 114.222.168.*
这不是啥值得赞扬的事情,说明你这个2个多亿的产品根本就不是充分竞争市场,到现在都不需要迭代。
而且51这么简单的东西有啥接不了手的,一共就111条汇编,stm32下光一个timer的各种用法细节就不比这简单了。没人接手说明没人愿意继续搞这种没啥前途的技术而已。
我也认识一个msp430老手,丫入门就是msp430,算算时间到现在快30年了。别说汇编了,msp430的寄存器他都不用查直接就能背,有啥意义嘛。
这种行为和日本人还在用软盘没啥本质区别。
新项目用stm32写c程序也只是常规水平,比如我现在嵌入式都用rust写,async满天飞,至于stm32跑还是rp2040跑,都可以无所谓。一个rust直接就干了rtos的事,这才叫先进语言带来的红利。
【 在 callmebbser 的大作中提到: 】
: 我司这两年卖了2个多亿的产品,就是用的51单片机,几块电路板的汇编代码都是一个7
: 0后大叔自己一人搞定的。
: 90后、00后的新人,都接不了手,只会在新项目里用STM32,写C程序。
: ...................
--
FROM 114.222.168.*