[讨论] 有人用过 函数式 elm-lang 前端开发吗?

楼主: qitisland (qu-island)   2020-01-18 12:31:56
最近刚好接触到 elm-lang
https://elm-lang.org/
意外的感觉这个跟react 跟angular 相较起来很有效率
还没仔细尝试 func lang 的功能
不知道有没有先进用过 elm 来开发前端?
作者: CoNsTaR ((const *))   2020-01-18 13:51:00
和人互动的东西 (UI/UX/IO...) 用函数式做是想不开还是...
作者: OhGNM (OhGNM)   2020-01-18 14:55:00
Sovmedcare有玩过,可以去Github看看
作者: Phenomenon (Kuma)   2020-01-18 18:47:00
为什么跟人互动就不能函数式?
作者: CoNsTaR ((const *))   2020-01-18 23:06:00
要比喻的话,操作型语言(例物件导向)之于位图就像定义型语言(例函数式)之于向量图位图你哪边须要什么就加上去就好,适合随时修改、新增、删除,也适合复杂、难以规约的图向量图希望把图规约成几何图形,画成没有误差之后就不去动它,适合商标、图示之类不会变、简约、有组织的图如果你想要用函数式做 UI/UX 的话,你可能须要把人的习惯、觉得方不方便、喜好,背后的原因都找出来用程式建模,否则程式会变超乱超难懂,就像硬要把照片转成 svg 一样,里面的向量根本看不懂,也失去了函数式万物皆有道理的初衷可能你常常会觉得程式里某个片段或某部分用函数式很适合,但这不代表整个程式都适合规约成函数式
作者: zeroshine (rain)   2020-01-19 00:52:00
现在 UI 走 functional 是显学吧 约束简化状态改变的度 是在 UI 这种容易有复杂状态共享中很需要的一件事^复杂
作者: CoNsTaR ((const *))   2020-01-19 01:53:00
先分成用函数式建立 framework,和用函数式使用 framework,我想原 Po 问的是后者函数式建立框架就像图片边界用向量表示,或许很适合,但不代表边界以外的部分也适合用向量而且,目前只是发现函数式的某些特性有利于设计 UI 框架而已,不是整个 functional 都适合 UI举个例子,目前的函数式语言普遍不承认 subtyping 就是一个造成难以真正使用纯函数式设计 UI 框架的原因像 Rust 就是因为不承认 subtyping,所以虽然它也很函数式,但是到现在也还没有堪用的 UI framework(这个问题已经被讨论过很久了)更何况是 elm 这种纯函数式的语言,而且还是使用框架而不是建立框架
作者: radishs (radishs)   2020-01-19 14:03:00
https://www.noredink.com/ 语言作者工作的公司,都是用elm 开发完成前端,看不出来不适合在哪里http://builtwithelm.co/ 有更多使用的网站https://youtu.be/jl1tGiUiTtI 作者讲端框架的趋同演化*前端框架
作者: CoNsTaR ((const *))   2020-01-19 23:09:00
我已经把问题跟你讲了,也告诉你有 subtyping 的语言比较适合,要不要用就你的问题啦(补充一下,如果不要 subtyping,那就要有 dependent types 以及一个很好的模组系统,但这样也不会比较简单就是了再随便举个例子,关于作者的 talk,你有没有发现 div、button 等等都是函数,不是建构子?这意味着什么?他把函数当作降阶的 GADT 来用,为什么不用真正 type safe、immutable、it compiles it runs 的 GADT 呢?因为没有 subtyping要是你不认为这些问题是问题,那就当作是没问题吧...
作者: caasih   2020-01-21 00:33:00
functional GUI 的一种做法是将 input 看成 steam ,然后把 UI 和使用者行为设计成方便组合的样子,好把 input转换成每个 frame 该画的画面,好奇这种做法也必须要倚靠subtyping 吗?
作者: qwdfbn (@@)   2020-01-21 12:06:00
生态差太多了,要做认真的产品再考虑考虑吧。玩玩就没差囉用 elm, purescript 等语言去开发就是种浪漫而已~
作者: CoNsTaR ((const *))   2020-01-25 08:36:00
一样啊,除非你的 UI 元件种类是固定写死的问题是出在 modeling input,要兼顾 ad-hoc、type safty和 decidability如果须要的 types 都用某些未知方法生出来了,那你讲的东西就是 obvious 没错

Links booklink

Contact Us: admin [ a t ] ucptt.com