鉴于完全的 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 的背景,思虑以及具体功能,目前的资料只有官网的两个视频,所以自然以下这些内容也不过是我兴趣使然的来自视频的思(夹)考(带)整(私)理(货),力有未逮之初,还望见谅指教。
1
augustheart 2019-09-18 12:41:02 +08:00 1
no silver bullet
|
2
lostberryzz 2019-09-18 12:43:42 +08:00
标题太唬人了吧,与内容严重不符
|
3
ChristopherWu OP |
4
6IbA2bj5ip3tK49j 2019-09-18 12:58:06 +08:00 1
直接在 ide 里修改线上代码,修改完就肯定没有语法错误,顺带编译部署,顺带还做了版本管理,AB 测试,另外线上 dark 也自动替你做好其他生成环境需要考虑的事情如负载均衡,容灾,扩缩容,服务发现等
真的,这银弹还不如我的: 出钱让第三方公司维护。 |
5
tt67wq 2019-09-18 13:00:34 +08:00
这跟 lang 不相干吧
|
6
ChristopherWu OP @xgfan 对于全托管的批评,我只想举一个例子:gitlab 与 github 是否可以在公司里自己搭建?
|
7
ChristopherWu OP @tt67wq 现代语言几乎都要有配套设施如包管理器,脚手架,单元测试工具,部署方案等。所以 lang 不 lang 我觉得没什么好说的。
|
8
lamada 2019-09-18 13:07:45 +08:00
看上去就像是一个 serverless 的方案
|
9
ClericPy 2019-09-18 13:11:32 +08:00 1
1 楼说的是
No Silver Bullet—Essence and Accidents of Software Engineering 楼主别太激动 |
10
ledzep2 2019-09-18 13:13:04 +08:00 via Android
我觉得很有意思,感谢分享。也分享一点我的看法。技术的进步所带来的复杂度需要被很好的包裹,才能让大家都能站在巨人肩膀上。这样的工作很跃进,很容易失败,但是是革命性的。我期待有一天能够直接在一个程序员里写分布式,写完能够直接拆开运行打包部署,函数即组件。可以看到 dark 有这个潜力
|
11
whileFalse 2019-09-18 13:13:18 +08:00
所以这玩意儿就像 golang 自带无需选择的格式化一样,自带无需选择的架构和运维系统的玩意儿是么。
问题是,哪家公司会为了一套“无需选择的架构和运维系统”换语言呢? |
12
nimab 2019-09-18 13:31:45 +08:00
说 curd 的都给我滚蛋,煞笔。
|
13
nekoyaki 2019-09-18 13:33:29 +08:00
我谨慎怀疑一切大话吹破天的宣传,同时相信解决问题需要成本、解决方案各有所长,解决问题的人乃至方案都需要适材适所。我不太相信这些复杂度被隐藏起来后,原有复杂度带来的问题,或者说引发的成本,能凭空消失。
对我来说,这些“复杂度”的东西我都掌握了,为什么要去用这么一个大话吹破天的玩意? 对于其他不具有相关前置知识的人来说,他们能正确理解按下一个按钮后,程序都代劳了哪些事儿吗?用这个东西隐藏了他们自己本来控制不了的复杂度,如果出问题了,他们具有解决这些问题需要的知识和经验吗? |
14
trait 2019-09-18 13:36:42 +08:00
现在公布的更像是个框架,别见到 lang 就又开始沸腾了
|
15
ChristopherWu OP @trait #14 现代语言几乎都要有配套设施如包管理器,脚手架,单元测试工具,部署方案等。所以 lang 不 lang 我觉得没什么好说的。
|
16
ChristopherWu OP @ClericPy #9 你懂的,哈哈。
|
17
rrfeng 2019-09-18 13:46:15 +08:00 via Android
思想有点超前。
创始人不是一个天才的话,做出来肯定是沙雕。 |
18
ChristopherWu OP |
19
ChristopherWu OP @rrfeng #16 CTO 在 PLT 方面似乎知识背景很深厚。
|
20
ChristopherWu OP @nekoyaki #12 文章里我提到了 GC,可以很好的回复你这个观点。
>对我来说,这些 “复杂度” 的东西我都掌握了,为什么要去用这么一个大话吹破天的玩意? C/C++ 的 new 以及 free 相信你掌握了吧,那么你有用其他带 GC 的语言吗? > 对于其他不具有相关前置知识的人来说,他们能正确理解按下一个按钮后,程序都代劳了哪些事儿吗?用这个东西隐藏了他们自己本来控制不了的复杂度,如果出问题了,他们具有解决这些问题需要的知识和经验吗? 现代程序员哪个不掌握一点点 GC 的相关前置知识(就算是看了几篇小文章),那他们能准确理解写完这个程序,gc 都代劳了哪些事情吗? 用这个东西( GC )隐藏了他们自己本来控制不了的复杂度,如果出问题了,他们具有解决这些问题需要的知识和经验吗? |
21
lrxiao 2019-09-18 14:01:09 +08:00
你这个标题...UC 系?
这就是个后端的 DSL, 方便了部署和蓝图编辑器 也就适合快速开发个 demo 和小页面吧, 那种团队里没多少人会写代码的那种 |
22
guokeke 2019-09-18 14:02:11 +08:00
真正的银弹:钱
|
23
laravel 2019-09-18 14:02:46 +08:00
还以为是 dart lang
|
24
ofooo 2019-09-18 14:09:25 +08:00 via iPhone
了解了一下,思路很新颖
对那些只会说一句没有银弹的人投以鄙夷的目光,如果没有银弹,为什么你不用汇编和机器语言编程呢? 一个个都是教条的复读机么 |
25
YvesX 2019-09-18 14:37:04 +08:00
我还以为是要消灭时间复杂度和空间复杂度,实现了心想事成机。
|
26
ChristopherWu OP @lrxiao #20 UC 能有这么内涵的标题嘛
|
27
ChristopherWu OP @ofooo #23 是的,随便就回一个简单的回复,没什么意思- -
|
28
agdhole 2019-09-18 16:14:54 +08:00
|
29
a719114136 2019-09-18 16:22:56 +08:00 via Android
这是一个语言??这样做如果语言自带的负载均衡,容灾等有 bug,或者支持不了更大的量级,那不是除了等语言升级就毫无办法了么?
|
30
momocraft 2019-09-18 16:27:16 +08:00
人家说了 accidental complexity 怎么你标题就杀死一切复杂度了...
|
31
ChristopherWu OP @a719114136 #28 你只要用别人的东西,是不是都是这个理- -
|
32
ChristopherWu OP @momocraft #29 适当的标题党可以增加长久的阅读量
|
33
a719114136 2019-09-18 16:39:29 +08:00 via Android
@ChristopherWu
不太一样,一个是语言级的 bug,一个是软件级的 bug。 软件级的 bug 对代码的侵入程度较小,比如 Nginx 出问题,我好歹还可以选择 Nginx 的替代品,而一个语言出问题,想要更换只能换整个语言。 |
34
encro 2019-09-18 16:45:29 +08:00
输入 PPT,输出 APP,才是我的理想语言。
更强大点是输入手机淘宝,输出淘宝,拼多多,京东,唯品会成品让我选一选,选好后一键部署(不放心才需要下载源码)。 |
35
ChristopherWu OP @a719114136 #32 这个是的。所以要做大不容易,当然大了也很恐怖就是了
|
36
guyeu 2019-09-18 18:28:51 +08:00
@ChristopherWu #6 github 和 gitlab 都有企业部署的版本
|
37
impl 2019-09-18 18:54:11 +08:00 via Android
记得之前官网上面看到,说是针对客户端开发优化的语言,现在怎么扯到后端了。。
|
38
impl 2019-09-18 18:55:17 +08:00 via Android
shit,以为是 dart。。
|
39
TangMonk 2019-09-18 19:03:05 +08:00
我想来一款 富二代-lang, 简称 rich-lang, 可以解决任何 996 问题
|
40
qdwang 2019-09-18 19:07:15 +08:00 via iPhone
我有个疑问,是不是走这个 darklang,所有的语言都只能用 darklang 了?那么那么多其他语言现有的库都不能用?
|
41
SingeeKing 2019-09-18 19:09:19 +08:00
我想了半天才反应过来这是 Dark 而 Google 的那个是 Dart
不过实名不信一个语言能做到这些 |
42
trait 2019-09-18 19:23:39 +08:00
@ChristopherWu 不是没什么好说的,是你根本不懂,这些外围附属品都是 lang 开发 tier2 的东西,连个 spec 都没见到,逮个视频瞎吹,你只比方舟吹多了一个抽帧的技能 标题党 block
|
43
reus 2019-09-18 19:35:26 +08:00
垃圾标题垃圾内容,切。
|
44
ChristopherWu OP |
45
ChristopherWu OP @qdwang #38 应该是这样的。现在语言的库也是独立的啊,你一个 go 要用 java 的库也很难啊。
|
46
ChristopherWu OP @guyeu #34 嗯,我表达的是可以做成这样子的形态,不想自己搭用官方的,公司想掌控就自己搭。
|
47
justfortest 2019-09-18 21:47:23 +08:00
我以为能自己写程序呢😂
|
48
sonicjam 2019-09-18 22:33:48 +08:00
把 complexity 翻译成复杂度也是有点醉。
|
49
3789 2019-09-18 23:41:19 +08:00 via Android
木大木大,就算以后流行这个,面试官同样会问你底层是怎么实现的,又不得不去研究它的实现细节,增加心智负担😒
|
50
slanternsw 2019-09-19 00:51:13 +08:00
@ChristopherWu …#6 可以。
|
51
iceheart 2019-09-19 06:54:11 +08:00 via Android
|
52
Rorshach 2019-09-19 08:54:31 +08:00
我只知道官网视频里的 CTO 技术很高
|
53
zhang77555 2019-09-19 09:15:07 +08:00
看他们的目标是想让编码开发简单 100 倍, 然而计算机软件的世界一直都是很平衡的, 你追求某个特性的时候必然会失去另一个优势.
|
54
ChristopherWu OP @iceheart #47 是啊,就是说人工管理内存 vs 垃圾回收
|
55
ChristopherWu OP @sonicjam #44 正确的翻译应该是什么吖?
|
56
ChristopherWu OP @zhang77555 #49 目标应该是重头设计,把历史积累的设计方案弄得更好。
|
57
ChristopherWu OP @Rorshach #48 演讲水平也不错
|
58
sonicjam 2019-09-19 13:26:20 +08:00
@ChristopherWu #55 就“复杂性”就行,说复杂度别人还以为是算法
|