Andy Stewart Profile picture
Apr 23 22 tweets 1 min read Twitter logo Read on Twitter
看来大家对编程语言比较感兴趣, 我分享一些编程语言的感悟, 因为Twitter字数限制, 用语难免不严谨。 ;)

1. C/C++: 我的入门语言,充满原生力量,其实指针、内存分配和释放, 用的熟练就好了, 没啥难度。 比较麻烦的是, 如果项目不是自己设计的, 逻辑比较复杂, 内存安全问题没法根治

评论继续
2. Java: 我第一份工作的语言(J2ME), 严谨, 工业质量高,天生为企业程序设计的,特别是Eclipse开创了IDE智能编程先河。 但是不自由, 特别是Linux下探索一些技术原理的时候, 什么都要先定义 Class 再创建 Object 再设计 setter/gettter, 还要考虑模式设计的时候, 不符合黑客道自由自在的精神
3. Perl: 学习Linux和正则表达式的时候接触过一段时间, 那时候羡慕复杂的正则魔法(现在老年人只想要清晰代码), 整个语言都充满了黑客道的精神, 随心所欲, 但是缺点很明显, 很多年后看到面条一般的代码, 会说这是那个傻逼写的代码? 最后发现傻逼是自己, 哈哈哈哈
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. OCamel: 函数式编程, 但是没有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写代码我受不了啊, 可惜了。 传说Swift的语言作者也是 Rust 作者, 所以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 , 世界是混沌的, 语言只是工具, 我们不能拿着锤子到处去攻击别人炫耀自己, 那样其实很傻

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Andy Stewart

Andy Stewart Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @manateelazycat

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

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

继续请看评论
2. Rust社区的人似乎不懂得市场经济和成本概念, 一个好的软件, 不仅仅只是内存安全和绝对性能, 代码可读性, 场景适合性, 认知深刻和持续维护的软件对用户才有价值, 重写完一个软件, 证明 rust 比别的语言快和自己厉害, 马上就弃坑的软件没有价值
3. Rust社区推崇内存的细腻控制, 有时候就和C++的开发人员一样讨厌, 把指针或者生命周期控制能力当作比较的炫耀资本, Rust更像是一种证明自己比别人厉害的工具。

我不是说Rust不好, 而是不喜欢这种认为Rust就是天下第一的思想, 什么都要用Rust重写的想法。
Read 4 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(