此帖子的内容无法显示。
此错误由无效的帖子内容操作引起。
此帖子的内容无法显示。
此错误由无效的帖子内容操作引起。
此帖子的内容无法显示。
此错误由无效的帖子内容操作引起。
此帖子的内容无法显示。
此错误由无效的帖子内容操作引起。
此帖子的内容无法显示。
此错误由无效的帖子内容操作引起。
此帖子的内容无法显示。
此错误由无效的帖子内容操作引起。
此帖子的内容无法显示。
此错误由无效的帖子内容操作引起。
每天在终端里cd来cd去的,老实敲全路径简直是自虐。一天切十几个项目目录,每次都得从历史命令里翻出那一长串~/projects/foo-server拼上去,手指在home行上跑马拉松,谁受得了。
zoxide这东西救了我:它不记你打过的命令,只记你去得最勤的目录,按访问频率模糊匹配。太!常去foo-server,下次直接 z foo 就过去了,路径都不用打完。再挂个fzf,z foo 一回车精准命中,比翻命令历史爽太多。
好家伙
最香的是零配置、跨shell通用,bash/zsh/fish哪样都行,一行装好直接干活。我这种懒人用了一周就彻底叛变,现在回头敲cd都觉得手生。还在cd硬扛的兄弟姐妹,真心建议换一下,戒断反应基本为零。
年轻时候也追过花里胡哨得,后来越写越往底下钻,最后就停在能摸到硬件的那门上了。写驱动的时候,一行代码基本对应一个寄存器或者一段内存地址,make 完烧进去,板子上的灯按你写的节奏闪,像在跟芯片面对面 chat,它不跟你绕弯子。
高层语言把世界抽象得漂漂亮亮,这门却逼着我把每个算法都落到具体的时钟周期和总线时序上。内存到底在哪、谁在动它,全得自己心里有数。等你一帧一帧抠过,再看"计算机"三个字,分量就不一样了。
现在 AI 和高级语言满天飞,很多人写东西压根不知道底下发生了啥。会一门贴底层的反而不慌,黑盒再大,掀开盖子你认得里面的零件。这种踏实感,别的语言真给不了。
说真的,这些年语言换了一茬又一茬,最后发现还是C++最让我上头。笑死很多人骂它臃肿、骂它历史包袱重,这些我都认,但骂完之后该写还得写。
为什么?因为别的语言把硬件藏起来不让你碰,C++是把方向盘直接塞你手里。内存什么时候分配、对象摆哪儿、cache line怎么对齐,全是你说了算。没有GC在你背后神出鬼没,延迟毛刺的原因你自己心里有数。这种掌控感,用过就回不去了。
模板元编程更是离谱,把计算挪到编译期跑,运行时代价是零。别人用脚本生成代码,我们直接在类型系统里写程序,编译器替你干活还不要加班费。
当然代价也摆在那儿:规则多到劝退新人,一个未定义行为能坑你一晚上。绝了但我现在看开了,那些繁琐的约束其实是在给大型工程划边界——十万行之后你就知道,没有这些边界,项目早就烂成一坨了。
可以可以驯服不了的叫缺陷,驯服了的叫艺术。
看了楼上那位跟指针相爱相杀的帖,实在太有共鸣了。当年写C,半夜被段错误叫醒是家常便饭,gdb跟到天亮都未必找得着是哪个指针飘了。后来碰上Rust,怎么说呢,像是换了个比我妈还操心的编译器替我把关。
真的假的
它那个所有权加借用检查,说白了就是在编译期把悬垂指针、数据竞争这些坑提前堵死。你代码里但凡有个变量的生命周期说不清,或者两个线程要同时摸同一块内存还没协调好,编译器直接红字怼脸上,压根不让你编译过。段错误这种东西从根上就没机会冒头,对写系统级代码的人来说真算解脱。
最妙的是它没上GC却把内存安全保住了,运行时开销小到可以忽略,该造轮子造轮子,性能一点不含糊。cargo这套工具链顺手得离谱,报错信息还特别说人话,经常是被编译器骂着骂着,自己反而懂了。好吧好吧
上手头两个月确实被borrow checker折磨得想砸键盘,熬过去再回头看C,只觉得还是写Rust省心,怕被C党围攻先溜了(笑)
看版里最近聊语言聊得欢,Rust Go Lua Lisp 轮着上,挺热闹。不过我倒想插一句,工具趁手其实比纠结哪门语言更影响每天心情——尤其搜代码,谁没被 grep 那一长串参数折磨过。
rg(ripgrep)真想安利给各位。它开箱就递归整个目录,.git 和二进制文件自动跳过,不用你再 -r 再 --include 地拼半天文法。底层是 Rust 写的,搜个百万行仓库基本秒回,那种敲完回车结果已经在眼前的爽感( ̄▽ ̄),用过就回不去。正则和 Unicode 也处理得地道,中文路径、注释里夹的中文,它一点不犯晕。
说真的,装一个不费事,brew 或者包管理器一行命令的事。你们平时搜代码都靠啥,还是硬刚 grep 呢?
聊点私货,说说我最爱的语言。不是性能怪兽C++,也不是花活最多的Python,是Lua。这玩意儿完整解释器才50KB出头,塞进任何程序连个水花都溅不起来,但配上那套极简的C API,你几乎能把它无缝缝进任何东西里——做配置、写脚本、热更新,样样顺手。
最妙的还是它的"穷"。语法就那么几种结构,数组、字典、对象、类,全用一张table搞定,连self都得你自己绑。新手第一眼嫌寒酸,用久了才回过味:约束这么死,反而逼你把事情想清楚,写出来的东西干净得不像话。
别看小,扛大场面的本事一点不虚。emmm游戏圈靠它做热更新续了多少项目的命,Redis的扩展脚本也是它,Nginx、Wireshark背后都蹲着这么个不起眼的小东西。小语言不一定弱,能把活干漂亮才是真本事。
我大概用了快十年,越用越觉得,自由不自由,跟体积真没什么关系。
此帖子的内容无法显示。
此错误由无效的帖子内容操作引起。
warning