Dark lang:程序语言中想杀死一切复杂度的银弹 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
ChristopherWu
V2EX    程序员

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

  •  
  •   ChristopherWu 2019-09-18 12:34:05 +08:00 7568 次点击
    这是一个创建于 2219 天前的主题,其中的信息可能已经有所发展或是发生改变。

    鉴于完全的 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

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


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

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

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

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

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

    > 对于其他不具有相关前置知识的人来说,他们能正确理解按下一个按钮后,程序都代劳了哪些事儿吗?用这个东西隐藏了他们自己本来控制不了的复杂度,如果出问题了,他们具有解决这些问题需要的知识和经验吗?
    现代程序员哪个不掌握一点点 GC 的相关前置知识(就算是看了几篇小文章),那他们能准确理解写完这个程序,gc 都代劳了哪些事情吗?
    用这个东西( GC )隐藏了他们自己本来控制不了的复杂度,如果出问题了,他们具有解决这些问题需要的知识和经验吗?
    lrxiao
        21
    lrxiao  
       2019-09-18 14:01:09 +08:00
    你这个标题...UC 系?
    这就是个后端的 DSL, 方便了部署和蓝图编辑器
    也就适合快速开发个 demo 和小页面吧, 那种团队里没多少人会写代码的那种
    guokeke
        22
    guokeke  
       2019-09-18 14:02:11 +08:00
    真正的银弹:钱
    laravel
        23
    laravel  
       2019-09-18 14:02:46 +08:00
    还以为是 dart lang
    ofooo
        24
    ofooo  
       2019-09-18 14:09:25 +08:00 via iPhone
    了解了一下,思路很新颖

    对那些只会说一句没有银弹的人投以鄙夷的目光,如果没有银弹,为什么你不用汇编和机器语言编程呢?

    一个个都是教条的复读机么
    YvesX
        25
    YvesX  
       2019-09-18 14:37:04 +08:00
    我还以为是要消灭时间复杂度和空间复杂度,实现了心想事成机。
    ChristopherWu
        26
    ChristopherWu  
    OP
       2019-09-18 14:55:24 +08:00
    @lrxiao #20 UC 能有这么内涵的标题嘛
    ChristopherWu
        27
    ChristopherWu  
    OP
       2019-09-18 14:56:20 +08:00
    @ofooo #23 是的,随便就回一个简单的回复,没什么意思- -
    agdhole
        28
    agdhole  
       2019-09-18 16:14:54 +08:00
    a719114136
        29
    a719114136  
       2019-09-18 16:22:56 +08:00 via Android
    这是一个语言??这样做如果语言自带的负载均衡,容灾等有 bug,或者支持不了更大的量级,那不是除了等语言升级就毫无办法了么?
    momocraft
        30
    momocraft  
       2019-09-18 16:27:16 +08:00
    人家说了 accidental complexity 怎么你标题就杀死一切复杂度了...
    ChristopherWu
        31
    ChristopherWu  
    OP
       2019-09-18 16:28:50 +08:00
    @a719114136 #28 你只要用别人的东西,是不是都是这个理- -
    ChristopherWu
        32
    ChristopherWu  
    OP
       2019-09-18 16:29:09 +08:00
    @momocraft #29 适当的标题党可以增加长久的阅读量
    a719114136
        33
    a719114136  
       2019-09-18 16:39:29 +08:00 via Android
    @ChristopherWu
    不太一样,一个是语言级的 bug,一个是软件级的 bug。
    软件级的 bug 对代码的侵入程度较小,比如 Nginx 出问题,我好歹还可以选择 Nginx 的替代品,而一个语言出问题,想要更换只能换整个语言。
    encro
        34
    encro  
       2019-09-18 16:45:29 +08:00
    输入 PPT,输出 APP,才是我的理想语言。

    更强大点是输入手机淘宝,输出淘宝,拼多多,京东,唯品会成品让我选一选,选好后一键部署(不放心才需要下载源码)。
    ChristopherWu
        35
    ChristopherWu  
    OP
       2019-09-18 17:01:26 +08:00
    @a719114136 #32 这个是的。所以要做大不容易,当然大了也很恐怖就是了
    guyeu
        36
    guyeu  
       2019-09-18 18:28:51 +08:00
    @ChristopherWu #6 github 和 gitlab 都有企业部署的版本
    impl
        37
    impl  
       2019-09-18 18:54:11 +08:00 via Android
    记得之前官网上面看到,说是针对客户端开发优化的语言,现在怎么扯到后端了。。
    impl
        38
    impl  
       2019-09-18 18:55:17 +08:00 via Android
    shit,以为是 dart。。
    TangMonk
        39
    TangMonk  
       2019-09-18 19:03:05 +08:00
    我想来一款 富二代-lang, 简称 rich-lang, 可以解决任何 996 问题
    qdwang
        40
    qdwang  
       2019-09-18 19:07:15 +08:00 via iPhone
    我有个疑问,是不是走这个 darklang,所有的语言都只能用 darklang 了?那么那么多其他语言现有的库都不能用?
    SingeeKing
        41
    SingeeKing  
    PRO
       2019-09-18 19:09:19 +08:00
    我想了半天才反应过来这是 Dark 而 Google 的那个是 Dart

    不过实名不信一个语言能做到这些
    trait
        42
    trait  
       2019-09-18 19:23:39 +08:00
    @ChristopherWu 不是没什么好说的,是你根本不懂,这些外围附属品都是 lang 开发 tier2 的东西,连个 spec 都没见到,逮个视频瞎吹,你只比方舟吹多了一个抽帧的技能 标题党 block
    reus
        43
    reus  
       2019-09-18 19:35:26 +08:00
    垃圾标题垃圾内容,切。
    ChristopherWu
        44
    ChristopherWu  
    OP
       2019-09-18 19:41:33 +08:00
    @reus #42
    @trait #41 反 block:)
    ChristopherWu
        45
    ChristopherWu  
    OP
       2019-09-18 19:53:15 +08:00
    @qdwang #38 应该是这样的。现在语言的库也是独立的啊,你一个 go 要用 java 的库也很难啊。
    ChristopherWu
        46
    ChristopherWu  
    OP
       2019-09-18 19:54:05 +08:00
    @guyeu #34 嗯,我表达的是可以做成这样子的形态,不想自己搭用官方的,公司想掌控就自己搭。
    justfortest
        47
    justfortest  
       2019-09-18 21:47:23 +08:00
    我以为能自己写程序呢
    sonicjam
        48
    sonicjam  
       2019-09-18 22:33:48 +08:00
    把 complexity 翻译成复杂度也是有点醉。
    3789
        49
    3789  
       2019-09-18 23:41:19 +08:00 via Android
    木大木大,就算以后流行这个,面试官同样会问你底层是怎么实现的,又不得不去研究它的实现细节,增加心智负担
    slanternsw
        50
    slanternsw  
       2019-09-19 00:51:13 +08:00
    @ChristopherWu …#6 可以。
    iceheart
        51
    iceheart  
       2019-09-19 06:54:11 +08:00 via Android
    @ChristopherWu #20

    是说 new 出来的东西最后要用 free 释放么?
    Rorshach
        52
    Rorshach  
       2019-09-19 08:54:31 +08:00
    我只知道官网视频里的 CTO 技术很高
    zhang77555
        53
    zhang77555  
       2019-09-19 09:15:07 +08:00
    看他们的目标是想让编码开发简单 100 倍, 然而计算机软件的世界一直都是很平衡的, 你追求某个特性的时候必然会失去另一个优势.
    ChristopherWu
        54
    ChristopherWu  
    OP
       2019-09-19 13:00:17 +08:00
    @iceheart #47 是啊,就是说人工管理内存 vs 垃圾回收
    ChristopherWu
        55
    ChristopherWu  
    OP
       2019-09-19 13:00:39 +08:00
    @sonicjam #44 正确的翻译应该是什么吖?
    ChristopherWu
        56
    ChristopherWu  
    OP
       2019-09-19 13:01:50 +08:00
    @zhang77555 #49 目标应该是重头设计,把历史积累的设计方案弄得更好。
    ChristopherWu
        57
    ChristopherWu  
    OP
       2019-09-19 13:02:02 +08:00
    @Rorshach #48 演讲水平也不错
    sonicjam
        58
    sonicjam  
       2019-09-19 13:26:20 +08:00
    @ChristopherWu #55 就“复杂性”就行,说复杂度别人还以为是算法
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     883 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 21:17 PVG 05:17 LAX 14:17 JFK 17:17
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86