• 请不要在回答技术问题时复制粘贴 AI 生成的内容
huoru
V2EX  ›  程序员

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

  •  
  •   huoru · Sep 18, 2019 · 8461 views
    This topic created in 2608 days ago, the information mentioned may be changed or developed.

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


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

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

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

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

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

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

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

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

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

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

    是说 new 出来的东西最后要用 free 释放么?
    Rorshach
    Rorshach
    Sep 19, 2019
    52
    我只知道官网视频里的 CTO 技术很高
    zhang77555
    zhang77555
    Sep 19, 2019
    53
    看他们的目标是想让编码开发简单 100 倍, 然而计算机软件的世界一直都是很平衡的, 你追求某个特性的时候必然会失去另一个优势.
    huoru
    huoru
    OP
    Sep 19, 2019
    54
    @iceheart #47 是啊,就是说人工管理内存 vs 垃圾回收
    huoru
    huoru
    OP
    Sep 19, 2019
    55
    @sonicjam #44 正确的翻译应该是什么吖?
    huoru
    huoru
    OP
    Sep 19, 2019
    56
    @zhang77555 #49 目标应该是重头设计,把历史积累的设计方案弄得更好。
    huoru
    huoru
    OP
    Sep 19, 2019
    57
    @Rorshach #48 演讲水平也不错
    sonicjam
    sonicjam
    Sep 19, 2019
    58
    @ChristopherWu #55 就“复杂性”就行,说复杂度别人还以为是算法
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1529 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 89ms · UTC 07:20 · PVG 15:20 · LAX 23:20 · JFK 02:20
    ♥ Do have faith in what you're doing.