V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ChristopherWu
V2EX  ›  程序员

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

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

    鉴于完全的 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 Bullet—Essence 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  
       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   ·   实用小工具   ·   3851 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 10:28 · PVG 18:28 · LAX 02:28 · JFK 05:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.