MoonBit 的主要设计目标是解决现有编程语言的一些痛点,特别是 Rust 的学习门槛高和编译时间长的问题。它旨在提供一种更快速、更易用的编程语言,同时保留 Rust 的安全性和类型推断等优秀特性。MoonBit 还特别注重与 AI 的兼容性,使其更容易被大模型理解和生成代码。
MoonBit 在设计时考虑了与 AI 的兼容性,采用了平坦化的代码结构,避免过深的嵌套,以便大模型更容易理解和生成代码。它还集成了静态分析工具,能够实时检测 AI 生成的代码的正确性。此外,MoonBit 提供了易于编写的测试工具,支持全流程的 AI 自动生成测试,确保代码的可靠性。
MoonBit 的生态建设目前处于早期阶段,虽然包的数量较少,但已经有一些国内外的开发者贡献了库和插件。MoonBit 的工具链非常完善,包括 IDE、测试工具和包管理系统,这些都为生态的扩展提供了良好的基础。MoonBit 计划在 2023 年 8 月 18 日推出 Beta 预览版,届时语言特性和标准库将基本稳定,进一步推动生态的发展。
MoonBit 在 WebAssembly 平台上表现出色,生成的代码体积小且性能优异。它的语法设计简洁,降低了学习门槛,同时保留了 Rust 和 Go 的优秀特性。MoonBit 还特别注重工具链的完善,提供了强大的 IDE 和测试工具,使得开发者能够更高效地编写和调试代码。此外,MoonBit 的设计考虑了与 AI 的兼容性,使其在大模型时代更具竞争力。
MoonBit 计划在 2023 年 8 月 18 日推出 Beta 预览版,届时语言特性和标准库将基本稳定。随后,MoonBit 将在 11 月 22 日开源部分编译器核心代码,以响应社区的呼吁。MoonBit 的目标是在 2023 年底达到一万用户,并在 2024 年进一步增长到十万用户。长期目标是成为一个可持续发展的、具有技术竞争力的基础软件公司。
MoonBit 认为大模型时代将带来更多增量程序员,即那些原本不是程序员的人可以通过 AI 生成代码。同时,优秀的程序员将变得更强大,因为他们的能力会被 AI 放大。MoonBit 的设计考虑了与 AI 的兼容性,使得生成的代码更容易被审查和验证,确保代码的可靠性。MoonBit 还提供了强大的测试工具,帮助程序员更高效地审核 AI 生成的代码。
本节目由津津乐道制作播出
各位听众大家好这里是金金乐的博客网络和 RTE 开发者社区联合制作的博客节目编码人生今天我们请来了一位老朋友还请来了一位新朋友先介绍我们的老朋友狼叔大家好我是狼叔之前在 node 社区比较活跃然后写过三本书也叫狼叔对狼叔的书你们都收到了是吧上期狼叔来的时候我们还做了抽奖送大家狼叔的书也叫狼叔狼叔是 node js 领域的技术科学家
然后可能开发者领域的朋友都认识没有不认识狼叔的谁能不认识狼叔呢对吧哎
那我们的今天的新朋友呢是张洪波老师他是 Movement Beta 的编程语言的作者来介绍一下自己吧大家好我是张洪波现在是粤港澳大安区数字经济研院的基础软件中心的负责人我们基础软件中心主要做的就是一个开发者工具平台叫 Movement Beta 的粤兔编程语言以及它的一整套工具链它叫粤兔
对
因为兔子比较快这个可能当时还没有考虑到可能会找一个比较萌的因为编程员都会选个动物什么之类的像国外很多像 Python 对吧
都会想选个动物做吉祥物兔子本来就比较萌所以我们也考虑到这一点对 但是兔子大家还比较有好感你要叫个天蓬元帅这事就费了可以简单给大家介绍介绍你的这个编程语言是什么样的一个东西它解决的是什么样的问题
就是 Moombeat 这个阅透有成它是一本通用编程语言强类型的它就像我们日常用的 Python Go 这种编程语言一样它可以写任何东西是吗对它是个通用编程语言我们也支持了多后端像 Codling 就是跟 Codling 有点类似它支持 Warp Assembly JavaScript 还有我们可能过两三个月就会推出我们的 Native 原生后端所以它的应用场景应该是和 Codling 和 Java 高度重合的
当然要解决什么问题呢就是我们希望我们讲作业门编程语言它是一个功能量浩大的需要很长时间来投入的而且一开始的话普通用户他没有去动力用你这个编程语言所以我们会想到在某些场景上会比现在解决方法会更好
所以当时我们做这个一个出发点就是考虑到 WebAssembly 这个一个指定集它是一个比较新的指定集大概是在 17 年有几个大的厂商制定一个指定集呢虽然现在主流的编程员都可以编译到 WebAssembly 像那个 CiJavaCoding 都可以但他们的编译出来的性能不是很好然后体积也不是很好所以我们想我们作为后发者如果在这个平台上我们是会有些优势的所以我们的第一个后端就是 WebAssembly 后端我们希望在这个
后端上我们深圳的体积很小然后它性能也很好然后事实上也确实证明到了经过我们的推出就是我们在 Web Summit 这个平台上确实会比现有的主流决方案好很多嗯
所以我们就推出的第一个后台是 web assembly 你等于是原生支持对对对我们一开始就围绕着 web assembly 怎么样编到这个平台会更好但是我们个人觉得我们是一个很有意义的开发者平台就是我们不仅仅只是止于这个 web assembly 就是我们通过这个 web assembly 来吸引一波早期的死忠粉中式的用户然后我们会慢慢的切入到其他的生态但
但还是这样一个思路那怎么描述你的面向的用户的画像和你语言的使用场景就一般来讲所有人要做一门新的编程语言都是对现有的编程语言不满不是很满意对吧如果新的编程语言都已经覆盖了你的
大部分需求的话就没有必要去发明编程语言了毕竟这不是一个简单的体力活对的对的就是我个人做 Mumbiz 的一个出发点就是就现在的主流编程语言就没有我特别让我觉得很棒的一个编程语言像但是我觉得 Rust 是最接近的但是还它有些问题我想把它给你真的敢说吗哈哈哈哈
我觉得我讲这个还是有功能的就是 RUS 它有很多很好的特性啊比如它有安全啊有内心推断啊有模式匹配啊但是它有一个就是它程序员要很多时候它学习门槛实在太高了比如它的那个 lifetime 是生命周期对这两个通点一个是它的生命周期这个学习门槛很高另外一个它的编译时间实在太长了对
就我们想如果我们做一种编程语言可以解决这两个问题就是以后编程希望能快不是快 10%20%快 10 倍 100 倍这是一个想解决的通点另外一个就是说我们还是 RUS 这么多好的特性还是有但是我们想不要以还是要用 GC 做自动对层管理
这是我们一个比较大的出发点就是觉得在现有语言上可以做一些改进朗叔我知道你是他们的顾问是吧你从一开始就在跟着他们的这个语言在往前走看着他们发展起来的那你作为一个开发者对吧他是创造这个语言的你是使用这个语言的那你作为一个开发者你怎么去评价他们的现在的这个产品和阶段嗯
就是目前我也用了挺长一段时间了我的感受的话第一个是语法更接近 RUST 然后它的那个设计哲学调用的方式更接近于 Go 我也觉得它有点接近于 Go 因为你在 RUST 里面的话比如说像智能指针那很多那种复杂的或者用 Trend 实现的一些基础类型的话会非常复杂
在 Moonbet 里面的话基本上把这些问题给屏蔽掉了所以在看 Moonbet call 的时候的话会非常的舒服在写起来的时候其实也不太过度的需要去注意比如说它实现某个 trint 这个大家都差不多但是在网内更复杂一些的那些类型推断的地方的话我感觉没太感受到那种点所以在复杂度上会降低了非常多对对对这是老师说的很有道理就是我们 Moonbet 在
在语言特性方面适合 Ross 和 Colum 但在工程方面我们是和 Go 语言 Colum 就是我觉得
购源可能笑话是道道之简但是他在工程管理下包管理他的一些工具还是做的非常优秀的所以我们对对对大概是两方面的一个结合吧对然后那个里边的话像那个函数式相关的内容其实也非常多我感觉可能是从欧凯姆的部分应该是一脉相承的对对对但是好像变得更加简单了对就是是这样欧凯姆其实对很多元度又很
很深的影响像 Rust 它最早的编译器就是第一个版本的编译器就是 O'Connor 来写的它的作者 Gridden Hall 其实就是一个 O'Connor 开发人员我自己个人也和 O'Connor 很深的远远我在读博的时候是 O'Connor 的核心开发人员
所以很自然的就毫无疑问我们肯定会受 Occam 的影响但是所以我们会吸收了一些 Occam 的一些比较优秀的成分像 Mors Pippa 但是我们又不像 Occam 那么过于含兽式就是我们还是希望它成为一个主流编程语言所以我们也会有 Four 循环啊也会有 Break 啊 Continue 啊就是这种你的工业语言里面会有的一些成分对
就是感觉的话之前可能是像那个 RiskCube 的话其实已经是相当流行了但 RiskCube 上手难度的话还是要比 Movement 高一些因为大部分人的话其实像面向过程最简单了然后其次面向对象然后面向函数式这种编程还是很多人接受起来可能还有一定难度我理解的话比如说像借鉴了 RAS 像这个函数定义 block 这个做法还有这个 trint 这些特性写起来会变得更简单
就这个地方应该是你这设计的时候应该是有一定的降级吧就考虑到更多的普世性不能说是降级但是蒙蔽肯定是受我之前做的一门 risk-revealing 语言影响的但 risk-revealing 语言它有一个问题就是说它的工具不是很好就是它的比如它的 ID 啊嗯
呃我们当时做这个编辑然后过了好多年可能两三年三四年以后才会有一个这个勉强凑合能用的一个 ID 所以后来我们在做 Mobi 的时候考虑的一个出发点呢就是说这门语言设计的一开始要让你的第三方工具
很好搞这个其实也是受够语言的一个影响所以我们在推出这个 Mubi 可能大概一个非常早的版本就是 Alpha 或者 Pre-Alpha 版本的时候我们就第一时间就推出了这个 IDE 所以我们在选取语言特性的时候会照顾到某些特性是比较好做 IDE 好做经济分析的我们就保留下来哪些语言特性是不太好做 IDE 的我们就可能就会考虑给去掉当时为了好兼容这个 IDE
来做的这个静态分析相对友好的这样一个架构但是今天我们的节目的主题是大模型时代的编程语言那说到这个好像又无心插柳了一下是吧你为了兼容 IDE 做的对静态分析友好的这样语言是不是到了大模型时代好像大语言模型也更容易理解对对就这两个其实是不重组目标是一致的目标是一致的就是
就比如说我们会有一个按道理基础叫 Risk 里面它那个函数的类型推断呢其实你在顶层的函数类型它也是可以推断的对吧就是它类型推断做的特别强大但这个呢反而不利于这个 ID 的开发因为 ID 的话我希望这个在
毫秒级就是你用程序员修改一个函数在一个可能毫秒级就能够给你一个正确的一个提示但如果你是顶层函数都是需要类型推断的话很可能就你上面的一个类型改了以后它的错误要传到很远很远
所以我们就考虑这个我们就会做个取舍就会要求你的顶层函数就可能要标注你的类型但你的本地函数就是 local 的那个函数还是可以做了性推断的这样的话我们就可以非常快速的构建一个这个函数级别的上下文嗯
你的近代分析可以做的非常的增量式的非常快今天我们讨论这个大模型时代的编程语言就让我们想到了就是语言和我们计算时代的这样的一个渐次上升的这样一个过程刚才我们录音之前也聊这个问题从一开始我们用机器码编程
后来我们用编译器对吧知识编译像 C 等等这些我们来编程好像是省去了很多机器码编程的复杂性对吧然后后来由于大家觉得好像这些语言要下降
下降到普通人也能用然后我们又出现了很多所谓的脚本语言像 PoR、P2P 等等这些到后来随着我们的计算的使用场景越来越多我们又到了这 Java 这种自解码的时代就是所谓的一处编译处处运行但是这个现在就成一个梗了后来又有了像面向互联网时代的这些 Go 等等这些语言的诞生那今天我们讨论了两年我们进入了一个
所谓的大模型时代好像在大模型时代我们的编程语言也会跟着这个计算的变革来做相应的变革和调整甚至会出现一些新的编程语言对我不知道洪波怎么去理解这个计算时代与这个
编程工具之间的这种渐次上升的这个关系呢对就是我们阅图这么编程语言这个时间点和 ChargeBD 几乎是重合的就是我们大概是在
2022 年 10 月份立的一个项目那差不多然后 11 月份就出来插在这个页里然后我们看到这个它生成代码效果很好所以我们就考虑在大模型上怎么让这个编程语言更加友好和经济的生产出很多这个高质量的代码然后我之前也看到过一篇英文博客讲得很有意思说大模型会不会 kill 掉 Python 他的观点很有争议他是说 Python 的主要优点的可能
在代码形态反而显得不是很重要比如 Python 代码它可以显得很简洁但是未来的代码大部分都是由机器生成的所以简洁性可能并没有那么重要但 Python 的缺点就反而会比较突出比如说 Python 它的代码很难做一些静态的验证和 review 因为大量代码是由机器生成的时候我怎么保证这个代码的可靠性所以需要大量的工具进行 review 和测试这点你拍的它的动态语言对吧它可能会有些差距然后另外一个点就是
Python 它的性能不是很好但是说你之前的话我说 Python 因为性能不是很好但我很简洁我也能接受但现在我不需要那么简洁是不是可以大量的生成代码是不是可以获得一个更高效的一个用复杂度去换一定的效率对对对所以 Mumia 的考量也是我们在想就是说我觉得当这个是一个 open 的一个 problem 就没有说一个很明确的一个定义
就我们的考虑的就是说就根据我个人的判断就是说一个一个编程语言它本身可以让机器能够就是我们的传统的静态分析工具就也叫它也是一种智能叫 code intelligence 代码智能对吧它如果它能够快速让传统的这种代码智能理解我觉得它应该也会让大模型来理解所以我们的选取的一些语言特性会为这个大模型作业考量比如说举个例子就是我们的
整个代码的这个结构是一个非常平淡化的结构它没有什么很复杂的 hierarchy 它不会有层层嵌套就是我们观察这个大模型如果一道引的嵌套太深了的话它就会有遗忘对对它会遗忘所以我们会让这个尽可能平淡化的结构它平淡化的结构你又不能丢失掉一些某些语言特性
对吧所以这是一个考量另外一个呢我们希望这个我们的这种传统的这个代码智能可以和那个大模型智能来进行交互这其实我们已经用到了就是说比如说大模型出码的时候出了很多代码然后我可以实时的用传统智能来检测这个东西对不对嗯
所以就对我们这个 ID 的因为它这个每个 token 出的是一个一两个行买就出一个 token 所以让你非常增量的一个语义分析所以我们希望我们这个编程语言能不能适配让你快速的做一个
增量的语义分析近代分析功能对这是我们的第二个是然后第三个就是测试我们非常重视测试我们甚至是把测试的 test 作为一个关键字来就是非常让用户很容易写这个测试而且这个测试呢它的那个用户只需要写你想观测哪些行为然后我们会有第三方的工具来帮你就是不是第三方就是我们集成这个工具会帮你你把想观测的行为自动帮你深圳它的结果然后人只需要进行审核
然后我们还有一个我们现在已经推出了我们有一个测试覆盖力工具这样的话整个测试可以做到一个全流程的 AI 来自动深诊这个测试 AI 根据你的测试覆盖率知道哪些东西没有被测试掉它会深诊我要观测哪些测试点的一些行为然后人只要审核测试的结果就可以了然后通过我们做了一些相关的工作听上去就是你原生的把自己的语言和大模型的能力就结合在一起了
所以我们希望在这点上做的好一点现在很多就是我让他生成一段别管生成 Python 还是生成 Go 的然后他做的事情呢其实就是适配以前的那些代码的例子然后他出 token 吧其实就是给我做出来但是在这个时候呢你也会往往会看到他会出现一些错误而很多的错误会在就像刚才洪博说的类型推断啊等等这些问题上因为它的复杂性更高嘛就是它很难通过 token 预测的
这种方式把它非常完美的生成出现它会有一些幻觉对会有一些幻觉或者是叫二一性它拿语料去训练的所以它在设计语法的时候其实并没有考虑到说是为了机器更好的去出码去做准备的所以在这个 MEMBEAT 的时候你们就原生的考虑到了这个问题对而且事实上也确实有效果一般来讲这个大模型时代这个哪个效果好就是说因为它的语料很多
但是我们 MUBI 现在几乎是没有什么语调因为还是一个非常年轻的编程语言但是我们用开源的 Lama3 然后加上我们这些静态分析工具其实已经可以一次性的就可以生成语法运行类型正确的代码可以跑起来大家可以如果看我们的 ai.mubilang.com 就可以做一些测试都已经是可以直接运行
平时自己写的时候比如说写一段代码然后直接生成测试然后一点测试那整个流程还是体验非常舒服的这也是我好奇的一个问题你像他是 22 年的 10 月开始立项做的那我可以理解当时的大模型可能还没有学习到他这门新的语言现在也没有那么多所以他现在比如说我用一个现成的代言模型比如说我用 GPT 搜对吧我让他生成你们的代码
他现在能做到吗可以可以没问题但是你要前置要稍微做点工作就是我们有一个形式化的 gramma 形式化的文法你送给他一种简单的代码他可以一次性生成证据就是在 pront 上去做一些对对对然后呢你再做一点这个我刚才说的就是和你的微条不是我们那个意义上的微条是说根据这个 ID 的这个比如说一个 A 点上一个什么什么方法他生成代码方法可能没有我们根据我们这 ID 的反馈的结果给他一个证据的方法
就能够一次性生成一些正确代码是没问题的它的翻换能力很强我们甚至在我们开发这个 Mubi 的这个标准库的时候用了 Copilot 就 GitHub 的 Copilot
可以一次生成几百行测试代码一次通过印象非常深刻没有任何的微调我要用其他的语言生成测试动力的话很多时候是跑不通的上次 GISC 的时候洪博直接现场给我演示的直接拿 AI.movement.com 直接在上面演示非常惊艳目前我理解的话整个 Movement.com 生态上的
包的话相对来说没有特别多应该是很少所以在这种情况下能够去出码精准然后高效那我理解是跟这个底层设计是有直接关系的对我们希望它尽可能简单但简单其实是一个很难的事情就是说你把一些最重要的给留下来一些不必要的给去掉对裁剪其实还是挺重要的
就是因为最近某个语言也发布了嘛就是对比一下特性的话就是 Movement 会更内敛或者说它的统一性会更好就是语法非常克制然后这由于语法的话又能够保证这个类型推断和用起来更舒服我理解这个对
对那个 AI 出码应该也有一些帮助对对对就是我们就是和 Risk 也不一样就是我们希望这么编程预演当中是我的希望是有很多很多人用的所以其实我们现在我们最小有高中生在使用 Mobi 做开发对对对所以我们就希望这个它的门槛不要太高就是不要做一个就是我们希望做一个在某一点上做到极致的但不追求大而追求在单点上有非常优秀的表现对
感觉的话可能是你在学术上和工业级语言做了一个平衡对对对那它生成的代码量会不会要比普通的我们现在人类写的代码要更大一些比如说我同样实现一个功能我用 Go 去实现和用 Mubit 去实现它是不是代码量有点不一样就这样就是 Mubit 虽然我们虽然说它简单它该有的还是有比如说我们也有范型有 trade 就是说这是抽象机制我们是提供的还是有抽象的是吧
不是平铺出来的我们这个其实它的 1.0 版本应该是不属于任何的主流编程语言的抽象能力的我们有 MoshPay 有 Find 行有 Trade 都有了目前在那个 Core 包里边像 ADTR 是做那些各种优化的话我理解是已经验证了这个问题的
就是刚才我们说的这些特性不输任何主流语言对对对我们在那个核心的包里面对对对都已经完全的去实现了对对我觉得我们的语言特性应该是不比 Go 1.8 这种版本的少的应该是差不多的对
当然一个编程语言更重要的除了我们说的它的基础的这些特性我们的设计观这些东西以外更重要的可能还有一个生态社群的这一块的支持刚才你也提到了现在社群的包可能还会比较少毕竟是刚刚开始这一步下一步有什么样的
打存和计划来丰富生态社群这方面是让更多人来贡献第一是在上面做开发第二可能会要给他去贡献一些东西他可能会越做越大这个东西好像又是很多很多的编程语言能够上一个台阶的一个关键要素这个问题你想怎么解决
就是我们经常会在论坛上看到有些人说这个编程语言不难做难道是生态就是观点非常非常普遍但其实我觉得这个观点是有问题的就是说其实是因为你的编程语言为什么做不起来生态有两个原因一个是可能你缺一个金主或缺个 sponsor 对吧另外一个我觉得很大原因是因为这个编程语言没有什么优点你很难吸引比如我已经有一个金
经过很多测试的 Java 编程语言为什么要用一个你这个一堆 bug 的一个新的语言对吧你要给他一个理由啊对对我们就希望 Mobile 确实是有某些优点靠某些特性来吸引到用户去用的所以这里面我就有几个优点就第一个优点就是我刚才在一开始提到就是我们在
Uber Summit 这个平台它的代码的体积和代码的性能是可以得到一种极致的会比现在主流解决方法多好这是第一点然后第二点我们希望这个语言本身就非常的优雅愉悦就是说你的工具会很好用为什么我们开源了我们大概是两三个月前开源了我们的核心标准库开源以后让我觉得非常宽慰的是说整个标准库基本上都是由外面人来写的
不是我们自己写的就是说因为标准库它需要很多不一样的技能为什么我们在这个语言这么早期就会有人愿意去写代码呢它是我觉得有两个事情我做的比较好一个是我们 ID 体验基本上和那种 R 流的编程语言
已经是打平或者更好就我我的感觉就是我们的 ID 呢可能会因为你专门为这个变成语言去做了一个 ID 给大家来用对 ID 插件对对 OK 就然后我们的测试也做得很好为什么我会把测试做的方那么重要是因为我们也预计到我们的很多库呢不是我们自己写的因为我写不了那么多库所以我但是我们希望保证它的质量也能得到保证所以让这个测试非常非常容易写嗯
这是我们做了很多前期的工作因为成全可能现在最讨厌的就是写测试对所以我觉得只要我们在某些领域有些非常闪光点的话就会吸引人来去做这个事情比如像很多语言都是这样像 Rust
Ross 他为什么那么多人有那么多不道者为搞这么一篇人员就是他有一些非常吸引他的一些特性这是我们我觉得我们还是有信心的对吧更多的是用一个做产品的思路来去做一个编程一二不是用做学术的思路来做对而且现在那个 backend 其实支持已经相当好了就是第一个 web assembly 的话其实我在服务端在
在页面里边浏览器里都可以用所以这是一个点第二个的话是它可以做 JS 做后端所以转 Node 或转其他的这个生态是非常的容易的然后还有一个的话是 Movement 其实有一个非常好的一个那个 Pipeline 就是它转任何语言的话它的基建前面的那些共享的对像 IR 什么这些的话其实都已经现成的了只是说
想转有没有那个需不需要投入对而且我们估计会支持三个后端一个是 Warp Assembly 加 Square 然后一个是 Native 可以编辑到机器然后我们刚才说的就是比如说 Warp Assembly 加 Square 我们工具也是配套的比如包括你的调试调试功能我们直接设断点是 OK 的你想想一个编程语言
在一年半两年的时间内啊就支持调试这几乎是不可想象的对啊就像 Risco 现在还不支持调试哈哈哈哈就是说啊其实我们花了很多时间让这个工具好做嗯对那个 source map 什么那些东西都有都有我们那个
昨天还是前天带了马云 MaskCode 我们就在搞调试把这个在 MaskCode 上给跑起来对 MaskCode 也直接原生的支持了你对 支持阅图非常感谢昨天发布会不说了吗是因为我们应该在这一期节目之前会跟自己 MaskCode 的团队去聊一期节目正好在形成了呼应除了前面讲的这些基础的东西以外 Movement 应该还提供了包管理工具
对就是我们在一年半的时候我们已经有一个网站叫 mooncakes.io 其实我们现在包很少但是已经有一些了其实不光是有国内的也有国外的像我看到一个法国人写的一个加密库还有日本人还有日本人还有一些插件已经有一些了虽然但是还在一个强宝中对
就是感觉你们会把工具链的这个完善放在了前面对因为你要吸引别人去做这个事情我给你举个例子前不久一个老外开发者他给 Mumbi 提供一个 Warp 3.0 插件他跟我说他还有另外一门语言叫 Virgil 应该是 CMU 的一个教授写的叫 Virgil 这个别人语言他和 Mumbi 比起来
见不出语言特性就是我们的 ID 实际上比他强很多其实还有一个点是这是一个鲜艳式的东西就是洪博老师因为以前欧卡姆核心公园圈者他是 Resquibs 作者所以他积累了大量的这个编程语言方面的这个经验所以他在设计的时候他上来的话其实没有先过多的去想那个怎么去设计语言而是说
把这个生态的东西先做好然后语言不断的迭代然后去把核心做好一步一步走这个做的是我理解算是鲜艳式的就因为你之前的经验给你提供了这些东西对对对然后我们希望的就是
我觉得要吸引用户来用一定要在核心上面要做极致就是说性能方面要做极致就是你的可能语法堂多一点的但是它是解决的是个阳点但是你通用点一定是在性能方面要做的比别人好很多其实我更关注统一性统一性可能用起来体感会更好一些我是一个语法堂的强烈反对者尤其滥中语法堂的强烈反对者
尤其 JS 这里边完全不行了我已经因为就是到了 AI 时代可能我们就真的不需要这么多余法堂来提高我敲码的效率了 AI 帮我去解决这些简单重复的这种搬砖工作了是这样狼叔觉得现在这生态怎么样
我个人觉得就是第一个他们设计的是非常克制的在语法上这种追求到极致了这个目前我理解是这样第二个的话是在工程基建上做的比较好对因为我觉得这是他们最重要的一点他把工具链做的非常好对他把那个像他那个 Pepilana 构建的这种每个都是模块化的然后可以随意扩展的另外的话是像那个
这些包管理工具做的也是配套的因为上来能做 IDE 能做测试能去把这个工程基建做好的这种这是最基础的而且是它后面想快速迭代比如说增加个语法能够快速迭代的一个基础然后有了这些之后其实他们还做了一件我认为说可能是普惠了很多程序员的一件事情就是洪博老师因为本身他是
计算机领域技术大牛然后他对这个基础编程语言这部分理解非常深在 B 站呢像那个 GitHub 上有开源这个对应的课一些课程对还有这个 Movement Beta 相关的我知道的官方文档然后还有一个新的一个课程对对对这些的话做好了之后对于开发者上手会变得非常非常的简单这个我同意因为我总觉得去做一个编程语言就是这种基建项目的这个创始人
他必须得自己就能讲自己能输出这才是最重要因为你要建立你的影响力大家对你的信任等等这些对我们一开始就我刚来研究院组织这个技术软件中心的时候因为当时就没有人他为了获得我们的影响力所以我们开了一门公开课就是关于程序员设计的然后因为这个我们就慢慢招到了一些学生过来做这个事情其实也是一种互惠互利的一种
一种欣慰对对确实是而且那个因为洪博以前在那个 Facebook 所以一些公主考的实践的话其实也都是有这点过来的对让我比较欣慰的就是说我们吸引到很多做这种心理学竞赛的学生对来做我们的一个早期的贡献者让我觉得这对你又是一个非常大的认可对对我们前不久还去那个杭州一个 APIO 就是一个亚洲的一个心理学竞赛我们还专门给他们去讲了
几个小时的这个阅图的也设计的原理啊也是因为像很多信息精彩学生甚至包括以前的国家队的教练就专门搞这个信息精彩的推荐我们过去给他们分享一下因为蒙比就阅图它本身用了适合用来描述一些复杂的数据结构嗯
这个和那个 MOI 是高度契合的回到这个大模型时代也有很多朋友的论点是什么呢可能大模型时代之后程序员慢慢的就不重要了因为只要你会讲故事可能就能 PUA 大模型写段代码出来对是吧洪波老师怎么去看这样一个观点我觉得这个就跟通信行业是一样就是说在早期的话你可能需要了解这个怎么通信的但后来随着这个通信越来越成熟以后可能只需要
就需要了解很内核的就不是很多了可能大家只需要了解一些基础的原理但通信这个东西还在它可能还在不可能会没有对吧同样的话在弹幕型时代就是一些简单的功能可能还真的是就是可 AI 经营一站式的交互就完成了是没问题的但是一些复杂的功能
他 AIS 的代码肯定还是要人去审核的所以说我觉得大模型对程序员应该是从两个角度来看嘛以后他会带来更多增量的程序员就是说以前不是程序员了因为有了大模型以后他变成程序了他可以用写写代码呀他只要能看懂就可以了另外一点就是说呃
厉害的成员会变得更厉害因为他的功能他的能力会被放大了但是这里面会有一些就是一些比较平庸的成员可能就可能会遇到一些职业危机啊可能是客观存在的这个事情对
就是就跟通信的发展一步一步一样一开始可能你还在理解新定理解这个物理层的东西后来大家反正都是实现协议对对对之前跟郁博也在聊就是他提了一个概念叫产品工程师就是我们现在还分前后端或者什么这种工程师分类对以后的话是说一个工程师有这个借助 AI 的
能力然后同时有一定的产品思维这种的话可能会更受欢迎一些真的是这样就比如就拿我自身的例子来做个前不久因为我们要写标准库就是方方面面都要设计的里面有些是密码学相关的东西其实我个人是不太了解的
接触 AI 我很快知道个大概不是光是能知道大概 AI 会给你解释这档代码是干什么用的然后它会给你推荐哪些论文然后你去你找你把那论读下来它会给你解释这的话极大的提高了学习效率个人程序员的效率对这个的话辩证的去看就是可能是因为你自己的
知识体系在那所以你在接受新的东西新东西的时候拿你的知识体系去辨别它和 AI 俩一结合是会提效的所以 AI 的话我理解是对厉害的人会越来越厉害是给厉害的人补漏的补漏到你一块的对但是如果你没有判断能力的话可能你都是漏你都补的会引导你
很多错误的方式我觉得狼叔说的很有道理因为 AI 还是有的时候会胡说八道还是要有判断力狼叔对我们的程序员越来越多的面相大模型的我们叫挑战也好叫机会也好有人觉得是挑战有人会觉得是机会对于这些程序员们有什么建议吗转行去 KDD 就是
卖保险开玩笑开玩笑就是我理解啊就是还是要有一个积极的心态去学习的就是可能这个行业 AI 进来之后会有一个比较大的一个变化比如说我们现在的话可能是三个人去做五个人的活发四个人的工资这是他们讲的三四五
然后还有一个是 1234 就是我们现有的流程里边有第一步第二步第三步第四步比如说测试啊研发什么这每一个阶段在阶段里边去做体效这种的话其实不一定是对的但他当下只能去做这种演进所以在这种情况下会搞得大家很不舒服比如说让前后端去融合然后前端做一部分后端的事情后端去简单的去搭一些面或学一些面这种情况下的话它是一个可能是在
生产力或者说这个大方向还不明确的时候一个尝试那未来的话我理解可能会有更多的这种更明确的真正 AI 式的这种东西产生出来比如像 Movement Beta 的话其实是非常典型的它不是把
已有的这个物料或者语言这种东西拿过来直接用它是真正面向 AI 设计的时候面向 AI 思考的这种方式来做它就会变得更快所以积极拥抱这种的话我理解会好一些另外的话是我们的思维方式可能也会变比如说现在的话我们自己写代码可能是有一个增长改查那创建和修改俩表单基本上差不多那我可能要抽象一下写在一起怎么抽象对吧可能 80%的东西都一样的但是在 AI 时代可能不一定
我就做两个怎么样我新建的和修改的表单就做两份然后直接 AI 生成出来往那一丢就好了所以如果能接受 GC 生成的这个概念的话其实对于很多思想上的变化对于效率来讲也是能有比较大的提升的所以我在想说这种是不是有这种可能性就是以前我们都在想怎么少写点代码对
后面我们可能在想怎么有效的指挥 AI 帮我写代码其实是在这个转变当中因为有的人跟我说一个做算法的人跟我说他可以 70%的东西全部让 AI 给他搞定然后我后面问了一下 Python 的片段代码
然后平时处理一些数据那确确实实是能做到的所以我其实也在反思我们整个前端或者整个编程领域的话其实也会应该更加去高效然后改变这种思维方式比如说最简单的那个 ITP 协议里边其实做 RESTful API 是非常复杂的比如说最简单的七个那种标准的那种解构 ITP World 非常麻烦的那我如果只用 POST 的
去处理所有的接口其实是够用的像那个 MaskCode 的前期版本里面这种 pose 处理所有的请求没有毛病但是我们用的时候真的需要去 care 因为以前我们是大家协作人和人协作现在改成人和机器协作的时候我只需要一个 SDK 我只要调条我只要告诉他你告诉我方法名叫什么参数是什么就好了所以很多事情因为这个更多是语义上的理解当 AI 都能理解这些事情你也不需要语义了
对所以像孟贝的这种他提前去做这种类型处理的话他在语法设计层面就能够去规避很多这种风险我理解这种是我特别愿意看到的对其实我们讲刚才郎叔说到很多代码是由 AI 生成的但是人具有这种判断力审核能力是非常重要的我举个我的健身的例子就是我
之前用 AI 给我补全一档虚拟机相关的代码但是他居然补全对了我非常感慨就对了然后后来那段代码我调了一下午我也有这经历这种咱们大家都遇到过因为它那个边界加一没有加一可能别人写的虚拟机可能是不需要加一的我那个刚好需要加一它这个底层代码是非常难调试的
所以需要人的一个审查能力这个语言容易 review 它的正确性周六我会在那个决定会有个分享那个我就会讲说 AI 和程序员有一个类似于恋爱关系的这种感觉就是你前期很甜蜜用着是非常高效然后后面你发现他坑了你几次然后你可能不一样了然后后面你可能转变方式然后怎么处理相处会更好甚至比如说形成一个家庭或者什么什么的这种可能会有这种变化这是狼术的恋爱过程哈哈哈哈
而且最主要的其实是知识体系的建设所以我觉得说 AI 和学习两方面都要重要的 AI 时代下这个代码 code review 尤其重要有没有可能拿 AI 用一个 AI 写用另外一个 AI 去 code review
有可能啊现在的多元 Agent 其实已经有了有类似的这种了其实哈巴上已经有那种我们 Mumbi 的那个 call 里面就用到叫 Rabbit 的什么 AI 的自动关系审核的工具嗯已经有了但是好像确实没有办法完全
取代人的对这个代码的 audit 对特别是对一些高度重要的可能场景肯定是要人来 review 的因为那个非常典型的 GC 那个 GC 是你能接受不完全按照你的行为去
去设计出来的所以这种的话它不是严格的这种比如像商业行为我 A 就是必须是 A 这种的话其实并不是那么适合就是程序员更习惯说我给你一个指令给我生成一个确定的结果对但是 AI 就是反了程序员的职业了对这是很多程序员理解不了的我那天遇到一个项目这个公司呢他知道 AI
他自己也有一些项目在做但是就是那种传统公司他其实对技术有没有完完全全的特别的理解这种公司然后我们去看他怎么去用 AI 的他是拿大元模型当函数去调那你显然就会出现很多不确定的事情因为他每次回答他都不一样哪怕你去放 Jason Mulder 或者这种他也不一样甚至 Jason 给你的字段名有时候他都会
有幻觉他就会错这时候你后面也可能要加大量的教研这种过程但是他并没有加他觉得该往同学就应该是确定的那就废了这就废了就会有这个问题所以我觉得说那个像
AI 领域的话应该是专门为 AI 去做一些事情可能更符合他的思维方式推导方式这个可能效率会更高而不是 Legacy 这种已有的这种里边去往优化这种可能不太好
OK 这个应该会我觉得应该两方都会有对但这种我觉得机会可能更多在小公司可能大的创新会出现在小的公司对对对因为比如像微软这种体量很大的事情他可能更乐于在已经有海量的 Python 啊
这种代码用家做一些增量式的创新因为这样的话收益可以马上看到但是小公司可能会做更容易做一点更激进的就我们完全有 AI fast 的开发平台像国外的像 Curse 这种 IDE 会有文贝特下一步有什么样的计划吗对我们接下来安排还挺满的我们可能下周就会把我们的构建系统给开源出来构建系统就是你的 Maker
然后因为我刚才说到就是我们现在为什么库很少因为我们主要是因为我们语言还在一个快速的变化中所以我们预计在今年的 8 月 18 一个好好的日子大概记住但是我们会有一个 Beta 预览版这是什么意思呢就是说语言特性我们就基本上就稳定下来了就不会有一些破坏性的改动然后我们的标准库呢也基本上稳定下来了就是说后面会继续增加一些 APM 但可能老的就不会再删掉了所以这时候我们会做一些大规模的推广
这是第二个时间点就是呃 8 月 18 号然后我们会在今年的 11 月 22 号就是我们公司每年一度的一个年会呢会开编我们的一个编辑的一些一部分的核心代码这的话也是响应社区的一些呼吁吧就是说希望有一些公开透明的一些措施对但是这一年的计划都做完了对然后我们啊虽然我们编辑员还是一个早期但是我们还是比较有期待的比如我们现在可能呃
有小几千的用户啊但我们希望今年年底呢我们大概能增长到一万左右的用户然后明年我们希望再上一个台阶有个十万啊这我觉得我们这个约定员就算起来了后面就当然更长远的规划我们再看对吧其实现在那个应用场景上已经有有一些不错的场景了只是可能我们不一定知道比如说像
我前一阵不见了个那个微信群吗在那里边他们有同学用那个开放手表上的用户会的开放手表上的应用非常的有意思也物联网方面的对对对是这样的我觉得这个事情呢就是做个编程语言其实是一个相对来说是一个比较
如果有很多人用的编程语言是一个比较宏大的学习我个人觉得作为一个比较大的事情它要成功的可能需要天时地利人和三个要素都要齐全个人能力只是其中的一环天时地利人和我觉得在这个大环境下其实跟我们也是比较配套的我们说天时就是在这种科技经济的一个大背景下其实国家也需要一些真的在技术软件方面有一些呃
能力的对能力突破这是一个大的政策上然后地利呢我们所在的这个深圳市政府也是非常的一个高效对我们的支持也是很不错的然后人和上面我这里特别提一下就是我们有一个非常非常不错的团队就是也让我觉得这个事情肯定能做成一开始我来的时候就其实就是我一个人然后慢慢的招人然后我们招到一些
非常非常非常优秀的年轻人而且他们都战斗力很强所以我觉得有这么一个很强的团队是可以把这事情做起来的因为这个我们还是要聊一下这个 MovementBait 其实是一个国产的因为洪博之前一直是有一个想法带领国内的基础软件往前走一步我理解这个其实是一个非常重要的一件事情
国内的这个语言的发展的话整体上学术论文各方面比较多但实际上这种真正落地的实践然后这些更领先的东西可能还没那么多对这里刚才老师说的有点道理就是这里还有我自己一个个人的一个想法就是像我们国家过去几十年高速发展其实已经有很多这种体量很大的公司了像 BAT 啊或者说自己啊
但是我们其实在硬件方面我们有一些非常有技术经济力的像大疆啊像宇宙科技啊非常有技术背景的公司像在我们在软件方面其实缺少这样一种真的是技术让人觉得幸福的公司其实我们所以 Mumbi 我们是想让它一个可持续发展就是说我们这个但是我们起点是一个 cover 工具像微软一样它起点是一个 basic 的一个解释器但是我们最终是希望它是可持续发展的就是说这个东西能做成一个
它能够我们在有些工具店方面或者说会一些盈利服务然后我们最终做成一个非常有竞争力的具有软件技术背景的一个小美的一个公司这是我们的一个最终的一个目标对然后之前我在那个推特上其实我还调侃过那个洪博就是他是因为他背景非常好是清华大学然后并大的这个硕士然后一直在 Facebook 然后 IDA 这样的公司去做事情
然后我感觉的话他是憋着一口气是想把自己写到这个历史里面的这种人 OK 因为确实是基础软件这一 part 你更需要一步一个脚印的去踏实的去做因为你不累时的话你在上面在别人在你在上面累东西的话这些事就很难讲对而且国内的话有一个非常好的氛围大家是在做国产化比如国产化操作系统国产 DB 但国产
语言这方面的话其实是是一个需要探索的一个领域是而且它更加复杂对因为那个你像软件的话我自己的分类分应用工程师和系统工程师那我们是属于典型的这种应用工程师但是技术软件是属于这个系统工程师这个范畴的对就是
其实我个人我觉得我们经过因为之前的话可能两年前因为我都在国外工作可能还没有那么有信心但是经过我这两年在国内的深入工作其实我觉得我们的人生有这个水平的但是说我们的理想
领导层可能很多人他没有那个一个 ambition 没有那个野心去就觉得我们也能做出甚至比微软还更好的这样一个开发者工具他没有这样一个意识到这一点我个人觉得其实你不要看比如像谷歌对吧谷歌他花了几百个人搞那个大臣编程语言搞了十几年其实那个编程语言我觉得他的整个的设计都是有很多很多问题包括他的实现他的那个技术功也并没有让你觉得是一个高不可攀的一个存在
我觉得如果我们给同样生殖口少很多的资源可以做的比较更好是没有问题的挺好所以洪波那场那个风元不在里面提了一个问题就是我为什么愿意做那个 Move Beta 的开源顾问其实有一个很大的一个点的话就是如果洪波能写进历史里面我也可以沾个罐你可以凑着写我对自己有一个清晰的认识的我是属于应用软件的这方面的人不是这种纯基础软件基础软件类的
今天特别开心啊请到洪波跟我们聊聊他的编程语言以及其实我觉得更重要的就是我们进入到一个新的大模型时代那我们适应这个时代我们的编程语言又该是什么样子的其实我们是聊了今天两个话题哈
感谢洪波抽出宝贵的时间来到我们的节目里面来跟大家聊这个话题同时呢我们也会把你们的官网我们 Bit 的官网放在我们节目的 shownote 里面大家如果想要去尝试一下的话可以到我们的官网然后去尝试一下我们这样的一个新时代的编程语言好 谢谢行 那我们的这期编版人生呢就先跟大家聊到这里感谢大家的收听我们下期节目再见拜拜好 谢谢大家
感谢您收听本期节目本期播客节目由金金乐道制作播出您也可以在我们的官网 dao.fm 找到我们的更多内容作品如果您喜欢我们的节目欢迎在微信微博朋友圈等社交媒体转发分享您的分享对我们而言十分重要如果您希望与我们互动可以关注我们的微信公众号金金乐道播客天津的金欢乐的乐道路的道在关注后按提示操作即可加入我们的听友社群