1
1
mirror of https://github.com/mcuadros/ascode synced 2024-11-23 01:11:59 +01:00

Starlark is not really Turing-complete

Starlark is very expressive, but, if we're being pedantic, it [isn't quite Turing-complete](https://github.com/google/skylark/blob/master/doc/spec.md#functions). This is desirable because you can't prove that an arbitrary program in a Turing-complete language will finish, so running such programs in a config language implies that maybe the build won't ever finish.

This is a proposal for alternative wording of what we really get from Starlark: expresiveness.

(By the way, very interesting project!)
This commit is contained in:
Toni Cárdenas 2019-10-31 11:28:43 +01:00 committed by GitHub
parent e1c229b80c
commit 1b1df9607a
Signed by: GitHub
GPG Key ID: 4AEE18F83AFDEB23

@ -1,10 +1,10 @@
# AsCode - The Real Infrastructure as Code
**AsCode** is a tool for define infrastructure as code using the [Starlark](https://github.com/google/starlark-go/blob/master/doc/spec.md) language on top of [Terraform](https://github.com/hashicorp/terraform). It allows to describe your infrastructure using a turing complete language in Terraform without writing a single line of [HCL](https://www.terraform.io/docs/configuration/syntax.html), meanwhile, you have the complete ecosystem of [providers](https://www.terraform.io/docs/providers/index.html)
**AsCode** is a tool for define infrastructure as code using the [Starlark](https://github.com/google/starlark-go/blob/master/doc/spec.md) language on top of [Terraform](https://github.com/hashicorp/terraform). It allows to describe your infrastructure using an expressive language in Terraform without writing a single line of [HCL](https://www.terraform.io/docs/configuration/syntax.html), meanwhile, you have the complete ecosystem of [providers](https://www.terraform.io/docs/providers/index.html)
### Why?
Terraform is a great tool, with support for almost everything you can imagine, making it the industry leader. Terraform is based on HCL, a JSON-alike declarative language, with a very limited control flow functionalities. IMHO, to really unleash the power of the IaC, a turing complete language should be used, where basic elements like loops or functions are first class citizens.
Terraform is a great tool, with support for almost everything you can imagine, making it the industry leader. Terraform is based on HCL, a JSON-alike declarative language, with a very limited control flow functionalities. IMHO, to really unleash the power of the IaC, a powerful, expressive language should be used, where basic elements like loops or functions are first class citizens.
### What is Starlark?