Dark lang:程序语言中想杀死一切复杂度的银弹

2019-09-18 12:34:05 +08:00
 ChristopherWu

鉴于完全的 Markdown 版本在家里电脑,只好部分发出来,加上原文地址了。

Backends are needlessly complicated.

Dark is a holistic programming language, editor, and infrastructure for building backends without accidental complexity.

官网开头的介绍,就充分表达了 Dark 的野心 —— 杀死现有架构中的复杂度。

简单来说,就是 darklang 想代替以往在本地写代码,编译、运行,git 提交,CI 测试,分支管理,更新部署,K8S 容器调度,nginx 负载均衡,AB 测试等流程,取而代之的是: 直接在 ide 里修改线上代码,修改完就肯定没有语法错误,顺带编译部署,顺带还做了版本管理,AB 测试,另外线上 dark 也自动替你做好其他生成环境需要考虑的事情如负载均衡,容灾,扩缩容,服务发现等

下面介绍一下 Dark 的背景,思虑以及具体功能,目前的资料只有官网的两个视频,所以自然以下这些内容也不过是我兴趣使然的来自视频的思(夹)考(带)整(私)理(货),力有未逮之初,还望见谅指教。

https://mp.weixin.qq.com/s/0gOZ5KJldo3_MZNdJaXTGw

7237 次点击
所在节点    程序员
58 条回复
augustheart
2019-09-18 12:41:02 +08:00
no silver bullet
lostberryzz
2019-09-18 12:43:42 +08:00
标题太唬人了吧,与内容严重不符
ChristopherWu
2019-09-18 12:48:03 +08:00
@lostberryzz
@augustheart 你们确定看完文章了吗?里面解释清楚银弹是什么的了。
6IbA2bj5ip3tK49j
2019-09-18 12:58:06 +08:00
直接在 ide 里修改线上代码,修改完就肯定没有语法错误,顺带编译部署,顺带还做了版本管理,AB 测试,另外线上 dark 也自动替你做好其他生成环境需要考虑的事情如负载均衡,容灾,扩缩容,服务发现等


真的,这银弹还不如我的:
出钱让第三方公司维护。
tt67wq
2019-09-18 13:00:34 +08:00
这跟 lang 不相干吧
ChristopherWu
2019-09-18 13:03:05 +08:00
@xgfan 对于全托管的批评,我只想举一个例子:gitlab 与 github 是否可以在公司里自己搭建?
ChristopherWu
2019-09-18 13:05:39 +08:00
@tt67wq 现代语言几乎都要有配套设施如包管理器,脚手架,单元测试工具,部署方案等。所以 lang 不 lang 我觉得没什么好说的。
lamada
2019-09-18 13:07:45 +08:00
看上去就像是一个 serverless 的方案
ClericPy
2019-09-18 13:11:32 +08:00
1 楼说的是
No Silver Bullet—Essence and Accidents of Software Engineering
楼主别太激动
ledzep2
2019-09-18 13:13:04 +08:00
我觉得很有意思,感谢分享。也分享一点我的看法。技术的进步所带来的复杂度需要被很好的包裹,才能让大家都能站在巨人肩膀上。这样的工作很跃进,很容易失败,但是是革命性的。我期待有一天能够直接在一个程序员里写分布式,写完能够直接拆开运行打包部署,函数即组件。可以看到 dark 有这个潜力
whileFalse
2019-09-18 13:13:18 +08:00
所以这玩意儿就像 golang 自带无需选择的格式化一样,自带无需选择的架构和运维系统的玩意儿是么。

问题是,哪家公司会为了一套“无需选择的架构和运维系统”换语言呢?
nimab
2019-09-18 13:31:45 +08:00
说 curd 的都给我滚蛋,煞笔。
nekoyaki
2019-09-18 13:33:29 +08:00
我谨慎怀疑一切大话吹破天的宣传,同时相信解决问题需要成本、解决方案各有所长,解决问题的人乃至方案都需要适材适所。我不太相信这些复杂度被隐藏起来后,原有复杂度带来的问题,或者说引发的成本,能凭空消失。

对我来说,这些“复杂度”的东西我都掌握了,为什么要去用这么一个大话吹破天的玩意?
对于其他不具有相关前置知识的人来说,他们能正确理解按下一个按钮后,程序都代劳了哪些事儿吗?用这个东西隐藏了他们自己本来控制不了的复杂度,如果出问题了,他们具有解决这些问题需要的知识和经验吗?
trait
2019-09-18 13:36:42 +08:00
现在公布的更像是个框架,别见到 lang 就又开始沸腾了
ChristopherWu
2019-09-18 13:43:11 +08:00
@trait #14 现代语言几乎都要有配套设施如包管理器,脚手架,单元测试工具,部署方案等。所以 lang 不 lang 我觉得没什么好说的。
ChristopherWu
2019-09-18 13:44:29 +08:00
@ClericPy #9 你懂的,哈哈。
rrfeng
2019-09-18 13:46:15 +08:00
思想有点超前。
创始人不是一个天才的话,做出来肯定是沙雕。
ChristopherWu
2019-09-18 13:46:31 +08:00
@ledzep2 #10 是的,是这个理。

@whileFalse #11 换语言从来都不是随便的事情,近的稍微多一些公司换的大概只有 go 吧。
ChristopherWu
2019-09-18 13:46:58 +08:00
@rrfeng #16 CTO 在 PLT 方面似乎知识背景很深厚。
ChristopherWu
2019-09-18 13:49:21 +08:00
@nekoyaki #12 文章里我提到了 GC,可以很好的回复你这个观点。

>对我来说,这些 “复杂度” 的东西我都掌握了,为什么要去用这么一个大话吹破天的玩意?
C/C++ 的 new 以及 free 相信你掌握了吧,那么你有用其他带 GC 的语言吗?

> 对于其他不具有相关前置知识的人来说,他们能正确理解按下一个按钮后,程序都代劳了哪些事儿吗?用这个东西隐藏了他们自己本来控制不了的复杂度,如果出问题了,他们具有解决这些问题需要的知识和经验吗?
现代程序员哪个不掌握一点点 GC 的相关前置知识(就算是看了几篇小文章),那他们能准确理解写完这个程序,gc 都代劳了哪些事情吗?
用这个东西( GC )隐藏了他们自己本来控制不了的复杂度,如果出问题了,他们具有解决这些问题需要的知识和经验吗?

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

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

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

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

© 2021 V2EX