An Overview of the Starlark Language

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • toolchains_llvm

    LLVM toolchain for bazel

    The biggest feature I want out of Starlark the language (not Bazel the build system) is to allow optional type annotations. They don’t have to do anything, they don’t have to specified, it just needs to be syntactically valid to put type annotations somewhere. If there were syntax for type annotations that tools like Bazel ignored, it would be possible for some enterprising soul who’s forced to use Bazel at work to throw up an initial prototype of a type checker and a language server for Starlark in Bazel. The language is not that complicated that a type checker couldn’t be written by a hobbiest.

    My biggest frustration when using Bazel is not even Bazel—it’s the fact that when I’m looking at code like this[1], everything comes from a single, unannotated `rctx` variable that has no type annotation. So when I’m trying to read the code, it’s a matter of constantly grepping the repo, grepping the bazel docs, and grepping the bazel source code to get any new code written.

    Why can’t I just hover and see the docs? Why can’t I press `rctx.` and see all the attributes available?

    [1] https://github.com/bazel-contrib/toolchains_llvm/blob/master...

  • CodeRabbit

    CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.

    CodeRabbit logo
  • clace

    Hypermedia based internal tools for teams. Application server for containerized apps. Easily develop and manage secure web apps.

  • apps

    Clace web applications (by claceio)

    [4] https://github.com/claceio/apps/blob/main/utils/bookmarks/ap...

  • starlark-rust

    A Rust implementation of the Starlark language

    starlark-rust (used by Buck2) supports this! They're immensely useful for grokking complex build code, as you said. https://github.com/facebook/starlark-rust/blob/main/docs/typ...

  • starlark

    Starlark Language

    Having done some nontrivial Bazel/Starlark hacking, I completely agree that lightweight static types would be a good usability improvement. But I want to point out that Starlark is actually not Turing complete, which is imo one of the more interesting characteristics it has. Recursion is forbidden (https://github.com/bazelbuild/starlark/blob/master/spec.md#f...) and loops must be structural; there is no while loop or other unbounded iteration construct. Starlark is one of the more capable and mainstream non-Turing-complete languages out there, and doesn't resemble the other common ones which mostly show up in theorem provers. On the one hand I think the logic in a build system that needs to reason about incremental builds absolutely should be guaranteed to terminate, but in some particularly painful situations I've had to resort to iteration over smart-contract-style "gas" parameters.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Using Bazel to build a new Rust project

    2 projects | news.ycombinator.com | 30 Sep 2024
  • cc toolchain for macOS Monterey / Apple M1

    2 projects | /r/bazel | 1 Dec 2022
  • Cross-compiling to linux on MacOS with cgo

    2 projects | /r/bazel | 9 Apr 2021
  • Show HN: Clace – Application Server with support for scaling down to zero

    7 projects | news.ycombinator.com | 11 Sep 2024
  • Show HN: Web app proxy and container manager (Nginx Unit alternative)

    1 project | news.ycombinator.com | 2 Jun 2024

Did you konow that Starlark is
the 61st most popular programming language
based on number of metions?