兰 亭 墨 苑
期货 · 量化 · AI · 终身学习
首页
归档
编辑文章
标题 *
URL 别名 *
内容 *
(支持 Markdown 格式)
写代码这些年,C++、Python、Swift、Kotlin、JavaScript 我都深度用过,也踩过不少坑。其实选什么语言很少能自己决定,跟项目背景,语言生态,产品目标密切相关。 但是真让我选一个,又很难选出来,因为我知道一门语言为什么要被设计成现在这样,它当年解决的是什么问题,又为此付出了什么代价,很难说谁更好。硬要选的话: 真要丢到荒岛只留一门:我留 C 不是因为 C 顺手。C 的问题谁写谁知道:没有命名空间,内存要自己管,类型系统很薄,宏一旦放飞自我能把代码写成谜题。 但 C 有一种罕见的直白感。它几乎不替你“装饰”世界:指针就是地址,结构体就是一段连续内存,函数调用就是压栈和跳转。你写下的代码,基本就对应着机器在干什么。它不帮你兜底,也不在背后搞一堆运行时的隐性行为,你要什么就写什么,写错了也别指望有人替你擦屁股。 这种气质跟它的出身一致:Dennis Ritchie 设计 C,本来就是为了把 Unix 从汇编里拽出来,用一种更可读、更可维护的方式重写操作系统。目标很明确,所以它的审美也很明确:够用、可靠、别多事。 到今天,Linux 内核依旧是 C,嵌入式大面积还是 C,很多现代语言的运行时底层也都绕不开 C。原因不复杂:在“离硬件最近”的那层,C 建立的信任太扎实了。 日常写得最舒服的:Python 确实上瘾 Python 的“舒服”,不是运气,是设计主张。它把“可读性”放在最前面,语法尽量像自然语言,缩进直接变成语义规则,同一件事尽量给出一条清晰的写法。 # 找出列表里所有偶数的平方 result = [x**2 for x in numbers if x % 2 == 0] 这种代码写完就像说完一句话,不需要额外解释。 当然,Python 慢也是真的,但它选了一条非常现实的路:让开发者少花时间,让机器多花时间。对很多业务和研发场景来说,人力成本远比 CPU 成本贵得多。 后来 AI 时代把 Python 推上高位,也不是纯靠风口。Python的优势在于“胶水能力”:底层用 C/C++ 跑高性能计算,上层用 Python 写调度、编排、实验、迭代。NumPy、SciPy、TensorFlow、PyTorch 这条生态链能长出来,本质是社区在长期工程实践里自然演化出的分层协作方式。 C++ 的感觉:跟天才同事共事,但他脾气很差 C++ 是我投入时间最多、骂得也最多的语言。 它最初的愿望其实不复杂:在 C 的效率基础上加上面向对象。但四十年标准演进下来,C++ 已经不是“一门语言”,更像几套范式叠在一起的集合体:模板、泛型、元编程、移动语义、概念、协程……每隔几年又多一批“必须知道”的东西。学到后面,你会明显感觉自己不是在掌握语法,而是在适应一套持续进化的生态。 不过也得承认,C++ 在“性能 + 抽象”这件事上走得最远。所谓零成本抽象,很多时候不是宣传话术,编译器确实能把抽象摊平,落回接近手写 C 的效率。 代价也很硬:编译慢,错误信息长到需要翻页,学习曲线陡得让大部分人望而却步。说“C++ 永远学不完”,更多是在描述一种真实工作状态。 Rust 让我重新审视“好设计”到底是什么 如果你写过足够多的 C++,你会非常理解 Rust 为什么会出现。 Rust 的所有权和生命周期,一开始确实让人暴躁:编译器像个极其严格的 reviewer,你只要涉及引用、别名、内存释放,它就要追着你问清楚边界和责任。很多语言把这类问题留给运行时,或者干脆留给线上事故;Rust 选择在编译期直接堵住。 写久了会发现,这种“麻烦”其实是在把你从灾难里提前拽出来:编译器逼你想清楚的,往往就是别的语言里你假装没看到、最后在凌晨被 crash 叫醒的那一类问题。 Rust押的赌注很激进:不靠 GC,不靠额外运行时成本,尽量用类型系统和规则把安全问题前置解决。这不是小修小补,更接近一次系统编程领域的方向调整。 语言从来不是凭空发明出来的,它们是历史包袱、工程现实、硬件条件、社区文化共同挤出来的结果。你看懂了这条演进链,就会发现“站队语言”这件事变得很无聊:每门语言都有它的战场、边界和代价。 语言会过时,但取舍的能力不会。 顺带推荐一本书 最近我在读《代码的文明:编程语言如何改变世界》。作者是腾讯的一线工程师,写过、用过很多语言,书里不是那种罗列特性清单的百科体,而是讲清楚:每门语言当时面对什么约束、为什么这么设计、哪些选择后来影响了谁。 它也会把语言写得更“像人”一点:C 的沉默、Python 的随和、C++ 的聪明但话多……这种写法不油腻,反而能帮你记住背后的气质和代价。更难得的是它的点评不端着,很多结论一看就知道是做过大项目的人才敢写的。 如果你也觉得“理解设计决策”比“背语法”更值钱,可以翻翻看: 京东:https://item.jd.com/10214635204430.html 天猫:https://detail.tmall.com/item.htm?id=1035582366975 抖音商城:https://haohuo.jinritemai.com/ecommerce/trade/detail/index.html?id=3810536004180378057
配图 (可多选)
选择新图片文件或拖拽到此处
标签
更新文章
删除文章