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

Thank you. It's nice to know that I'm not alone in this dark, dark world.

It's so depressing when people use arguments like "it's old", "it uses tabs", and "it's hard to learn". As described by one Peter Miller, "Make is an expert system". If a tool is the most powerful, standard, and expressive among its peers, its age or the fact that it uses tabs should be inconsequential.

If anything, the fact that it's decades old and used in every major software project is a testament to its effectiveness, not a drawback.

And if "learning Make" is a barrier, that to me is a sign that someone cares more about complaining than about their project. The same way people learn Git when it's clear that it's the best tool, people learn Make. It really isn't that hard. Even the basics are enough to reap huge benefits immediately.



> If anything, the fact that it's decades old and used in every major software project is a testament to its effectiveness, not a drawback.

Part of the reason is because people see the superficial issues (like the discussion regarding spaces) before they see the value of years (or decades) of work. It doesn't help that when folks bring this up many times you get "you're holding it wrong" type responses.

I sympathise with both sides of the argument. I don't know the solution but it's unfortunate seeing folks reinventing the wheel and struggling with problems solved in the past.


I definitely think Gulp and Webpack have a place. Where you have to write a Makefile fresh every time for every type of project, Gulp and Webpack come prepared with JS-specific stuff. That's perfect for a throwaway project or a small codebase where build performance and maintenance really don't matter.

My issue is that people who need serious solutions forgo Make because "tabs, man", or because Webpack has pretty console output.


The tools are not the same on every platform. That’s reason enough for me to not use it with my JavaScript projects.

The bigger reason though is that it’s not very idiomatic for JavaScript projects to use Make. It sounds like the only reason that some people go out of their way to use it is because they actually don’t want to learn something.


> "The tools are not the same on every platform."

Any common examples?

> "It’s not very idiomatic for JavaScript projects to use Make."

While I agree that popularity is a factor in picking a tool, it shouldn't be a deciding factor. Going by popularity is precisely how we end up with a new Build System of the Year(TM) every few years. The fact that we've gone through 4 fairly prominent tools (Gulp, Grunt, Broccoli, Webpack), all of which contending to "fix" the previous, and none of which have proper DAG or incremental builds (which Make has had for decades) is damning evidence.

In other words, I think Make could be (and I wish it was) idiomatic for JS.


This comment points out the kind of problems that can occur just on Unix systems - https://news.ycombinator.com/item?id=16485637

And then there’s Windows...

Anyway, the fact that things change quickly in JS-land is more of a testament to how popular it is than anything else IMO. If C were used in the same environments as JS, I’m sure that you'd see just as much churn.


C is used in a lot of platforms.

Js only in the browser (thankfully mostly converged) and in node.


JavaScript is in the server, browser, mobile apps, desktop apps and embedded devices.

Basically, it’s used everywhere that C is used and then some.


> "Basically, it’s used everywhere that C is used and then some."

It's the other way around. Every JavaScript program is run by a C/C++ program.


But if you consider browsers to be a "platform", which I think they are in fairness, then the GP comment could still apply. Whether the browser is written in C is pretty irrelevant to whether it can host it.


I conjecture that an upper-level "platform" that's on top of a lower-level "platform", for some definition of "platform", will be less varied and fragmented than the lower-level one.


What is the runtime? Always the same.

More than C? Ha! The platform where your js is running is probably written in C!


Pffffft. Nobody wants to touch C these days.

That's why many, many, many, many, many more people are writing server, browser, desktop and mobile apps with JS and not C.




There's way more to software engineering than GitHub. Example: every company that hosts their own code repositories.

The TIOBE index, while not entirely accurate either, does reflect usage by a much more broad set of engineers.


Here's another survey that shows what kinds of languages programmers actually want to use and JS tops the list while C comes in below even Bash/Shell programming and PHP.


Incorrect. TIOBE shows you what companies are making their employees do. Github numbers show you what programmers actually want to do.

However, looking at job ads these days I hardly see any for C relative to JavaScript.


My point was that TIOBE is simply more all-encompassing than GitHut. It gives you a clearer picture of the most searched programming languages, which includes both GitHub as well as non-GitHub stats.

Also, GitHut counts repositories, not lines of code. Not sure which of C or JS has more lines of code being written every year, but my guess is that it's C (Java might have more than both though).


Yes and my point is that GitHub numbers show you a much better picture of programming languages that programmers actually want to use.

Are we just going to go back and forth saying the same thing over and over though at this point?


Nah, then it's pretty simple. My rebuttal is that I think "programming languages that programmers actually want to use" (besides still being a debatable claim) is an insignificant metric. The industry doesn't pay for what you want to use.


When you are responding to a comment that says that programmers don’t want to use C...

K, thx bye now.


I think the comment was that JS is more popular than C. ;)


Yes, popular = the thing people want to use. And it was my comment and it’s quite obvious upon reading again, that my implication is very clear. That's why github numbers alone are better because it shows what programmers actually want to use.

It's the same thing I've been saying to you for our last 20 interactions here. But I'll keep going because I'm not going to let you get the last word.

SO let's keep going I guess.


The GitHut numbers show repository count. I'm sure there all sorts of small JS repos with 50 lines of code, boosting project porfolios of people everywhere. Of course lines of code also don't mean something good: some languages are a bit more verbose than others. The TIOBE index shows what programmers search for, which is likely unbiased by LoC or repository count. My goal really is to help show you that JS is popular, but not nearly as widely used (or desired) as people make it out to be. As uncool as Java and C are, they still dominate software development. If you're dead-set on your position however, and don't wish to believe those data, then by all means let's disagree. :)


My position is that JavaScript is way more popular than C with programmers and that the popularity of JavaScript on GitHub proves my point.

Nothing that you have said has refuted that.

However, I do find your comment about "JS repos with 50 lines of code" to be particularly humorous since you can do more with 50 lines of JS than you could possibly dream of doing with 50 lines of C. LOL :) Thanks for a good laugh.

Care to try again?


You can use gnu make on platforms where the usual make is not gnu. For example I install it from ports on *bsd and have an msys gnu make on Windows.


What is the build tool used in the javascript world this week? Broccoli? Grunt? Gulp? Talp?

Just dealing with breaking changes in any one of those is a full time job!


Pro-tip: you don’t have to switch tools the minute that something new comes out.


You do, since different communities use different build tools. And they even switch tools, for the new kid on the block.


Bullshit. You're arguing as if every JS developer has to interact with every JS community.

Stop presenting these ridiculous false dichotomies.


You often do though. For example if you want to do open source development on JS projects, this means that you might have to learn many different build systems.


Yeah, where “often” is defined as “this one example that I just conjured up”.


Yep, you're right. It's anecdotal evidence, of which you have 2 data points on this thread. We're extrapolating here from what we've seen, for sure. If you have better data, please do share.


I know I'm right. Thanks.


Aw, I was hoping you'd actually follow up with some meaningful data. :(


Same


Our anecdotal evidence trumps your no evidence. ;)


Haha yes you do, because your manager does, every time




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

Search: