极资讯

  • 关于我们
  • 全栈AI助手
极资讯
这里有好的科技资讯
  1. 首页
  2. 开发
  3. 正文

前Deepin CTO 王勇评价各种编程语言

2023 年 4 月 23 日 4384点热度 0人点赞 0条评论

他本人谈论了一些关于各种编程语言的感悟,其中包括 Golang、Rust、Java、Python,甚至提到了比较小众的 Vala。下面是对他发布内容的整理。

作为曾经的 Haskeller, 说一下我对 Rust 的感受,语言很有力量, 但是不感冒这个语言的原因:

1. 世界上有很多业务性的逻辑是需要创造力和编程心流体验的, 而 Rust 编译器总是打断你方向性的思考, 强制让你关注设计阶段不重要的细节, 丧失了很多编程乐趣。

2. Rust 社区的人似乎不懂得市场经济和成本概念, 一个好的软件, 不仅仅只是内存安全和绝对性能, 代码可读性, 场景适合性, 认知深刻和持续维护的软件对用户才有价值, 重写完一个软件, 证明 rust 比别的语言快和自己厉害, 马上就弃坑的软件没有价值。

3. Rust 社区推崇内存的细腻控制, 有时候就和 C++ 的开发人员一样讨厌, 把指针或者生命周期控制能力当作比较的炫耀资本, Rust 更像是一种证明自己比别人厉害的工具。 我不是说 Rust 不好, 而是不喜欢这种认为 Rust 就是天下第一的思想, 什么都要用 Rust 重写的想法。

4. Rust 的强制内存管理, 在编写复杂逻辑的时候, 编译器打断太生硬了, 导致人无法安静的思考最重要的架构设计。 Rust 对于底层库或者实时性这些不需要 GC 或者性能苛刻的场景很适合,为了内存安全可以忍受编译器严格。 但是现实大部分场景不是都是内存安全优先的, 而是创造力和逻辑清晰优先的。

 

