鉴于完全的 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 ![]() 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 ![]() 直接在 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 楼说的是 No Silver BulletEssence 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 PRO 我想了半天才反应过来这是 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 就“复杂性”就行,说复杂度别人还以为是算法 |