说真的我折腾过好几门语言Go简洁是简洁,但少了点较劲的快感;那些保姆型语言用着爽,又总觉得没真上手。对了
最后还是C最对味。
就一点:它不哄你。内存自己管,越界自己背锅,编译过了跑起来崩也是你自己的事。一开始嫌它烦,后来发现这才叫练本事。6
指针刚看跟天书似的,熟了真上头。写C像跟机器摊牌,你忽悠不了它,它也骗不了你。平时图快用别的,论写的时候脑子最清醒,还是C。
说真的我折腾过好几门语言Go简洁是简洁,但少了点较劲的快感;那些保姆型语言用着爽,又总觉得没真上手。对了
最后还是C最对味。
就一点:它不哄你。内存自己管,越界自己背锅,编译过了跑起来崩也是你自己的事。一开始嫌它烦,后来发现这才叫练本事。6
指针刚看跟天书似的,熟了真上头。写C像跟机器摊牌,你忽悠不了它,它也骗不了你。平时图快用别的,论写的时候脑子最清醒,还是C。
被你那句"你忽悠不了它它也骗不了你"戳到了。我那会儿瞎写指针,越界崩完才懂什么叫自己背锅,比那些报错还哄着你的语言带劲多了。
跟机器摊牌这事真逗,十次有九次是我被它摊了( ´_ゝ`)哈哈
你那句"它也骗不了你"一下子让我觉得特别实在。现在好多事把人惯懒了,反而怀念这种不糊弄、得自己扛着的感觉。能找到一门写的时候让脑子最清醒的语言,也是一种福气呀~
指针那阵子我也被劝退过 熬过去回头看别的语言跟开挂似的
指针刚看跟天书似的这我太有共鸣了 当年也是硬啃下来的 后来那种脑子突然被洗清楚的clarity真的上头 它不哄你这点最戳我 现在天天图省事用现成的 反而很少再有跟啥正面刚完的爽感了 哈哈有点想念被C教做人的日子
当初对着指针的 * 和 & 发呆了好几个晚上,突然某天通了之后,那股上头劲儿跟你说的一模一样。
不过关于「它也骗不了你」这句我想补点别的:C 其实偶尔会闷声坑你。undefined behavior 那种,编过了、前几次跑得好好的,换台机器或者优化开高一点就崩,你连怪谁都不知道。所以它「不哄你」是真的,但「不骗你」未必——它只是不说话而已。
练本事这点我认同,写 C 时脑子那种清醒感别的语言真替代不了。享受这种较劲的快感就好。
你忽悠不了它它也骗不了你 这句真戳人。现在到处都在哄人 来点不哄人的反而踏实
你这句"跟机器摊牌"我得存一下,太形象了。哈哈哈我刚摸指针那阵子也是一头雾水,睡醒还是雾水,后来某天突然通了,那股爽感别的语言真给不了。
不过说真的,C的"不哄你"得补个注脚——它不光不哄你,还冷眼看着你往坑里跳。越界崩了它绝不会拍你肩膀说声慢点。这股练本事的狠劲我服,但我也能理解想被语言稍微搂一下的朋友,不是谁都天天想跟机器掰手腕。离谱
你这分工挺妙,把清醒留给C、把效率留给别的,属于浪漫和过日子分清楚了 ( ̄▽ ̄)
编译过不等于稳。UB下代码可能"正常"跑,结果却随编译器版本和优化级别变,这点它其实也会骗人。
“编译过了跑起来崩也是你自己的事”这句值得商榷。其实C的崩溃往往不是随机的,是确定性的未定义行为触发了硬件异常。
从某种角度看,C不哄人这个说法成立,但说它不提供反馈就不太准确了。Valgrind、AddressSanitizer这些工具本质上是在帮你把机器的底牌翻出来看。之前在日本写点底层东西的时候,全靠ASan定位野指针,效率比纯靠肉眼debug高出一个数量级。
不过你说的“跟机器摊牌”我挺认同。用高级语言久了容易对抽象层产生依赖,偶尔回C里手动malloc/free一下,确实能让人清醒点。你平时用什么工具链?
当年第一次遇到segmentation fault,对着屏幕发了十分钟呆,满脑子都是"我哪写错了"。后来学会拿gdb一步步跟,那种从一头雾水到突然开窍的感觉,确实不是用Python调个库能给的。