OceaBase开发者大会落地上海!4月20日共同探索数据库前沿趋势!报名戳 了解详情
写点什么

用 Elm 语言降低失败的风险

  • 2015-10-08
  • 本文字数:812 字

    阅读完需:约 3 分钟

Strange Loop 2015 有一个亲自体验环节,在一次实践活动中,Richard Feldman 讲述了他的团队使用 Elm 语言的经历,他们的项目在使用这门语言后失败的风险大幅降低,迭代的速度也有所提升。

世界各地的 JavaScript 开发者可能都遇到过undefined is not a function这个错误。Feldman 藉由这个痛点来告诉人们 Elm 是一门可以提升开发者开发体验的语言,Elm 编译器会捕捉令原生 JavaScript 开发者苦恼的所有错误。据 Feldman 说,在 Elm 应用中,“编译后的应用会运行在一个 try 代码段中,不会回退或抛出运行时异常”。

我对与 Elm 所带来的良好的用户体验感到好奇,后来我发现,正是 Elm 那无微不至的完美细节让你每天的编码人生都无比快乐。

对于很多不熟悉 Elm 的人来说,它就是一门由 Evan Czaplicki 创建的函数式编程语言,它的设计初衷是简化构建 web UI 的过程。Elm 最终会被编译为 JavaScript,它与 React 一样使用虚拟 DOM 来操作界面。 Elm 博客上的测试基准(benchmark)指出,它出奇地竟然比 React 还快!

最简单的 Elm 代码看起来是这样的:

复制代码
import Html exposing (span, text)
import Html.Attributes exposing (class)
main =
span [class "welcome-message"] [text "Hello, World!"]

“Elm 里的一切皆由二者组成:不可变数据和无状态函数,”Feldman 说。这种设计的函数性纯度(函数没有副作用)理论上很好,但是 web 开发者经常不得不与许多其它系统进行交互,而 Elm 中的“ Task (任务)”特性就用来解决这类问题。Feldman 告诉我们 task 可以理解为“你想做的事情的数据表示,它实际上也是一连串的指令”。

Elm 可以与使用“ ports ”的 JavaScript 库进行交互,所以开发者可以用 Elm 代码替换应用的某些构件,然后用 port 将二者联结在一起。

Feldman 的演讲视频可以在 Youtube 上观看,其它环节可以在视频列表中观看。另外你可以阅读Feldman 写的一篇教程文章《用Elm 来构建一个注册页面》。

查看英文原文 Reduce the Risk of Failure With Elm

2015-10-08 19:002323
用户头像

发布了 63 篇内容, 共 131.7 次阅读, 收获喜欢 38 次。

关注

评论

发布
暂无评论
发现更多内容

浅析AIGC for MMKG

华为云开发者联盟

人工智能 华为云 AIGC 华为云开发者联盟 企业号 5 月 PK 榜

限速神器RateLimiter源码解析 | 京东云技术团队

京东科技开发者

限流算法 京东云 企业号 5 月 PK 榜

硬科技,创未来!第十五届深创赛福田预选赛-华秋第九届硬创大赛正式启幕

华秋电子

TOB行业头条专访伙伴云CEO戴志康:GPT带来的AIGC热潮,改造了低代码?

联营汇聚

EhViewer软件2023最新白色版中文语言

ehviewer

EhViewer

一种通用的业务监控触发方案设计 | 京东云技术团队

京东科技开发者

京东云 业务监控 企业号 5 月 PK 榜

打造公用事业行业数智化标杆!泉州水务集团财务共享系统建设项目启动

用友BIP

财务共享

住宅代理的未来:挑战、趋势和机遇

摘星星的猫

SpringBoot 使用 Sa-Token 完成注解鉴权功能

做梦都在改BUG

Java spring Sa-Token

生态伙伴 | 硬创大赛新起航!携手华强科创广场,助力硬科技创业者

华秋电子

在Mac电脑上运行 PC 游戏

互联网搬砖工作者

网易云商·七鱼智能客服自适应 ProtoStuff 数据库缓存实践

网易智企

Java 数据库 缓存

元宇宙链游系统软件开发

Congge420

刷Github时发现了一本阿里大神的算法笔记!标星70.5K

做梦都在改BUG

Java 数据结构 算法 LeetCode

AIGC背后的技术分析 | 知识图谱

TiAmo

自然语言处理 机器学习 知识图谱 AIGC

大央企的“中央厨房”,泰裤辣!

用友BIP

数智化底座

第五届金蝶云・苍穹追光者开发大赛报名正式启动,百万奖金等你拿

金蝶云·苍穹

低代码 低代码平台 开发者大赛 金蝶 金蝶云苍穹

从前后端的角度分析options预检请求

华为云开发者联盟

前端 开发 华为云 华为云开发者联盟 企业号 5 月 PK 榜

央国企数字化转型 6 大挑战如何应对?中国信通院 IOMM 方法论提 6 点参考对策

信通院IOMM数字化转型团队

数字化转型 IOMM 央国企数字化转型

即时通讯技术文集(第15期):IM跨平台和社交软件红包技术 [共19篇]

JackJiang

网络编程 即时通信 即时通讯IM

基于 KONOS 编写一个部门级的前端框架

鲸品堂

前端 前端框架 企业号 5 月 PK 榜 konos

Midjourney|文心一格prompt教程[基础篇]:注册使用教程、风格设置、参数介绍、隐私模式等

汀丶人工智能

人工智能 深度学习 ChatGPT MidJourney prompt learning

机器学习服务语音合成,解锁智能养娃新趋势

HMS Core

HMS Core

FEELM在英国发布全新升级一次性解决方案,思摩尔打造增长新引擎

科技热闻

JMeter笔记6 | JMeter录制(配置代理)

测试 Jmeter 性能测试 自动化测试 接口测试

IPv6定义以及优势说明-行云管家

行云管家

网络 ipv6

海量主机自动化运维软件用哪款好?具体功能有哪些?

行云管家

主机 云主机 自动化运维

【AI思维空间】ChatGPT纵横编程世界,点亮智慧火花 | 京东云技术团队

京东科技开发者

人工智能 京东云 ChatGPT 企业号 5 月 PK 榜

LP流动性质押挖矿系统软件开发

Congge420

消息推送平台有没有保证数据不丢?

做梦都在改BUG

赋能企业数智转型新动力,迈向票据等分化新时代

用友BIP

用Elm语言降低失败的风险_JavaScript_David Iffland_InfoQ精选文章