Elixir Meetup 相关不相关的一些感触

状态不佳, 睡到快中午, 出去参加了 Meetup, 回来吃饱喝足直接就睡了,
然后爬起来的想刷点文章之类的. 所以写在这里也就一些散乱的想法.
关于 Meetup 的日程, 可以看活动页面, 包括本次主题等等:
https://www.meetup.com/Elixir...

本次活动参加的有 16 人, 一个人是过半场才来的, 小房间坐得算满了,
活动一般是两个月一次, 形式有点像 Ruby Tuesday,
往届我去过两次, 貌似现在是第五次聚合, 之前的人数也是十几个样子, 除了下雨,
所以这次人算多的了. 我认熟的人三四个吧, 人员也不是那么固定,
这次还加了斗鱼上的直播, 貌似效果聊胜于无, 以后关注的人多了再想想办法.

虽然我是个前端, 但作为 FP 程序员我反而在这种聚会觉得更加亲近.
内容上, jiang 分享的内容涉及了很多网络协议, 很有意思但是我消化不好,
然后第二个分享聊了聊 Elixir 爬网页的事情, 语法方面吧,
第三个是 Strikingly 的同学侃了很多使用 Rust 和 Elixir 的经验,
都是后端的内容, 挺受教的, 但跟我的工作并不能搭上, 就是有意思.
服务器编程用到的编程技能更加扎实一些, 对培养理论体系挺有用的.

中间讲到了不少 Rust, 对我来说挺新奇的, 毕竟没搅和到里面去过,
貌似 Rust 现在的稳定性已经上来不少, 工具库也有一些了,
至少听着比 Elixir 还有 Rust 能胜任某些高性能高 IO 的服务场景,
加上 Rust 从 Haskell 山寨过来的金光闪闪的类型系统, 编译器贼厉害,
据说我厂还有个写 Rust 的同学 - - 我厂居然用到 Rust 了?
不过 Rust 毕竟门槛太高, 我完全是围观的态度, 智商不够啰.

对了, 我还去微博吐槽 JavaScript 这个事情了, 没看的先围观一个吧:
http://weibo.com/1651843872/E...
我渐渐是感觉作为 js 程序员, 在某些观念上真是太扭曲了,
举个例子, callback, generator, async 等等概念, 折腾来折腾去,
如果会的编程语言多, 就知道这些模型早就已经有很多语言的实践了,
别人可以深入到汇编, 努力挖掘出 CPU 的性能, 进而改进语言的能力,
而 js, 往往面对的就是捉摸不定的 JIT 引擎, 以及碎片化的运行环境.
很大程度上制约了 js 程序员对于编程语言本身运行的原理的理解.

听 42(@doomsplayer) 讲的时候, 我就在想, 作为后端程序员恐怕掌握的语言要多一些,
首先一些观念是可以达成共识的, 比如语法是小问题, 只是个人经验和偏好,
然后具体到服务器面临的性能问题或者业务问题, 往往会需要很多解法,
而不同的解法往往依赖不同的编程语言才能达到最优, 由于语言设计的限制,
所以最终为了确定的目的而去使用多种语言, 其实是比较合理的事情.
我在 FP 社区也见得不少了, 同时会 Haskell Clojure JavaScript Java 之类的,
当他们说编程语言仅仅是工具的时候, 他们很可能真的觉得就是工具.

作为 js 程序员, 或者说 ClojureScript 程序员, 我就没那么豁达了,
当我说编程语言是工具, 我只会一些编译到 js 的语言, 而且工作中我还是要写 js.
我相信那么多优秀的编程语言当中有很多优于 js 的特性, 大家是相信的,
比如来自 Haskell 的抽象代数类型, 高阶函数, 隔离复杂用等等观念,
来自 Lisp 的 Macro, 来自 Clojure 的 persistent data,
来自 Erlang 的 Actor 模型, 来自 Go 的 CSP 模型, 来自 Perl 的正则表达式,
远非 js 改进几个版本就能追上的. 我已经不得不正视这些问题了.

