结束了我的第一次 Elixir 会议,感觉很棒,原因有三:
- 学到了很多
- 意识到我知道的不多
- 我很感激能成为一个可以填补空白的社区的一部分
我比以往任何时候都更加确信,为 jumpcomedy.com 选择 Elixir/Erlang 堆栈的决定是正确的。听到那些七八年前也面临类似抉择并最终选择放弃的人的分享,我感到很欣慰。他们敢于冒险,而我只是一个跟随者,受益于众多才华横溢的人们所做的大量工作。以下是本次大会的五个亮点。
Electric SQL/Phoenix 同步
这改变了游戏规则。在实时视图成为常态、人们注意力持续时间迅速下降的当今世界,在用户界面和数据存储之间同步数据对于打造卓越的用户体验至关重要。Phoenix Sync 通过查看 PostGres 复制日志并几乎即时同步您的 LiveView(甚至 JS 前端)来实现这一点。结合 LiveView 流的强大功能,您只需更改五个字符,从 PostGres GUI 执行的 INSERT 操作就会显示在您的 LiveView 用户界面中。我可不是开玩笑——无需编写任何代码即可实现这一点,这听起来好得令人难以置信,但事实就是如此。
灰烬人工智能
有很多关于人工智能的讨论,也有一些使用LangChain 的精彩演示,但最让我兴奋的是Ash Framework 的人工智能扩展,因为我认为他们已经掌握了声明式语法,甚至让模型上下文协议的实现变得相当简单。Elixir/Phoenix 一直以来都能带来(我可不是随便说说的)比其他任何东西都高出 5 倍的生产力提升,而这个实现恰恰证明了他们让用人工智能赋能你的应用变得多么简单。
LiveVue / JS 逃生舱口
任何优秀的 Elixir 抽象库都提供了一个干净的出口,而LiveVue (以及 LiveReact 和 LiveSvelte)正是如此——它们不会根据状态变化跨线路发送 HTML diff,而是同步 props,这意味着您可以无缝地使用任何带有 Phoenix 后端的前端框架,以应对 UI 因任何原因需要大量 JavaScript 的情况。许多考虑使用 LiveView 的人担心这一点,因为它极其以服务器为中心,也就是说,无法控制前端状态会让很多开发人员望而却步,尤其是那些在应用程序中依赖框架实用程序的开发人员( npm i
太容易了)。LiveVue 解决了这个问题。
类型检查与类型推断
Jose Valim 谈到了 Elixir 1.19 即将推出的功能,它将支持更多推断类型,尤其是 Map 中键的类型推断。他表示,Elixir 将在 18-24 个月内支持类型声明,这只是时间问题,而不是是否会出现的问题。这将弥合语言中一个显而易见的巨大差距,并为习惯使用 TypeScript 和 Java 的开发者尝试 Elixir 铺平道路。没有类型声明从未让我感到害怕,因为它迫使我放弃对类型的依赖,从而促进了我编写更清晰的代码、更精简的函数和更完善的测试。目前已经有很多大公司在使用 Elixir,比如 BBC、Bleacher Report 等,但类型声明将为更大型的企业打开更大的大门,这些企业通常将类型声明视为必需,仅仅是因为他们已经习惯了。
胡扯
我必须特别感谢众多闪电演讲,其中之一就是Waffle ,它是 Elixir 小型库的经典范例,它只专注于一项工作,并且做得很好,不会再尝试做其他任何事情。Waffle 是一个文件处理器/上传器,并扩展了 S3、Azure 等功能。我喜欢作者说的“我们基本上完成了这个库的工作”,而这正是我喜欢 Elixir 库的原因:几个月甚至几年前的“最后一次提交”并不意味着这个库被放弃了,而是它只是出色地完成了它应该做的事情,没有其他事情要做了。
—
Phoenix 创始人 Chris McCord 发表了题为“代码生成器已死,代码生成器万岁”的闭幕主题演讲。在介绍他构建的人工智能如何取代传统的 Phoenix 代码生成器时,他显得有些疲惫不堪。他真的在 20 分钟内构建了一个定制的 TodoApp,并在构建过程中思考了开发者在人工智能时代的角色,同时也低调地嘲讽了“氛围编码”。他的核心观点似乎是人工智能不会取代开发者,但他理解人们为什么会担心这一点。那些复制粘贴 StackOverflow 代码的人会继续复制粘贴人工智能生成的代码,一旦一切恢复正常,人类最终仍然需要被利用。
我不知道该如何看待这一点,但人工智能与 Stack Overflow 的比喻截然不同,因为 Stack Overflow 仍然要求你把所有信息串联起来。很多人工智能不需要。一个让我产生共鸣的比喻是将人工智能与工业革命进行比较,工业革命彻底改变了一切,但也需要比以往更多的劳动力。时间会证明一切。
原文: https://zarar.dev/im-rejuvenated-by-the-elixir-eu-conference/