Twitter 上大家都比较喜欢我聊一下编程语言, 下面是我 Twitter 观点摘抄:

  1. C/C++: 我的入门语言,充满原生力量,其实指针、内存分配和释放, 用的熟练就好了, 没啥难度。 比较麻烦的是, 如果项目不是自己设计的, 逻辑比较复杂, 内存安全问题没法根治
  2. Java: 我第一份工作的语言(J2ME), 严谨, 工业质量高,天生为企业程序设计的,特别是 Eclipse 开创了 IDE 智能编程先河。 但是不自由, 特别是 Linux 下探索一些技术原理的时候, 什么都要先定义 Class 再创建 Object 再设计 setter/gettter, 还要考虑模式设计的时候, 不符合黑客道自由自在的精神
  3. Haskell: 当年唐凤单刀编写 Perl6 编译器, 那时候对一个人的生产力能达到多么恐怖的实力感到震惊(第一个是 John Carmark, 我的偶像), 客观的说 Haskell 非常强, 类型推导、代码优美、高性能递归、无锁编程等极大开阔我的视野, 可惜的是这个语言的作者大部分都是科学家,生态一般, 很难找到工作
  4. Elisp: 我写了 18 年 Elisp 代码, 刷了 400+Emacs 插件, 用中国人的话说就是, 无招胜有招, 什么模式设计, 什么数据结构, 都不存在的。代码就是数据, 数据就是代码, Elisp 最让我爽的是,你的思想就像水一样流动到键盘, 想到那写到哪, 加上 Emacs 实时热替换, 这才是黑客编程的心流感觉, 太爽了
  5. Python: 创建 deepin 的前期写了很多 Python 代码,只用看一本书《Python 核心编程》就可以实现入门到精通。Python 告诉我世间所有数据都可以用 string, bool, list, tuple 来组合。它从来不像其他编程语言那样宣扬宗教理念和小技巧, 核心东西就那么多, 你永远可以信赖它,完美的原型设计语言,简单实用
  6. Ruby: 喜欢看 Rails 作者 David 的博客,人生就应该像 David 那么精彩, 而不是躲在键盘后面攻击他人炫耀自己。Ruby 语言灵活充满人情味,能够激发“铸剑”的乐趣,但是随着年龄增长,曾经满世界背包找的 Ruby 小技巧最后都无法对抗记忆衰退, 尊敬 Ruby 的小情调,但是现在我更喜欢记忆负担小的 Python
  7. Vala: 很多人没有听过的语言,Deepin Terminal 第一版的语言, 一个 C 编译器的语法糖, C#的手感, C 的编译和运行速度, 第一版 Deepin Terminal 可以做到 50ms 内启动完毕, 通过 GIR 自动对接 GObject 库, 不用手动绑定, Deepin Terminal 几千行代码量, Github 居然统计我是国内写 Vala 代码最多的人(囧)
  8. Golang: 公司主力语言, Python 手感, 性能足够好, 适当的 GC 比较适合业务逻辑编写, 不会像 Ruby 那样内存爆炸重写, 性能也比 Python 快太多了, 可惜错误处理真的是丑啊, 大公司的好处是背书和资源厉害, 坏处是一些小细节就不听社区的反馈,而语法完美的语言生态发展缺钱, 也许这就月有阴晴圆缺
  9. OCaml: 函数式编程, 但是没有 Haskell 那么‘纯粹’, 也提供 OOP 的东西, 自己研究一下玩一下还挺好玩, 但是我想分享的是, 函数式编程在列表处理的时候非常简洁好看,但是我们不能拿着函数式语言的锤子到处去找函数式场景的钉子, 好看的衣服穿一穿可以, 但是有时候也要下田处理一些脏活
  10. JavaScript: 可能是世界上拥有程序员数量最多的语言, 客观的说, 这个语言没啥规范或者规范一直在变, 变的都是语法这种无聊的事情。 至从 V8 和 npm 出来以后,你别说,众多程序员鄙视的语言,好脏好乱好热闹的生态就比好山好水好无聊的世界好很多,有时候感叹,代码优雅比不上人多力量大啊
  11. CoffeeScript: 2013 年的时候,我们一帮底层 C++程序员魔改了浏览器引擎, 用 CoffeeScript 写 Linux 桌面前端,语法优美, F12 调试界面 CSS, 好爽啊。 但是后面微软大佬们发力做了 TypeScript 以后, CoffeeScript 这种语言就淡出人们的视野了
  12. TypeScript: 如果你羡慕 JavaScript 轮子生态, 有生产力, 但是又鄙视 JavaScript 的混乱语法和标准, 必须尝试 TypeScript, 基本上是大前端的标配, 像我这种野生程序员, 不用太偏向语言派系之间的纯洁理念, 架构好才是真的好, 大部分代码都会被重构删除的,因为你的认知在不断提升
  13. Lua: 用过一年 Mac, 针对 Hammerspoon 写了一些配置, Lua 真的是快啊, 语言超级简洁, 机器码指令很少,效率很高,性能贼快贼快啊, 为啥 Emacs 比不上 Neovim, 就是 Lua 比 Elisp 转速高太多, 但是这个语言不支持 Native Thread, 所以通用型天赋受限制, 再强 IPC 数据传输都比不上线程访问内存速度快呀
  14. Swift: 梦中语言, 兼顾简洁、性能和优美的语言, 设计的非常好, 但是对于我这种 Emacs 程序员, 写代码一定是键盘流, 但是 Mac 一定要用它那个图形 IDE 写代码我受不了啊, 可惜了。 传说 Rust 作者也参与 Swift 的开发, 所以 Rust 的一些细节审美还是可以的
  15. Rust: 这门语言非常好,综合实力很强,我每天都感谢上苍 rg/fd 这两个工具节省我太多时间了, Rust 性能和无 GC 的设计真的没的说, 最适合命令行工具、底层库, 减少世界多少内存安全漏洞呀。 我不喜欢它编译器话太多, 强迫我关心内存安全, 因为原型设计阶段根本不用关心内存安全, 没心情就不想写
  16. Common Lisp: Emacs 粉丝,研究了一段时间, 还是 Lisp 那味, 到处都是括号和自由的味道, 而且性能和库生态要比 Elisp 好太多了。 但是日常工作和学习都没有实践的机会, 还是回到了 Elisp, 虽然精通 Elisp 没人要, 但是最起码 Elisp 下班还可以写点 Emacs 插件提升我工作效率, Common Lisp 不知道能干啥
  17. Shell: 在构建 deepin 的时候用的多, 虽然没有 Python 优美, 但是是最佳胶水语言呀, 为啥? 因为你构建操作系统的时候, 有可能 Python 解释器和很多库还没有移植到新的芯片上, 这时候只能用 Shell 脚本。客观的说, 我 Shell 用的不是很好, 佩服那些 Shell 代码一屏一屏写, 一次搞对的系统架构大牛们
  18. QML: 写 Qt 应用的时候撸过一段时间, 结构化写界面比 Qt Layout/Gtk Box 快多了。 但是不看好, 因为真正界面结构编程最好的是 JavaScript/CSS, 同时 QML 底层是 OpenGL 强制渲染, 如果硬件不是自己做(比如嵌入式), QML 的性能很差, 因为 Linux 的显卡驱动质量太差, 不, 太差是侮辱‘太差’这个词
  19. CSS: 其实不算一门语言, 但是作为前端最重要的技术, 我很多年都坚持手写 CSS。 很多底层开发的人员鄙视做前端界面的。但是客观的说, CSS 精通真的非常难, 代码写好, 用户体验要好, 控件性能还要好, 没有艺术和计算机交叉能力, 还真的做不好这件事情
  20. Scheme: 和 Common Lisp 一样, 是比 Elisp 更完美的 Lisp 语言, 核心非常小巧, 设计很好, 最佳的 Lisp 教学语言。 可惜的是, 比 Common Lisp 以及 Elisp 还要小众, 建议大家从学习的目的去学习 Lisp 思想, 其他就算了, 工作和爱好都用不上它

