Starlark 语言概述

主要观点:Starlark 是一种小型编程语言,设计为 Python 的简单方言,主要用于应用程序的嵌入式使用,现已开源并在许多应用和公司中使用,作者领导了其设计和实现。
关键信息

  • 代码示例展示其类似 Python 的语法,如fizz_buzz函数。
  • 语言设计原则包括确定性评估、密封执行、并行评估、简单性、注重工具性、类似 Python 等。
  • 与 Python 相比更简单,缺少一些 Python 特性,如异常、while等。
  • 有多种应用,如作为扩展语言或配置语言,有 Java、Rust、Go 三种实现。
  • 创建 Starlark 的原因是随着 Google 代码库增长,Python 脚本存在 scalability、performance 和 maintenance 问题,需要更强大保证的语言。
    重要细节
  • Starlark 动态类型,有高级数据类型、词法作用域的一等函数和垃圾回收。
  • 执行时不能访问文件系统等,模块可并行加载且数据共享时不可变。
  • 不同实现的情况,如 Java 是 Bazel 代码库的一部分,Rust 由 Facebook 维护用于 Buck 等,Go 被多个开源项目和公司使用。
  • 作者创建了Starlark subreddit用于新闻和讨论,相关讨论在 HackerNews 和 Lobsters 上。
阅读 28
0 条评论