4 ms·
There is a collision in names: Cicada, this CI tool, uses a DSL (domain specific language) to write configuration, and this DSL is referred to as "Cicada langu
by barkingcat 3y ago
There is a collision in names:
Cicada, this CI tool, uses a DSL (domain specific language) to write configuration, and this DSL is referred to as "Cicada language", and blasted in marketing copy as a "real programming language" on https://cicada.sh/ https://cicada.sh/ . The Cicada DSL is documented in https://cicada.sh/docs/ci-lang/index.html https://cicada.sh/docs/ci-lang/index.html
However, this is a completely different language from Cicada language, a programming language and theorem prover hosted at https://cicada-lang.org/ https://cicada-lang.org/ and https://github.com/cicada-lang/cicada https://github.com/cicada-lang/cicada .
This name collision is very confusing, and I wonder why Cicada the CI tool didn't just stick to python, since it is also a "real programming language."
- deleted 3y ago[deleted]
- bogwog 3y agoI didn't know about that other Cicada language, but the part about using a DSL for this does seem unnecessary to me. I haven't dived into the docs at all, so if anyone has I'd be curious to know what this DSL offers over Python, Starlark, or any other existing programming language? Especially since, as far as I can tell, this is built on Python. So you already have a working Python installation at least.
- dosisod 3y agoCreator of Cicada here. I created a new DSL because I wanted a more declarative, expressive, yet capable file format, something like Dockerfile but with programming capabilities. In terms of "just running commands", Python (or any other language) is just as good if not better. Where Cicada shines though is that it makes higher level concepts like conditional execution and caching front end center, so you can describe more with less lines. The DSL itself isn't very mature at the moment, but I plan on adding stuff like allow/deny capabilities and more in the future.