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

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

  •  
  •   ChristopherWu · 86 天前 · 4482 次点击
    这是一个创建于 86 天前的主题,其中的信息可能已经有所发展或是发生改变。

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


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

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

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

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

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

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

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

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

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

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

    是说 new 出来的东西最后要用 free 释放么?
        52
    Rorshach   85 天前
    我只知道官网视频里的 CTO 技术很高
        53
    zhang77555   85 天前
    看他们的目标是想让编码开发简单 100 倍, 然而计算机软件的世界一直都是很平衡的, 你追求某个特性的时候必然会失去另一个优势.
        54
    ChristopherWu   85 天前
    @iceheart #47 是啊,就是说人工管理内存 vs 垃圾回收
        55
    ChristopherWu   85 天前
    @sonicjam #44 正确的翻译应该是什么吖?
        56
    ChristopherWu   85 天前
    @zhang77555 #49 目标应该是重头设计,把历史积累的设计方案弄得更好。
        57
    ChristopherWu   85 天前
    @Rorshach #48 演讲水平也不错
        58
    sonicjam   85 天前
    @ChristopherWu #55 就“复杂性”就行,说复杂度别人还以为是算法
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4312 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 43ms · UTC 06:24 · PVG 14:24 · LAX 22:24 · JFK 01:24
    ♥ Do have faith in what you're doing.