> you just need to describe your build tasks using a simple YAML schema
I don't understand this. How is it easier/nicer to learn an arbitrary schema in an ambiguous[1] data serialization language than the makefile syntax which was designed specifically for the purpose?
I'm not criticising the project; I'm sure a lot of work has gone into it and it is decent software. But I wouldn't encourage people to be quick to disregard 'difficult' mature software and jump at something new that makes claims about being 'simple and easy'.
As someone who's been using makefiles for about 30 of those years, I have to say make sucks. It's barely evolved at all. There is a reason there are so many alternatives to it, and it's not be because it's trendy. I mean, you can't even copy a file with it. That takes an external program.
it does. unfortunately its still the one i reach for because it never seems like a good time to research alternatives.
generally the tools that are optimized to make the common case easy aren't so useful to me because i often have alot of intermediate build artifacts/stages.
and i really like the declarative nature of make..just not all the fragility and warts.
does anyone have any suggestions for a nice general declarative alternative?
> I often have a lot of intermediate build artifacts/stages
I don't know your use case in depth, but I don't see why Task wouldn't work for you, since it's similar to Make in this regard.
You can have multiple tasks (for each step) and then either set dependencies or have a task that call all other tasks in the right sequence. And, of course, you'd have to enable [this](https://taskfile.org/#/usage?id=prevent-unnecessary-work).
Anyway, seems that Make is already enough for you, since you're used to it's quirks.
Have you tried using Make on Windows? I know, I also prefer Unix-like systems over Windows (and I barely use Windows these days anymore), but for those that need Windows support, it's a miserable experience trying to use tools that barely work there.
Checksum based (instead of timestamp based) up-to-date resolution is also nice. Etc, etc.
In short, I don't think Task is perfect (far from it), but we desperately need better alternatives to Make.
Yeah, a contributing guide would be nice. Thanks for the suggestion.
I'm curious on why Make runs twice faster to you, since in most cases the difference should be negligible (i.e. the Task overhead should be insignificant compared to the time it takes to run the command).
Maybe you're running really lightweight, like `cp`? Otherwise I'd consider it a bug. Could you open an issue, then?
This project does look cool, I'll probably give it a whirl too.
If you're open to ruby, rake is an awesome and powerful tool that is a ruby DSL implementation of make. Learning rake was one of the best investments I made. Even tho I'm a polyglot these days, I still often use rake, even tho it does make some golang people vomit :-)
I’ve been using Task on multiple projects for a couple of months now. Initially I whated to be able to easily create some deployment config files using it’s templating features. Worked great. Now I just default to task instead of make on new stuff.
Please forgive me, but how is this easier to use than make? I see a lot of these "reimplement tool X in language Y" projects, but what is the point if it's not actually solving the problem better. Just looking at the link it seems to resemble Ant which also started with similar design goals.
I don't understand this. How is it easier/nicer to learn an arbitrary schema in an ambiguous[1] data serialization language than the makefile syntax which was designed specifically for the purpose?
I'm not criticising the project; I'm sure a lot of work has gone into it and it is decent software. But I wouldn't encourage people to be quick to disregard 'difficult' mature software and jump at something new that makes claims about being 'simple and easy'.
[1]: https://github.com/cblp/yaml-sucks/