作者qitisland (ccggqqll_)
看板Soft_Job
标题[讨论] 有人用过 函数式 elm-lang 前端开发吗?
时间Sat Jan 18 12:31:56 2020
最近刚好接触到 elm-lang
https://elm-lang.org/
意外的感觉这个跟react 跟angular 相较起来很有效率
还没仔细尝试 func lang 的功能
不知道有没有先进用过 elm 来开发前端?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.227.101.105 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1579321918.A.A6A.html
※ 编辑: qitisland (61.227.101.105 台湾), 01/18/2020 12:32:56
1F:推 CoNsTaR: 和人互动的东西 (UI/UX/IO...) 用函数式做是想不开还是.. 01/18 13:51
2F:→ CoNsTaR: . 01/18 13:51
3F:推 OhGNM: Sovmedcare有玩过,可以去Github看看 01/18 14:55
4F:→ Phenomenon: 为什麽跟人互动就不能函数式? 01/18 18:47
5F:推 CoNsTaR: 要比喻的话,操作型语言(例物件导向)之於点阵图 01/18 23:06
6F:→ CoNsTaR: 就像定义型语言(例函数式)之於向量图 01/18 23:06
7F:→ CoNsTaR: 点阵图你哪边须要什麽就加上去就好,适合随时修改、新增 01/18 23:06
8F:→ CoNsTaR: 、删除,也适合复杂、难以规约的图 01/18 23:06
9F:→ CoNsTaR: 向量图希望把图规约成几何图形,画成没有误差之後就不去 01/18 23:06
10F:→ CoNsTaR: 动它,适合商标、图示之类不会变、简约、有组织的图 01/18 23:06
11F:→ CoNsTaR: 如果你想要用函数式做 UI/UX 的话,你可能须要把人的习惯 01/18 23:06
12F:→ CoNsTaR: 、觉得方不方便、喜好,背後的原因都找出来用程式建模, 01/18 23:06
13F:→ CoNsTaR: 否则程式会变超乱超难懂,就像硬要把照片转成 svg 一样, 01/18 23:06
14F:→ CoNsTaR: 里面的向量根本看不懂,也失去了函数式万物皆有道理的初 01/18 23:06
15F:→ CoNsTaR: 衷 01/18 23:06
16F:→ CoNsTaR: 可能你常常会觉得程式里某个片段或某部分用函数式很适合 01/18 23:06
17F:→ CoNsTaR: ,但这不代表整个程式都适合规约成函数式 01/18 23:06
18F:推 zeroshine: 现在 UI 走 functional 是显学吧 约束简化状态改变的 01/19 00:52
19F:→ zeroshine: 度 是在 UI 这种容易有复杂状态共享中很需要的一件事 01/19 00:54
20F:推 zeroshine: ^复杂 01/19 00:56
21F:推 CoNsTaR: 先分成用函数式建立 framework,和用函数式使用 framewor 01/19 01:53
22F:→ CoNsTaR: k,我想原 Po 问的是後者 01/19 01:53
23F:→ CoNsTaR: 函数式建立框架就像图片边界用向量表示,或许很适合,但 01/19 01:53
24F:→ CoNsTaR: 不代表边界以外的部分也适合用向量 01/19 01:53
25F:→ CoNsTaR: 而且,目前只是发现函数式的某些特性有利於设计 UI 框架 01/19 01:53
26F:→ CoNsTaR: 而已,不是整个 functional 都适合 UI 01/19 01:53
27F:→ CoNsTaR: 举个例子,目前的函数式语言普遍不承认 subtyping 就是一 01/19 01:53
28F:→ CoNsTaR: 个造成难以真正使用纯函数式设计 UI 框架的原因 01/19 01:53
29F:→ CoNsTaR: 像 Rust 就是因为不承认 subtyping,所以虽然它也很函数 01/19 01:53
30F:→ CoNsTaR: 式,但是到现在也还没有堪用的 UI framework(这个问题已 01/19 01:53
31F:→ CoNsTaR: 经被讨论过很久了) 01/19 01:53
32F:→ CoNsTaR: 更何况是 elm 这种纯函数式的语言,而且还是使用框架而 01/19 01:53
33F:→ CoNsTaR: 不是建立框架 01/19 01:53
35F:→ radishs: elm 开发完成前端,看不出来不适合在哪里 01/19 14:04
38F:→ radishs: *前端框架 01/19 14:14
39F:推 CoNsTaR: 我已经把问题跟你讲了,也告诉你有 subtyping 的语言比 01/19 23:09
40F:→ CoNsTaR: 较适合,要不要用就你的问题啦 01/19 23:09
41F:→ CoNsTaR: (补充一下,如果不要 subtyping,那就要有 dependent ty 01/19 23:09
42F:→ CoNsTaR: pes 以及一个很好的模组系统,但这样也不会比较简单就是 01/19 23:09
43F:→ CoNsTaR: 了 01/19 23:09
44F:→ CoNsTaR: 再随便举个例子,关於作者的 talk,你有没有发现 div、bu 01/19 23:09
45F:→ CoNsTaR: tton 等等都是函数,不是建构子? 01/19 23:09
46F:→ CoNsTaR: 这意味着什麽?他把函数当作降阶的 GADT 来用,为什麽不 01/19 23:09
47F:→ CoNsTaR: 用真正 type safe、immutable、it compiles it runs 的 G 01/19 23:09
48F:→ CoNsTaR: ADT 呢?因为没有 subtyping 01/19 23:09
49F:→ CoNsTaR: 要是你不认为这些问题是问题,那就当作是没问题吧... 01/19 23:09
50F:→ caasih: functional GUI 的一种做法是将 input 看成 steam ,然後 01/21 00:33
51F:→ caasih: 把 UI 和使用者行为设计成方便组合的样子,好把 input 01/21 00:34
52F:→ caasih: 转换成每个 frame 该画的画面,好奇这种做法也必须要倚靠 01/21 00:35
53F:→ caasih: subtyping 吗? 01/21 00:35
54F:→ qwdfbn: 生态差太多了,要做认真的产品再考虑考虑吧。玩玩就没差罗 01/21 12:06
55F:→ qwdfbn: 用 elm, purescript 等语言去开发就是种浪漫而已~ 01/21 12:07
56F:推 CoNsTaR: 一样啊,除非你的 UI 元件种类是固定写死的 01/25 08:36
57F:→ CoNsTaR: 问题是出在 modeling input,要兼顾 ad-hoc、type safty 01/25 08:36
58F:→ CoNsTaR: 和 decidability 01/25 08:36
59F:→ CoNsTaR: 如果须要的 types 都用某些未知方法生出来了,那你讲的东 01/25 08:36
60F:→ CoNsTaR: 西就是 obvious 没错 01/25 08:36