最后

我想分享的是,为什么要学习很多语言?

因为我们可以学习各种语言的设计思想和看问题角度,我们会因为“Wow, 还可以这样” 来提升我们的认知,这才是价值。

而不是我学习了世界最好的语言, 你们都是 xxx , 世界是混沌的, 语言只是工具, 我们不能拿着锤子到处去攻击别人炫耀自己, 那样其实很傻。

 

 

https://manateelazycat.github.io/think/2023/04/23/programming-languages.html

Related Posts:

  • 编写完10万行代码,我发了篇长文吐槽Rust
  • 从另一个面看待 Rust 和 Go
  • AI 开发有了新编程语言, 比 Python 快 35000 倍
  • 2019年你应该知道的编程语言、框架和工具
  • Stack Overflow 2022 开发者调查报告现出炉
  • 在基础软件领域,我们应该如何创新
  • 哪种编程语言或者编程思想好?
标签: 编程 编程语言
最后更新:2023 年 4 月 23 日

admin

这个人很懒,什么都没留下

点赞
⇦新技术的最大风险
哪种编程语言或者编程思想好? ⇨

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

最新 热点 随机
最新 热点 随机
阿里云服务器“镜像”怎么选择?看这一篇文章就够了! 积极贯彻落实《公司法》 推动存量公司依法调整注册资本 更新版!一些有趣或实用的生成器! 整理一波写作必备网站,供大家参考 远离抑郁症的方法之一:增强多巴胺、内啡肽、血清素、催产素的神经质地分泌 网络社区这种模式为什么注定会失败 靠着AI自动生成视频撸自媒体收益,赚了包辣条~ 有钱人是如何面对美色诱惑的 失业的中年人在北京过得真的有多心酸 最年轻的“十八罗汉”,阿里巴巴的新CEO-吴泳铭
每个用户都必须知道的Web 3.0的关键特性 神策数据核心技术王集鹄过世:去年查出恶性肿瘤 生前与病魔斗争 Web3.0,不是资本的玩物 字节跳动开源 Go HTTP 框架 Hertz 设计实践 报告:2020年至2025年全球约8500万工作岗位将被机器替代 男朋友是程序员 抖音胖脸镜镜子是男的还是女,胖脸镜镜子个人资料简介,胖脸镜镜子机械舞是谁 什么是PHP框架?PHP框架与CMS的区别 学习外语为什么需要那么长时间? 如何增加自己的抖音短视频播放量?
归档
  • 2024 年 10 月
  • 2024 年 2 月
  • 2024 年 1 月
  • 2023 年 12 月
  • 2023 年 11 月
  • 2023 年 10 月
  • 2023 年 9 月
  • 2023 年 8 月
  • 2023 年 7 月
  • 2023 年 6 月
  • 2023 年 5 月
  • 2023 年 4 月
  • 2023 年 3 月
  • 2023 年 2 月
  • 2022 年 12 月
  • 2022 年 11 月
  • 2022 年 10 月
  • 2022 年 9 月
  • 2022 年 8 月
  • 2022 年 7 月
  • 2022 年 6 月
  • 2019 年 8 月
  • 2019 年 7 月
  • 2019 年 6 月
分类
  • AI
  • IT
  • 云计算
  • 互联网
  • 创业
  • 开发
  • 开源资讯
  • 未分类
  • 概念
  • 科技
  • 移动互联网
  • 自媒体
  • 趋势
标签聚合
抖音 golang 小红书 Linux 软件 程序员 AI 编程语言 iphone 直播 开发 AI绘画 短视频 电商 编程 元宇宙 AIGC 人工智能 ChatGPT web3.0

COPYRIGHT © 2022-2025 极资讯. ALL RIGHTS RESERVED.

京ICP备18039103号-2