Earlier quoted context omitted.
The data model of makefiles is perfect for watching and rebuilding. All you need to add is something that monitors the source files for any changes and runs 'make'.
You lose incremental builds of modern bundlers/transpilers, which makes your build time too slow for bigger projects. People nowadays expect to see changes almost in realtime using hot module replacement etc.
Time for Makefiles to Make a Comeback
91–100 of 116 posts
Re: Time for Makefiles to Make a Comeback
#92If you compare Makefiles to the JavaScript ecosystem it will do so favorably, but many things will. Make is a good build system but it is a shitty deployment system. Yes, you can do everything you want if you put enough effort in it as it is a complete scripting system, something many alternatives are not. It does not mean that it is a good idea to do so. Recently a client made me begrudgingly try Maven. 'Yet another…
Eh, different strokes. Every time I have to use Makefiles I yearn for the comparative flexibility and simplicity of the JS ecosystem. Make files just seem good to users of the due to experience. They work, but let’s not pretend they’re easy to work with.
[citation needed]
Re: Time for Makefiles to Make a Comeback
#93Earlier quoted context omitted.
Eh, different strokes. Every time I have to use Makefiles I yearn for the comparative flexibility and simplicity of the JS ecosystem. Make files just seem good to users of the due to experience. They work, but let’s not pretend they’re easy to work with.
> simplicity of the JS ecosystem [citation needed]
It’s not hard or complex to get working initially, or maintain, which is not true of makefiles
Re: Time for Makefiles to Make a Comeback
#94I'm confused So its agreeable that the building pipeline of NPM calling some packer does replace any-other-language calling any-other-packer, but what is the point in replacing the role of `npm build`, with a makefile that just calls what npm would of called anyways? replacing make with npm with make-calling-npm?
Re: Time for Makefiles to Make a Comeback
#95I've been using make files constantly since '76 when I first started programming in (US) 5th grade. It has been one of my career amusements watching the build systems come and go. I gave up talking about Make years ago. There is a huge population of us that smile and get things done, while others screw around with new, complicated, never-learned-the-past tools. I use one of the earliest Make versions that barely does…
> There is a huge population of us that smile and get things done, while others screw around with new, complicated, never-learned-the-past tools. They get the things done they've been doing all along. But build metadata is very important and very hard to extract from Makefiles, especially as builds increase in complexity. You need things like search paths accessible to get IDEs, static analyzers, software packaging s…
Re: Time for Makefiles to Make a Comeback
#96Earlier quoted context omitted.
> There is a huge population of us that smile and get things done, while others screw around with new, complicated, never-learned-the-past tools. They get the things done they've been doing all along. But build metadata is very important and very hard to extract from Makefiles, especially as builds increase in complexity. You need things like search paths accessible to get IDEs, static analyzers, software packaging s…
I don't understand your reasoning here. Make can call any program, and contain as many build targets as you would ever need. If some task can't be accomplished in Make itself or existing CLI programs, you write something that does that one task well, then ensure Make runs it whenever needed, even if that's every build.
In particular, I write a lot of C++. I want targets for gcov, g++, gtest, dpkg, rpm, clang-format, clang-tidy, cppcheck, clang, CLion, Eclipse, ctags, and include-what-you-use. Am I supposed to maintain each of those targets on each of my repos?
It's simpler to have a standard place with all the needed source files, binaries, search paths, definitions, etc., and just wire that data up to each extra target.
Re: Time for Makefiles to Make a Comeback
#97I have a theory that the people who love make are the same people who love macros and the people who hate make don't love them. I wrote a book on make and I fully recognize that there are people who look at what I've written there and think I'm completely mad: https://www.nostarch.com/gnumake Make's greatest irony is that it's a system for building files based on dependencies but has no way of actually discovering de…
(disclaimer: I like make but not macros) > And make has deficiencies that are a nightmare to work around and get right (e.g. spaces in filenames, recursion, ...) Yes! we seem to be stuck in a local maximum with make. I wrote my own make replacement, as have many before me, and learned the folly of my own ways. Nowadays I use (and love) make despite its terrible handicaps, but I really wish there were something fundam…
Re: Time for Makefiles to Make a Comeback
#98Make provides awesome UX: in most cases you just type "make" and stuff just works, but there is a tradeoff: it's nearly impossible to write a crossplatform make file. Why you ask? Try copying a file (or directory) from one location to another, sure "cp", but it's -R is different on Linux and macOS! And then comes Windows - there is no good built-in alternative to "cp" as it's hard to make "xcopy" to ignore failures i…
maybe projects should have their own ./bin folder for make to use and have those command refer to the right native command. mixing make with a modern scripting language would make this possible.
Re: Time for Makefiles to Make a Comeback
#99Earlier quoted context omitted.
I don't understand your reasoning here. Make can call any program, and contain as many build targets as you would ever need. If some task can't be accomplished in Make itself or existing CLI programs, you write something that does that one task well, then ensure Make runs it whenever needed, even if that's every build.
You could write make rules to do about anything, sure. But you don't want to have to rewrite those rules for every project. You want make modules that you can reuse from project to project. Those are notoriously hard to get right. And when they are done correctly, they are hard to share across organizations, or even within large organizations. In particular, I write a lot of C++. I want targets for gcov, g++, gtest,…
Re: Time for Makefiles to Make a Comeback
#100For a better "make" try "do" (also known as "DJB redo"). It's designed by Dan Bernstein of crypto fame and implemented by Avery Pennarun now at Google. http://apenwarr.ca/log/?m=201012#14 I will contribute $100 to any Rust leader who wants to start coding "do" in Rust.
+1 for do/redo. Although it can be a bugger to get right for go (because there's no intermediate files) (although I think I've solved that now.)
How do you use redo for go projects?