Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

That's a fine opinion, but I haven't found a more widely available tool to describe a project "recipe", where project is written in one or more, of many possible languages

* Snakefile -> requires installation

* bash -> macOS is now ZSH. (Is bash a better choice than Make?)

* python -> what if I'm not using python?

What else is as "accessible" as Makefile?

EDIT: formatting



The issue for bash is also the issue for Makefiles.

make is not part of the default macOS install - You need to install developer tools - which I suppose if you are a developer is OK.

As for bash as it is an old verion on macOS you need to stick to a simpler subset - better write as sh.

So sh seems to be the most general.

Then consider Windows - ah ... You are going to have to install something. Shells don't run natively and how do you get snakefile or just.

So python or make are the cross platform tools you have


> * bash -> macOS is now ZSH. (Is bash a better choice than Make?)

Makefiles don't run code themselves, the recipe is written to a file and executed using "sh" (at least by default, the shell to use is changeable).


The Makefile is going to be running external commands, no? So you still have the same problem (what are those external commands written in?) - whatever the answer to that question is, your task runner could be written in as well, probably.

At least, that's how I prefer to do it. A project that's heavy JS? Use a JS task runner. Heavy python? Python task runner. Heavy shell? And so on.


I have seen few hells as bad as "just use the target runtime for build."


It can be done well though, and when it is, it removes friction from the development process.


> A project that's heavy JS? Use a JS task runner.

Trying to keep up with JS task runners for web projects is why I started using Make and haven’t looked back.


Sure but if a developer already has a JS runtime and they don't have Make installed, you've added unnecessary friction to the development process.

I hate JS as much as the next guy, but if I'm developing in JS, I use a JS task runner. Even a simple one. There's not much to "keep up with" IMO - they are quite easy to create and use, if the common/popular ones are missing features or move too fast for you.


Step 0: Ensure your project only uses one thing.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: