为什么欧美很多公司/团体/个人都喜欢造新语言,而国内普遍认为语言只是工具,不要过多探究语言语法本身,重要的是库、生态?

2022-09-25 04:34:36 +08:00
TWorldIsNButThis  TWorldIsNButThis
不光很多欧美的大公司喜欢创造新语言解决某些问题,
比如说
swift 为了写 UI
go carbon 为了写 native 的工具
Rust 为了重写浏览器


一些个人或者团体有时候只是为了满足对编程风格(主要是 Functional programming )的追求也会选择开发新语言
比如最近发现一个还在开发中的语言 Roc ,试图解决 FP 语言由于 immutable 导致的性能问题,目标是做到 native 语言接近的性能。开发原因没别的,就是喜欢 FP ,所以希望写需要高性能的程序的时候一样可以用 FP (宣讲视频里拿 haskell 的 Quicksort 举例,为了实现高性能的原地排序,用上了各种丑陋的 hack )
3171 次点击
所在节点   问与答  问与答
30 条回复
shiganwuguo
shiganwuguo
2022-09-25 19:33:33 +08:00
因为国人都很聪明 而底层是吃力不讨好的 这种事还是让欧美啥子去做吧 我们只需要发挥自己的聪明才智拿来用搞钱就行
LuckyPocketWatch
LuckyPocketWatch
2022-09-26 00:48:03 +08:00
造的语言很多,活下来的有几个?

当初 D 语言号称将取代 C++,我特么差点就去搞 D 了。。。
FrankHB
FrankHB
2022-09-26 20:58:23 +08:00
@majula 最近?
FrankHB
FrankHB
2022-09-26 21:55:04 +08:00
@eason1874 国外巨头……标准?你确定?

github.com/microsoft/TypeScript/issues/15711

这还是主流大厂里我能最省脏话的产品了。

然后回 OP 。

原因很简单。
一个字:菜。
二个字:很菜。
三个字:非常菜。
当然也不是全是人的原因,毕竟术业有专攻,有时候菜是理所应当的。

说个临时想的段子:有的人觉得 context 应该翻译成“语境”,我倒是觉得翻译成“上下文”反而更好,至少信达雅里信是比较重要的。
为什么?因为 context 在形式上就是 some form having a *syntactic* hole in the meta language 。(*Emphasize mine.*)
作为程序员没感觉?很正常,没经过这方面训练,又没天赋自己发现甚至重新发明一遍。不过看着一票程序员连 syntax 和 grammar 都没概念区分清楚(汉语翻译错位又更拉胯),我只是觉得这种活还是别指望只会做程序员的人干比较好,就不太想多指望些啥了。(也不是专业搞这个的就一定像样,还有 doi: 10.1023/a:1007720632734 这种在关键最终结论上掉民科级别链子却能过 peer review 的。)
当然也不是没基因干这个的就干不出表面像样到能吸引到更随大流的程序员的东西。像正常来讲工程师日常多少都得看技术规范,结果 TS 和 Rust 连个 up-to-date 的 spec 都难(没)产(有),用户基本上照样给啥吃啥,说明就没几个有当工程师的素质(暴论)。

而当这种素质稀薄到一定程度上,所谓语言工具论也就不奇怪了。这个看法虽然明摆着 low ,但实际上也就仅仅是更 low 。OP 所谓的“喜欢造新语言”的欧美很多那啥啥,其实本质上也是挺 low 的(不算暴论)。
当然我也不是啥反思怪,要人反省为什么看不到 low 。只需反思一下,为什么更 low 的理解仍然会有土壤,为什么 OP 自己不会**想着亲自去怒怼“普遍认为语言只是工具”而只是拿这个构成这楼的标题**,那么就解答了一半的问题。

