9 Comments

Concise and Crisp. Would love to try this

Expand full comment

why does it always have to be yaml? why are automation people so obsessed with yaml and python, languages that are a complete pain to work with?

Expand full comment

I'm not a fan of yaml either. I still believe that Taskfile is a better option than Make

Expand full comment

Will people never learn? One of the most infuriating things about makefiles was the syntactic significance of tabs. It was maddening. Yaml also makes indentation significant, and that is a key factor in making Ansible just suck. Beyond that, YAML is not a scripting language. When applied to things like configuration management and build systems the need for control flow constructs like loops and conditionals invariably arises, no matter how much bleating is done about how it's "declarative". Then you make the same stupid mistake that was made in Ant and Ansible and you build a scripting language out of a markup language. Can't people choose a scripting language to build on? Have a look at SCons or Fabric that use Python. It's much less painful for all involved.

Expand full comment

thanks for the feedback. I understand that DSL is a very heated topic, though people are free to use whatever they prefer. I have used Fabric in the past but I believe that it is better suited for remote execution than as a local task runner.

Expand full comment

In Fabric2 the task runner and remote executor are completely split apart. You may want to look at the task runner portion which is called Invoke. It's at https://www.pyinvoke.org/

Expand full comment

This needs a careful editing pass to clean up a number of glaring typos.

Expand full comment

I'm quite sure there are no typos in my writing since I use Grammarly when I am writing my articles. Are you sure you mean typos? English is not my mother tongue so the construction of the phrases might need some editing but not typos. If you find any, please get in touch in private via the chat.

Expand full comment

The reason it's always YAML is that they think their build files are "delcarative", XML is out of fashion, and they think they're doing you a favor by not using JSON. Why you lump Python, (a general purpose programming language), in with YAML, (a markup language), eludes me. For most things Python is clearly not a pain or it would not be the most popular programmng language year after year and still growing. There are, however, things for which Python is not appropriate

The question comes down to what kind of build file you want. If you want "declarative" build files, (which invariably end up with imperative semantics), then what would be better than YAML? XML? TOML? JSON? Are there other choices?

If you want build files that are imperative scripts then what would be better than Python? LUA maybe? Javascript? LISP or Scheme? BASIC maybe? Or maybe a DSL like they made for Scala, with mixed results.

It's easy to complain about things, but to be taken seriously you need to propose a better alternative.

Expand full comment