11 ms·
Do so many people who go on this site not know how to make makefiles? Also why is it for hipsters? Or is the article for hipsters? Why does the author call h
by capote 10y ago
Do so many people who go on this site not know how to make makefiles? Also why is it for hipsters? Or is the article for hipsters? Why does the author call his own published notes factually inaccurate? Why is it hacky to use a makefile? Is this all a big ruse?
- voltagex_ 10y agoI dunno. Maybe it's a reaction to the myriad build tools developed for Javascript recently. Could they have been done with makefiles instead?
- capote 10y agoI suppose so. But there are always many tools for everything. And everyone can select his favorite.
- voltagex_ 10y agoThe problem is if you want support (even commercial help) you'll need to follow some kind of prevailing trend. If I've got a system with grunt or gulp and I need help, I can probably find a local web developer. I'm not so sure if I can find someone who's an expert in Makefiles at the moment.
- capote 10y agoYou already found at least one. Also try anyone with a degree in computer science. I'd wager it's in most first year courses; it was in 3 of mine. Also you could consult anyone who spends a lot of time working on/programming for Linux and/or in C/C++. And it's really easy, and there's tons of literature on it on the internet. And it has a manpage.
- adrianN 10y agoI never encountered make in any assignment during my studies. It certainly wasn't mentioned in the lectures. At my university, you didn't learn any tooling at all, if you thought you needed it you had to teach yourself.
- sotojuan 10y agoMy professor encouraged us to learn Make but ultimately provided the file for us in every project.
- jk563 10y agoNever heard of it until my 3rd company, much less using it in my first undergrad year.
- baq 10y agoif your devs can't handle learning basic make, all is lost.
- pawadu 10y agoyeah, makes you wonder what kind of bubbles some of these developers are living in if they see Make as some magical relic from the past.
- detaro 10y agowhere do you get "some magical relic from the past" from? Not knowing about something != thinking it is useless. The "bubble" is "most people that never used C/C++" (because outside of there, make is pretty rare despite its usefulness), and even if you've used C/C++ you are not necessarily familiar enough with it to know how to properly use it or to realize you can use it as a general tool. Why would you expect people to magically know about (and prefer to others) a tool that's almost never used in the ecosystems they touch, or only behind the scenes?
- voltagex_ 10y agoI'd wager there are a fair few Windows devs who don't know make. Granted there are few who truly understand MSBuild to make the comparison fair.
- TickleSteve 10y agoSeriously? The most used build tool in existence... and you don't think you can find someone who knows it? ...That may be the source of your problems if your devs are that inexperienced!
- mrighele 10y agoThe main issue is that the prevailing trend in web development changes every six months. I wonder how many developers that know grunt you will find in 3 years.
- madeofpalk 10y agoI see this rhetoric being thrown around all the time, but I don't actually think its true in practice. Grunt came out in 2011 and Gulp came out 2 years later with a superior (IMHO) code-over-convention approach. They've kinda been doing their thing since then. Statements like seem to be nothing but FUD.
- chongli 10y agoIt's not about when things come out, it's when people start talking about them. I've been on an for 4 years (a relative newcomer, I know) and this is the first time I've seen either Grunt or Gulp mentioned.
- madeofpalk 10y agoSo how can you be upset with the zeitgeist changing so frequently if it's taking to 4 years to hear about these widely used (in their field) tools?
- toomanythings2 10y agoOn Stackoverflow, I scan down the list of questions on the first page and all I see is a myriad of questions about tools I have no idea about and, therefore, cannot help with. Most of these questions have no, or one, answer; most of which aren't helpful. So the problem with choice is the number of people who also know that tool who can help you.
- mhd 10y agoThat was Java all over again. - you've got dependencies on some basic Unix commands (cp, rm etc.) in your tasks, so better rewrite that all to use your cross-platform language's facilities. - XML, erm, no, JSON, shall be your only file format.
- majewsky 10y ago> dependencies on coreutils Or just install that Ubuntu on Windows thingy and be done with it.
- na85 10y agoAre there even serious developers on the Windows platform? I can't imagine many people lack the `rm` utility. I heard a legend that even the Windows developers run some flavour of unix.
- pawadu 10y agoAs soon as that becomes available outside the fast ring I will be spending a lot more time on Windows!
- agentgt 10y agoWell in fairness Java does have the excuse that the cloud, and virtual images didn't exist and it was basically a Windows world. Linux/Unix was barely known to most developers. Java also pretty much brought the idea of dependency management (Maven) to mainstream programming languages (although I guess you could argue some of the early Linux did as well (RPM)). It is sort of interesting how Make is sort of like local dependency management.
- snuxoll 10y ago> Java also pretty much brought the idea of dependency management (Maven) to mainstream programming languages And Maven is still the only "package manager" I don't end up wanting to beat my head after using. For all the flak that pom.xml gets for being wordy, I know that after installing the JDK and maven all it takes is running `mvn package` and all my build plugins plus dependencies will be downloaded, installed, project compiled, tests run with whatever test runner I decided to use that year, and, assuming they passed, the project packaged up in a .jar or .war ready to be deployed. Some more recent tools like cargo also get this right, but I don't have much of a use case for rust since the majority of my time is spend in web and desktop apps. But EVERYTHING being in one file and one tool makes getting down to business easy, there's no "make sure you run npm install before you call grunt/gulp/brocc/whatever" because maven handles it all. Oh, as an added benefit, I don't scream about dealing with proprietary libraries like I do with .Net. The .Net SDK for our document management system has to be installed on all systems that use it via an MSI, yet the Java one is just a .jar with a couple dependencies, I whipped up a pom.xml for it in 30 seconds, pushed it to an internal maven repo and boom, done. Hell, at that point getting it packaged into an RPM (because I don't do "sprawl shit over the filesystem" deployments) took me another 3 minutes.
- nicky0 10y ago(1) I imagine quite a lot of this site's visitors use different platforms/toolchains, and haven't encountered make. (2) Its a fun/joke title, the article is for "hipsters", the kind who know the latest fancy build tools but not make, I suppose. I wouldn't take it too seriously. (3) It's a disclaimer against people attacking him for errors, and also to warn people that he's not an expert. Again, this is written in a lighthearted way. (4) See 3. (5) Maybe, or maybe you are just feeling cranky today.
- capote 10y agoIf not a ruse, this is a dumb post that discredits itself and calls makefiles hacky, not noticing that they are used by many people for most native programming on most (unix type) platforms. I'm feeling cranky every day, but just today this post is at the top of hacker news, and that's frustrating.
- efaref 10y agoThe refusal of so many people in this industry to learn a pretty simple and incredibly fundamental tool frustrates me no end. I guess this article could be worse: the number of times I see people reimplement poorly thought out clones of make and present them as the new thing that everyone should use is just absurd.
- nicky0 10y agoYou are frustrated about people not learning this tool, any yet when someone publishes an article encouraging people to learn that very tool, you damn it?
- girvo 10y agoFor simple use cases, Make is simple (and lovely, in my opinion). For moderate to complex cases, Makes syntax and contortions you have to put yourself into to work around the barrier between what Make expects and how certain things can be done today can cause a bit of pain. That said, you can prize Make out of my cold dead hands. Still my favourite build tool, and damned powerful once you learn to tame it.
- stevetrewick 10y agoI've been cranking out code since the 80s and I can count the number of times I've had to create a make file one my fingers. Not everyone is working in the same domain with the same tools as you are.
- s_kilk 10y agoUnfortunately, many developers have a mortal fear of anything from before the year 2000. They've grown up with this tribal wisdom of unix and it's various tools being a beardy wilderness of byzantine hacks and toxic waste dumps. Meanwhile they'll merrily pile up a thousand node modules into a towering pillar of bad, just to run the equivalent of a shell one-liner, and call it a job well done.
- collyw 10y agoThere are far more developers who will jump on the latest new shiny with no good reason.
- sangnoir 10y agoWhich is why I don't pity them when they scream "Javascript fatigue!". Put down the shiny new tool and back away slowly: you might hurt yourself and others.
- nemild 10y agoI think they don't know better - as any relatively new web-ish dev has grown up in a server-side javascript ecosystem that's maturing rapidly in the last 6-7 years, and so has led to a lot of churn (frontend frameworks, js build systems). Separately, on the information side, there just aren't as many articles on old, but stable technology - and so if you open up HN, all they're seeing is the latest; if your team doesn't have good experienced devs on it and if you haven't learnt it in college/bootcamp then you'll pick what is publicized.
- JdeBP 10y agoIn counterpoint, remember that there was a time when some of the things mentioned on this page, such as autotools, were themselves the "latest new shiny".
- philh 10y agoI think Make is also broadly associated with autotools, which surely can't help its public image.
- collyw 10y agoMost people are probably writing web based apps in higher level languages that don't require make files. ("Hipsters" sounds like a dig at Ruby / Node devs to me).
- vidarh 10y agoQuite possibly, though I think most of the hipsters have left Ruby by this point. For my part, as a Ruby developer, I detest rake and tend to write makefiles for my Ruby projects instead.
- appleflaxen 10y agoreally? how come? i use rake (very superficially) from time to time, and it seems fine. Any insights you have regarding its design after long-term or more indepth use?
- vidarh 10y agoMostly that it adds complexity for very little benefit. 99% of the time, I can do the same thing just as easily with Makefile's and be able to have it nicely interoperate with non-Ruby tools.
- douche 10y agoEvery time I encounter the hodgepodge mess of bower, npm, grunt and gulp scripts that our front-end developers have erected to compile their javascript, I really wish they had taken the half-hour to learn make, instead of all of these other tools that don't work quite the same and do about half of what make will do.
- nemild 10y agoAnd some of which will be rapidly deprecated.
- coldtea 10y ago>Do so many people who go on this site not know how to make makefiles? You'd be surprised. Especially if they work outside C/C++, and do e.g. mostly web development, they neither care much, not know much about makefiles. At best the know to configure, make and make install something on their Linux, but most haven't even tried that. >Also why is it for hipsters? Or is the article for hipsters? The article is (supposedly) for hipsters. You seem a little challenged keeping with the latest "culture" (ain't we all), so let me explain. What he means is that the article is not for seasoned veterans, or unfashionable people who delve in the old-fashioned word of GNU-tools and Make, but for "hipsters", e.g. the new-ish, young-ish developers, usually working with hip languages (and especially web, scripting, etc.), that are not rooted and well versed in the UNIX traditions. >Why does the author call his own published notes factually inaccurate? Why is it hacky to use a makefile? It's just a funny wording for the author to convey: "I'm not a complete authority on Make and Make best practices, I'll just tell you what I know from experience about it. And I expect some Make-gurus to try yell at me about my suggestions being inaccurate/hacky etc, so I try to pre-empt them with this warning".
- tomc1985 10y ago"Hipster" carries a more detailed connotation than that, at least in the US. (Lots of fond memories arguing about the term in europe, where the word seems to lack its snobby, negative feel)
- coldtea 10y ago>"Hipster" carries a more detailed connotation than that, at least in the US. Yes, but this isn't the generic term "hipster", it's applied to a specific context, that is hipster programmers. >Lots of fond memories arguing about the term in europe, where the word seems to lack its snobby, negative feel I guess depends on where in Europe. In the place I'm aware of (e.g. not sure about Germany or nordic countries), it is indeed negative. E.g. this is about hipsters from a UK perspective: https://www.youtube.com/watch?v=lVmmYMwFj1I&feature=youtu.be https://www.youtube.com/watch?v=lVmmYMwFj1I&feature=youtu.be
- 10y ago
- Semiapies 10y agoI mostly do web development, and I went for quite a few years without having any more of a build tool than a shell script or two to minify files and the like. It's only been since I started using React that I went to a Gulp setup. And really, my experience with Gulp had been the opposite of the snide "hipster" dismissals. I wish I could find clean examples via googling that weren't useless due to APIs completely changing, or due to using a library that's been deprecated in favor of another library that's been deprecated...because, man, who still uses a library after a year? :P Somehow, though, I don't see make being a great replacement for my purposes. At the very least, it's not going to be any faster running Babel over a pile of files.