虽然说起来任性而且固执, 但我确实看不起 js, 而希望自己能深入到内部去,
比如说 WebAssembly, OCaml, 从目前看来, 由于大厂押注, 其实很有看头,
ReasonML 的好处是它从 OCaml 继承的类型系统, 毕竟 ADT 是 ML 发源的,
前端由于 js 是动态语言, 某些场景坑多得无语, 而 ADT 类型显然是很好的出路,
再说 wasm 这边, 实用的意义当然有限, 可是终于算是能把语言这道坎迈过去了..
抱着看热闹不嫌事大的心态, 我很希望并且很可能看到 wasm 掀起大浪,
那么多写 js 的同学真的有足够的觉悟跟写过很多后端的人同场玩语言么...

从 Ruby 聚会到现在的, 小型聚会的感觉挺好, 前端圈反而很少看到,
早先有次去淘宝蹭过朴灵的 Node 分享, 后来 Node 社区关注越来越少了,
而前端嘛, 一会是 React, 一会是 Vue, 一会又出现个什么新技术,
感觉这些都不如 FP 或者服务端开发有很多值得成体系挖的东西,
并不是说前端很简单, 而是前端技术当中分散的东西很多, 不像是后端语言那么有目的性,
不知道 5 月份的 Vue 大会是个什么光景, 听说还要相亲, 好神奇.
不过 Vue 社区用户已经多到可以没事吵吵架了, 跟小众语言毕竟不是一个量级的.
玩 Linux 的, 玩 FP 语言的, 多多少少有点自负的固执, 作为支撑.

去年也想过, 如果在线直播发展得好, 未来技术聚会的玩法可以有很多的,
特别是远程的参会者, 能通过文字稍微参与进来, 比看直播更有代入感,
而且视频靠直播也存档下来. 当然这个比较难, ReactConf 级别的会才好搞,
我这样只能敲敲键盘的人真是弱爆了, 能自己玩协议把直播从硬件搞起来才叫牛,
虽然在新闻里见多了语音识别啊, 在线聊天啊, 但是说到具体的生活呢,
我们当中有多少人靠着技术的本事造各种东西改善了自己生活呢?
久而久之学技术从最初的热情转变成了工作或者叫事业的而已的东西, 摊手.

我觉得最近我扯皮的功力见长, 我要扯到人生意义上去了, 从 Elixir 扯到人生意义...
过去半年我罕见地去了上海杭州以外的一些地方, 过了一些从前自己都不敢想的生活,
而且不得不认同自己从前那些失败的地方, 比如说怕生人, 比如说赌 JavaScript,
js 作者说 Bet on JavaScript, 但是你别忘了他当年就会很多其他的语言,
当他觉得 js 功能不够的时候, 分分钟实现一个出来你信不信, 总之他有那个能力,
我们这些有所企图却只会 js 的人, 就像想要飞却恐高的人, 我也有点恐高.
至于怎么样维护自己的人生价值... 免不了要惶惶不安的. js 肯定是不够的.

我觉得最近不小的收获是渐渐认识到的了如何能够改变自己, 曾经我以为做不到,
但是大脑的记忆总是不靠谱的, 一旦新的记忆堆积在工作区, 旧的记忆就会被掩埋,
旧的记忆不会消失, 会延续直到终结, 然而新的记忆会不断影响着人的判断,
可以说真是大脑功能的不合理之处, 但是却真实地留下了改变自己的余地,
我知道自己是畏首畏尾的人, 积弊已久难以根除, 但至少的这里有一扇后门.
立个 flag, 我要去刷 WebAssembly 和 ReasonML, 两个都不容易搞,
WebAssembly 这一波冲击应该可以逐步将 js 挤下舞台, 买好爆米花~

你可能感兴趣的:(编程语言,elixir)