Live data from Hacker News

Taskfile: A Modern Alternative to Makefile

cloudnativeengineer.substack.com

171–180 of 223 posts

Re: Taskfile: A Modern Alternative to Makefile

#171
post #159

Earlier quoted context omitted.

Is anger and derision your default state of discourse? Both your responses so far have been just completely over the top in both regards. But putting that aside, you don’t think Make has a ton of footguns for someone starting out? Spaces vs tabs for different bits because of decades of legacy? Oh but most editors default to tabs as spaces and suddenly no matter what you do, following tutorials will still fail. Or you…

Would anyone allow people without a drivers license onto the streets in a car? Is that gatekeeping or learning the rules of how a societal form of cooperation is practiced? Now whether learning how make works is the same as driving a car is left to the reader to decide. Either way make is also a societal form of cooperation with its rules and traditions. Where does gatekeeping start and where does societal norms and…

Honestly, I’m closer to ditching C as the language for my systems course and moving to Rust entirely. It’s much easier than trying to rationalize the state of affairs through this gatekeeping in the name of safety lens.

I thought we all decided that norms and just imploring coders to hold the tools the right way isn’t scalable. I thought the industry had moved to safety through tooling, not safety through peer pressure and hoop jumping.

I mean, if we’re talking about cortical systems and safety, why is anyone using C at all?

Re: Taskfile: A Modern Alternative to Makefile

#172
post #90

Earlier quoted context omitted.

Because Make is too stable and well documented, because it's just one tool and not 3, because it isn't written in Go and because you don't have to scratch you head at another YAML hell. Because 47 years of proven track record is nothing compared to "modern". Need I go on?

If you think there’s nothing to fix with make, you’re severely mistaken. The differences between GNU Make and BSD Make are for me a big reason to be extra careful when using it. Make also relies a lot on cleverness so it comes with lots of idiosyncrasies (like having to add .PHONY to all the targets not representing files, which in itself proves Make was not thought to be used like we use it). Some basic conventions…

If your needs aren't trivial, just use GNU make if you're using make.

Re: Taskfile: A Modern Alternative to Makefile

#173
post #159

Earlier quoted context omitted.

Is anger and derision your default state of discourse? Both your responses so far have been just completely over the top in both regards. But putting that aside, you don’t think Make has a ton of footguns for someone starting out? Spaces vs tabs for different bits because of decades of legacy? Oh but most editors default to tabs as spaces and suddenly no matter what you do, following tutorials will still fail. Or you…

Would anyone allow people without a drivers license onto the streets in a car? Is that gatekeeping or learning the rules of how a societal form of cooperation is practiced? Now whether learning how make works is the same as driving a car is left to the reader to decide. Either way make is also a societal form of cooperation with its rules and traditions. Where does gatekeeping start and where does societal norms and…

Are people just going to ignore that I have a clear delineation in my comment about the difference of learning and contributing to a project, and instead throw unrelated strawman arguments at me? Driving and programming are different, and learning to program and contributing code to important codebases is different. The stakes are different, the entire paradigms are different.

The on ramp to learn to drive is easy relative to actually being trusted/licensed to drive. But do I need to understand how an engine works to learn to drive? No. Maybe I needed to learn how gear changes worked in the day of manual transmission, but today with EVs and CVTs, why should learning stick be a gate to pass? That’s the equivalence of make to C

Regardless, all these analogies fall down because the crux of the issue is that if there are better alternatives that prevent issues, it isn’t sensible to keep using the old one.

Take your driving analogy. Should we force people to disable proximity sensors? After all you can drive without them but they make driving safer and easier for everyone.

Make is much the same way. It gets the job done, that doesn’t mean it’s good at getting the job done when better alternatives exist.

Re: Taskfile: A Modern Alternative to Makefile

#174
post #163

Earlier quoted context omitted.

Could you elaborate on what you mean by it breaks over time?

Python has no standard and the language implemented by the reference compiler is a moving target. (E.g. every script in Python 2 that used print without () broke in Python 3. There were other breaking changes. Some software still depends on installing Python 2.). The ecosystem in general is similarly dynamic. It's common to install a set of specific versioned packages and Python interpreter to get a package running.…

I don’t disagree with you, but I also don’t think that’s a bad thing. Things certainly don’t break quickly, there are years of warnings for deprecated functionality. I also think it’s not a bad thing to drop old functionality. It may not be warranted that code that worked 10/20 years ago should still work today. Languages evolve, and by pruning old features, footguns, or bad patterns, the language can evolve without carrying the weight of every mistake or legacy feature.

Re: Taskfile: A Modern Alternative to Makefile

#175

Earlier quoted context omitted.

Would anyone allow people without a drivers license onto the streets in a car? Is that gatekeeping or learning the rules of how a societal form of cooperation is practiced? Now whether learning how make works is the same as driving a car is left to the reader to decide. Either way make is also a societal form of cooperation with its rules and traditions. Where does gatekeeping start and where does societal norms and…

