Erlang/Elixir Elixir 会成为明日之星么?似乎是

chenge · 发布于 2016年11月29日 · 最后由 tony612 回复于 2017年1月06日 · 6192 次阅读
4215
本帖已被设为精华帖!

下面这个图来自演讲:ElixirConf 2015 - Keynote: Elixir Should Take Over the World by Jessica Kerr

她用了一个惊人的标题。演讲中以库恩的科学范式,引出了编程范式的跃进。除了Elixir外,还提到Elm。可惜我英文一般,不能完全听懂。

希望Elixir能把函数式编程带入主流开发,看明年能否进入前10名排行。

入门学习请参考:

学习 Elixir 有什么新思路

共收到 68 条回复
12874

作为一门函数式的语言,我觉得 Elixir 值得去学习的

24996

我三年前就说过Elixir在语法上比ERlang有一定进步,但不是绝对优势. 个人认为Elixir很鸡肋. Elixir的最大亮点是他对字符串的处理, 管道调用,宏什么的在Erlang中也能搞定.

7733

#3楼 @lilijreey 对有些人来说语法是很大的优势

29339

程序员觉得好不一定能流行,得老板觉得好才行。别的不说,有培训班培训Elixir吗?Elixir程序员辞职了老板能花低薪马上招一个补上吗?PHP那么丑陋那么混乱仍然生生不息,老板喜欢啊

4215

#5楼 @Trump 川普先生,您一带头,培训班就起来了。

130

我认为软件工程最大的挑战是:持续满足业务复杂度的同时,保持工程的可维护性 ,语言对这方面的作用也是最关键的。

以前我认为最合适的是 Ruby。但 Ruby 的性能确实限制了在很多场景的使用,有时候我不得不转用其他语言。 而 Elixir 出现后,不仅在语法上有改进(模式匹配、管道、宏),代码更加简洁明了,而且性能还很高,是个极好的选择。

不管是不是流行,只要好用,能解决问题,就会有价值。至于是不是需要和大众一样,就见仁见智了。推荐一篇文章:

“The best way to build a dev team: Go where the devs aren’t.”

https://medium.com/@cameronp/the-best-way-to-build-a-dev-team-go-where-the-devs-aren-t-d3f226cfe749

130

btw. 我们在生产环境用 Elixir,已经快半年了,开发过程很流畅(自己写了一些库),运行一直很稳定。我们在寻找有冒险精神的 Elixir 开发者. 😄

4215

#9楼 @qhwa 你们在哪个城市啊?可以远程么?

130

#10楼 @chenge 我们在北京和杭州。目前还不能远程。

4215

#11楼 @qhwa 我们可以接触一下,不过我还是初学。做过一段时间Clojure,不过我发现,对我来说Elixir更有吸引力。我已经决定发展Elixir了。

11524

明年进入前十? 5年之内进入前20 比较现实。

Elixir能不能火起来关键还是得要有一些比较牛的工具作为宣传效果。

4215

#13楼 @gyorou 单月上升20位,目前60左右。Phoenix框架也很成功。而且不难学习,所以我觉得流行是八九不离十了。

11524

#14楼 @chenge 明年能超过ruby的可能性不大,ruby现在10左右,所以。 这个就像差生稍微努力学习几个月,可以从倒数狂追很多名次,但是,越往前越艰难。

另外Phoenix本身知名度不大,需要的是用Phoenix的知名服务,或者像Ruby的Chef,HomeBrew之类的东西。

4215

#15楼 @gyorou 你说的有道理,就像docker促进了go,我们一起看吧,Elixir等待它docker出现。

2575

#11楼 @qhwa 你们监控是如何做的呢?貌似 Elixir 现在还没有好的监控服务。

De6df3

#17楼 @hisea 第一条有的 qor

De6df3 huacnlee 将本帖设为了精华贴 11月30日 13:10
96

#19楼 @huacnlee 好吧,第一条平手了,可是 西部世界 似的浪漫主义,是独一无二的。😹

1232

我觉得会。但反正不管 Elixir 是不是,Rails 是绝对不要再用就对了

1232

#3楼 @lilijreey 不止是语法好吧。。 看看 Erlang 的生态就知道了,不是一般的烂,Elixir 简直给 Erlang 带来了新的希望。另外,语法(包括宏)意味着生产力的上升,这个作用也是很大的

1232

@darkbaby123 用这个好了 http://aldusleaf.org/monitoring-elixir-apps-in-2016-prometheus-and-grafana/ 基本相当于自造的 Newrelic。当然还可以考虑 statsd 打到各种地方

3211

Elixir真的很惊艳👍

14957

#9楼 @qhwa 我们生产环境 elixir 都用了一年多了

2575

#17楼 @hisea 赞一个。最近在啃 Programming Elixir 1.3 ,这个语言带给人的思维改变是非常有意思的。做练习的时候经常有种感叹 “居然还可以这样用!” 。有些事情对没了解过 Elixir 或者 FP 的人来说是很难描述清楚的。

我一开始也不理解 let it crash 的设计,觉得如果每个异常都 crash 去了那也太频繁了。深入了解一些后才明白不是这么一回事。很多语言把异常作为控制流的一种,有些地方甚至只用 if/else/case 描述理想状态的流程,其他情况一律设计成异常类。Elixir 并不把异常作为控制流的一种,异常只用在那些 “正常情况下几乎不可能发生的事情” 上,比如数据库断线,HTTP 请求超时,配置文件不存在等等。那些在预料之中情况一般都用 {:error, reason} 加模式匹配处理掉了。这样想其实也挺合理。更进一步思考,没有哪个程序能保证处理了一切意外情况的,这种时候简单重启一下保证服务不挂掉反而是更好的做法。

4215

#28楼 @darkbaby123 就像遇到电脑死机了,重启,不追究原因了,好主意。

2575

#25楼 @tony612 这个不错!

#28楼 @chenge 是的,有些错误不用追究原因,下次还能工作就行。

4215

#25楼 @tony612 这两个监控软件都是go写的,用户不少,看来可以搭配使用。

1232

#32楼 @chenge 是的,Prometheus 基本是照着 Google 里边一套监控做的,Grafana 感觉是现在监控方面画图的首选了。如果公司自己搞的话,这套方案值得考虑

4215

#18楼 @darkbaby123@tony612, erlang-solutions,今年会议赞助商就是做监控的,不过是收费的。

207

我正在看 Programming Elixir ,看了一半,感觉是不会火,不过很有意思。

96

erlang的并发思想很有意思,进程模型做并发确实提供了很好的鲁棒性,再加上fp,简直不要再美。不过流行的希望确实不大,已经诞生二十多年的语言,不能指望一夜翻身。

27

不管 Elixir 会不会火,但是绝对是值得去学习和尝试的。 我刚开始写 Erlang 代码的时候,也感觉很别扭,各种不方便,可是到后面思维方式发生转变之后发现越写越爽,这是我之前发的一篇文章,当时接触 Erlang 时间不长,认识还比较浅显 https://ruby-china.org/topics/21520

我的下一个项目可能会采用 Elixir 来搞😎

14358

#33楼 @tony612 Prometheus 的亮点不是 monitor,而是 alerting。

12637

Elixir解决了很多erlang遗留的问题,有明日之星的样子。但是,普通web项目,Elixir上的框架不如成熟的Rails好用。

96

#23楼 @tony612 完了。才刚差不多学会使用rails。。已经要被淘汰了么。。

207

#40楼 @xiaoping_rubyist PHP 都没被淘汰,担心啥

729

还是要看场景啊

694

比较难,ruby火了是因为rails出现,go是因为docker,Elixir现在还非常小众,而在现在这个大环境下,各种仿rails的框架,Elixir如果想靠Phoenix杀出一条血路还是比较困难的。也许等它成为明日之星时,你我早已经不写代码了。

7733

#45楼 @doabit go是因为docker吗?不是吧 Elixir 社区也不仅仅Phoenix

19435

#46楼 @yukihiro_matz 可以求趣好玩的小项目推荐下么?

48楼 已删除
207

給樓上點個讚,俺也是先自己瞎學了一通然後才找到用 Ruby 的工作的。不過老實說,Rails 的適用範圍比 Elixir/Phoenix 廣多了,如果不是高負載高併發場景,後者並沒有什麼用武之地。

2575

#50楼 @blacktulip 这也是萝卜白菜各有所爱。Web 框架的适用范围也不就那些。如果说比功能现在流行的框架都不差,细节处各有优劣。这些框架多余么?我觉得不多余。毕竟除了考虑功能,照顾开发者偏好也很重要。能让做 Web 的 Elixir 的开发者有个好工具,Phoenix 达到这点就足够了。至于高并发么,我只能说,虽然大多普通人都是钱够用就好,但也没人会嫌自己钱多。

1232

#49楼 @hisea 算起来我 GitHub 上也断断续续 Elixir 写了两年了,各种东西都写过、玩过😊

4215

#53楼 @tony612 这个大全,谢谢分享。你们前不久聚会有没有ppt分享呢?

1232

#54楼 @chenge 每次基本都有的,我回去可以把之前所有的整理一下。上次的要 @jiyinyiyong

19435

#53楼 @tony612 O(∩_∩)O谢谢

96

对elixir的递归很头疼。

4215

#58楼 @fuyang 举个例子看?多练习,习惯就提高了。

1704

Elixir 用起来却是很不错呀,再过几年确实有明日之星的潜力。

29615

#5楼 @Trump 需求才是最重要的额

26252

#9楼 @qhwa 你好,如果要入手学习 Elixir 有什么引路指南么,

130

#62楼 @kooglezhang 我看的是 《Programming Elixir》有中文版,入门挺好的。

看完书把官网 guides 仔细过一遍,就入门了。

另外还有一些书适合进阶。比如《Programming Phoenix》、《Metaprgramming Elixir》。

29634

#49楼 @hisea 佩服你,有这样的能力与时间,下班还可以回家“磨刀”,我下班回家都觉得好累,不想动

96

#28楼 @darkbaby123 let it crash在erlang里面是因为有监督机制,其他语言没有这种内建的监督机制。其他语言例如java,可以将主控程序try catch 下层库的异常,捕获到一些异常后重新初始化下层库。但总的说来,没有监督机制这样规范。

2575

#67楼 @jimrokliu 是的,Supervisor 是 OTP 内建的行为之一,经历了这么多年足够稳健。类似的机制其他语言并不是不能做,不过稳定性这东西是需要时间积累的。

7021

@tony612 这个方案可以监控channel吗?

1232

#69楼 @plan9 看上去 prometheus-phoenix 这个库应该不能直接支持,但应该可以自己在 channel 一些地方自己加,比如 handle_in 函数那里

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册