←back to thread

Be Aware of the Makefile Effect

(blog.yossarian.net)
431 points thunderbong | 1 comments | | HN request time: 0.211s | source
1. DavidPiper ◴[] No.42669591[source]
> Complex tools are a necessity; they can’t always be avoided. However, the occurrence of the Makefile effect in a simple application suggests that the tool is too complicated for that application.

This footnote actually made me think about IDEs and the JS toolchain even more than makefiles.

If I'm writing a small project (say, 10 code files) surely an IDE where most people only know how to use 4 of the 1000 buttons is overkill, and I'd use a makefile.

Similarly surely 10 code files with 10 config dotfiles to set up a JS environment and tooling for dependencies, versioning, linting, transpiling, etc is overkill too.

- Basic javac/gcc/swiftc/whatever commands are simple, even if they can scale up through every niche via configuration options.

- Basic makefiles are simple, even if they can scale up to something like the xnu makefile tree (the most complex make system I've encountered).

- Let's not talk about JS.

I'm hesitant to use the word "lazy" to describe people who do what the author is describing - not just because I sometimes do it myself but because I believe that laziness is a derivative observation of time constraint, executive function exhaustion, and other factors. It also reminds me of the classic "I'm going to learn X, which handles/wraps Y, so that I can avoid learning Y", which is generally a bad pattern of motivation.

At its core this feels like a failure to understand (or failure of others to teach) fundamentals / first principles of the tools being used.