Honestly, I’m closer to ditching C as the language for my systems course and moving to Rust entirely. It’s much easier than trying to rationalize the state of affairs through this gatekeeping in the name of safety lens. I thought we all decided that norms and just imploring coders to hold the tools the right way isn’t scalable. I thought the industry had moved to safety through tooling, not safety through peer pressu…

This exactly.

the level of work needed to add a dependency in C+Make vs Rust+Cargo is huge.

Re: Taskfile: A Modern Alternative to Makefile

#176
post #21

I don't understand this argument: "it's 47 years old" as a bad thing. If something has been around that long, does it not mean it is proof tested? The syntax of Taskfile looks more verbose to me than Makefile, which is basically a shell script in disguise. To note also is that you praise Devenv because of it being based on Guix (Guile scheme), while you ditch Makefile which also embeds Guile scheme as the extension l…

Can you use spaces in filenames with GNU make yet? Seems like a 47yo vestige when spaces in filenames weren’t really a thing…

In GNU make? Actually, yes:

    $ cat Makefile
    a\ file: ; echo 123 > '$@'
    $ make
    echo 123 > 'a file'
    $ cat a\ file
    123

Re: Taskfile: A Modern Alternative to Makefile

#177

Sorry for the plug, but I can't help myself everytime I read about task managers to notice you have to learn yet another DSL. DSL are the plague of our field, for one that is useful like SQL, you have a hundred that turn your life into hell. Make's DSL is already full of gotchas, but templated YAML based DSL are just insanity. They have so many footguns, and so little flexibility and ability to be debugged. After try…

I guess that could work for a Python project, where you already have Python installed. But still you would need to set up a venv or similar to keep your system Python clean. Then you cannot run the tasks without creating that venv or similar. How to create the venv and install all the correct dev dependencies into it? You can't use the task runner yet, because you still need to install that ... Maybe a Makefile?

Re: Taskfile: A Modern Alternative to Makefile

#178
post #173

Earlier quoted context omitted.

Would anyone allow people without a drivers license onto the streets in a car? Is that gatekeeping or learning the rules of how a societal form of cooperation is practiced? Now whether learning how make works is the same as driving a car is left to the reader to decide. Either way make is also a societal form of cooperation with its rules and traditions. Where does gatekeeping start and where does societal norms and…

Are people just going to ignore that I have a clear delineation in my comment about the difference of learning and contributing to a project, and instead throw unrelated strawman arguments at me? Driving and programming are different, and learning to program and contributing code to important codebases is different. The stakes are different, the entire paradigms are different. The on ramp to learn to drive is easy re…

Point taken but why is learning yaml easier then learning make? It seems that if its about the amount that needs to be learnt then we'll get nowhere.

Make is easy for certain folks, yaml for others. If a project has been using make for years, should they be forced to replace it since someone believes they are gatekeeping? What happens if said project rejects a pull request that replaces said makefile with task file requiring python and yaml?

I'm pragmatic and also say if it gets the job done OK, but must I replace make with task if someone suggests I'm gatekeeping just because I have a pragmatic point of view?

Re: Taskfile: A Modern Alternative to Makefile

#179
post #87

Earlier quoted context omitted.

“The Norway Problem” YAML has: when you abbreviate Norway to its ISO 3166-1 ALPHA-2 form NO, YAML will return false when parsing list of countries f.e ‘[GB, IN, NO,…]’

To be fair, YAML 1.2 does not suffer from the "Norway Problem", but YAML is still a rather complex format. I feel like the Makefile syntax has some pesky warts, like not breaking when there are spaces in filenames, requiring tabs[1], the ceremony around PHONY targets... If you take the legacy stuff out of make, [1] Apparently it can be fixed with a complex .RECIPEPREFIX incantation which behaves differently in differ…

I use make for (among other things) transforming files; batch compression being the simplest example, so all one requires is a rule saying %.log.xz : %.log and all is well.

But if people have colons in filenames, for example for timestamps, all bets are off, and make chokes spectacularly.

Re: Taskfile: A Modern Alternative to Makefile

#180
post #175

Earlier quoted context omitted.

Honestly, I’m closer to ditching C as the language for my systems course and moving to Rust entirely. It’s much easier than trying to rationalize the state of affairs through this gatekeeping in the name of safety lens. I thought we all decided that norms and just imploring coders to hold the tools the right way isn’t scalable. I thought the industry had moved to safety through tooling, not safety through peer pressu…

This exactly. the level of work needed to add a dependency in C+Make vs Rust+Cargo is huge.

Don't forget, banks still use cobol... Should be replaced... If only someone could!

Herein lies the issue for me: should existing projects switch because they are deemed to be gatekeeping when in fact either they are fine with their technology choices or they have not the resources or knowledge to change but they aren't gatekeeping. The external appearance is the same whichever reason might be the truth.

Post reply on HN