HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

用 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:002415
用户头像

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

关注

评论

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

C语言/C++基本语句编程风格

C语言与CPP编程

程序员 编程语言 C语言

第二周学习总结

饭桶

架构1期-第二周作业一

道长

极客大学架构师训练营

周总结二

何毅曦

第二周 作业二:框架设计学习总结【未陌】

a d e

设计模式 架构设计

flutter 中的video player对比学习

Daniel

架构师第二周总结

悠哉

食堂就餐卡系统设计

谭明华

极客大学架构师训练营

原来我写的软件里面都是臭味 - 架构师训练营第 1 期 - 第二周总结

Todd-Lee

极客大学架构师训练营

开放的是金融服务 必须确保持牌经营

CECBC

金融 银行

数据结构与算法:递归

Java架构师迁哥

Java 编程 程序员 算法

超全算法笔试模拟题精解合集,这份《程序员面试宝典》简直太牛了

Java架构之路

Java 数据结构 面试 算法 编程语言

第二周 作业一【未陌】

a d e

设计模式 架构设计原则 基本原则

架构师第二周作业

悠哉

极客大学架构师训练营

框架设计-第二周作业

睁眼看世界

极客大学架构师训练营 软件设计原则

极客时间架构师培训 1 期 - 第 2 周作业

Kaven

区块链+跨境贸易:让跨境数据高效共享可信

CECBC

区块链 跨境贸易 跨境电子商务

最新整理国内知名大厂7篇Java岗面试真题,奥利给!

Java架构师迁哥

架构师训练营第二周学习总结

Gosling

极客大学架构师训练营

架构师训练营 - week1 - 个人学习心得总结

谭明华

听说有人不了解柔性数组

C语言与CPP编程

程序员 数组 编程语言 C语言

第二周作业

饭桶

第二周作业

华美而火锅

linux虚拟摄像头vivid配置

良知犹存

Linux 虚拟摄像

2020年高频Java面试题集锦(含答案),让你的面试之路畅通无阻!

Java架构之路

Java 程序员 面试 编程语言

小白也能看懂的REDIS教学基础篇——REDIS基础数据结构

Java 数据库 redis

腾讯某Java程序员为了肝出《300页图解网络知识》+《计算机底层操作系统》超全教程差点猝死!

Java架构之路

Java 程序员 面试 编程语言 操作系统

第二周作业二-学习总结

道长

极客大学架构师训练营

架构师训练营 - week2 - 个人学习心得总结

谭明华

极客大学架构师训练营

UML练习2

何毅曦

const关键字应用总结

C语言与CPP编程

程序员 编程语言 C语言

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