另一半问题,就 PL 方面特别菜(得不应当理所当然)的问题,展开一点。
所谓编程风格是个啥,只会编程的,大多自己就说不清楚。成天 FPFP 的,有几个人知道 FLP 是啥么?
理由也很简单,编程跟设计语言和确定所谓的风格本来就是不同的领域。只会编程的,大多甚至连可编程性的来源都没怎么关心过,又经常被坑而对这个感(无)到(能)不(狂)满(怒),所以就菜鸡互啄了。
以讹传讹多了,到 FP 是个什么东西都难以对只会编程的用户解释清楚了(虽然我不是没试图解释过,非重点链接懒得放了)。APL 党吹的 pointless 当作 FLP 可能值得单独批判一番,因为那是真的更纯粹的“风格”。什么风格呢?嗯,好比 combinatory logic ,相比 lambda calculus ,妥妥的**低级语言**,因为刻意挖掉了抽象(lambda abstraction)顺带干掉了健全的变量。对此缺乏直观认识的,可以了解一下 unlambda 。
设计这些抽风语言的原始形式基本都算不上纯粹的程序员;其中一些人还特别喜欢推销。所以在让人不痛快的语言恶心人的能力上,程序员不用有啥优越感的。
这里的共同点是,不管是不是程序员,大多数语言设计者光是认知的储备上,真的对设计实用语言的 pure PL 菜得很。程序员做不大到的是连带把 PLT 也搞得一团糟,搞的 model 根本理论联系不到实际,于是俩菜坛子分裂的问题就越来越没得解决了,以至让大多数人习惯了。(一堆著名 PL 壬的例子略。)
菜惯了导致两个相对直接的后果:一个是经常有用户发现现有的语言用不舒服;另一方面是经常有用户认为这玩意儿看来没什么可行性包袱,先上了再说。然鹅实际的维护工作做得下来的有几个?更别提考虑对业界有啥影响了。
所以一般人注意到满天飞的“新”语言,说好听点是 DSL ,说直白点半成品都不是。嗯,顺带杀死了路人用户温故知新的能力。
其实搞语言玩玩也不是不行,培养兴趣也是重要的嘛。但是要正视对这个世界的影响,脱离做半成品电子垃圾的低级趣味是一个社会的人补完自己的必由之路。
Haskell 那种筛掉小鬼以后的理论家都整天只会吹 equational reasoning 的,会遇到性能问题就直球菜鸡 QoI 不行就是了。比起这个是更喜欢拿 GHC 的 seq magic 直球来黑默认 equational reasoning 和 lazy 这个核心设计思路本身(比起爆杀 monad 乃至 applicative 小鬼起来爽多了),然后再嘲讽 PFP 没 identity 倒是整活 levity 之类的破烂。不过这个文献跨度比较大我不想每次都展开。

至于能力甚至都没入门低级趣味的门槛的,我暂时不想多评价。
eason1874
eason1874
2022-09-27 01:05:02 +08:00
@FrankHB #24 我没看懂你想表达什么,你举这个例子是想说微软制订的标准少吗?
FrankHB
FrankHB
2022-09-27 19:54:26 +08:00
@eason1874 是多少的问题吗?

你要提正儿八斤的标准,那行,看看 ECMA-334 的版本断成什么样了?
标准里说微软叫 destructor 不对,应该叫 finalizer ,之后微软的文档照样不听不听和尚念经。
微软自己怕是都没好意思装作热心标准。
eason1874
eason1874
2022-09-28 01:32:06 +08:00
@FrankHB #26 同时收录到 ECMA 和 ISO 的标准你都能说不是标准,那什么能叫标准?😅

发展后期做得怎么样,跟它被发明出来是不是奔着制订标准去的,两码事。IE 浏览器发展着发展着更是屎一样,这也没影响它一开始制订标准
Zien
Zien
2022-09-28 02:49:06 +08:00
语言本来就是工具,不然 C 、go 这些怎么来的?
国内的重点是营销,而不是工具,所以不重视,而且也没那个技术积累,别说语言,wiki 、tutorial 、甚至 readme 都做不好… 之前在 GitHub 上 watch 了一个阿里的开源项目,readme 写的 abc… 其他公司连 readme 都没有…
FrankHB
FrankHB
2022-10-07 16:11:35 +08:00
@eason1874 我有说“不是”了么。
当然你要是习惯只看个标题不看内容,而容忍挂羊头卖狗肉,那你自便,不过这也不是给微软标准化工作质量低劣辩护的理由。
顺便 ISO 在这种 ECMA 才是第一现场的东西上没什么可以说的,基本就是抄过去,不负责起草——毕竟 ECMA 的质量是够抄的( IEEE 同理)。而相比之下,MS 的质量太挫没得抄,这也是传统艺能——否则当年 C++/CLI 提交给 SC22 就不会直接被嫌弃了。
chai2010
2022-11-22 10:39:52 +08:00
码农都喜欢造语言,不分国界。可以看看中国语言列表: https://zh-lang.cn/
说国内语言少,主要还是因为起步晚、工作压力大、缺少主流语言缺少存在感。

目前工作和业余都有在搞语言:
- 工作是 KCL 配置语言( https://github.com/KusionStack/KCLVM ),主要是面向云原生运维领域的 DSL ;
- 业余是凹语言( https://wa-lang.org ),主要是面向 WebAssembly 的通用语言,目前已经图灵完备并在纯浏览器可编译和执行

我个人预测未来 3-5 年,国内码农是可以卷到这个领域的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/882714

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX