主要观点: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 上。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。