Hacker News new | ask | show | jobs
by nailer 4255 days ago
Yes, web developers are generally unfamiliar with shell interspersed with Make. Not wanting two additional languages for your project is an excellent reason to use a tool that matches the rest of your project.
3 comments

Not wanting two additional languages for your project

is a very silly reason. A build system is a system and needs to be learnt, whether it's a library in JS or a domain-specific language.

(That a JS-based build system shares syntax with JS is not relevant, since the useful denotation is JS syntax->build script, not JS syntax->JS code (unless you're debugging the build system itself). I contend that the denotation JS syntax->build script is no easier, and is perhaps more difficult, to learn than the denotation build syntax->build script, as it is, by definition, confusingly similar to the syntax for JS code!)

> I contend that the denotation JS syntax->build script is no easier, and is perhaps more difficult, to learn than the denotation build syntax->build script, as it is, by definition, confusingly similar to the syntax for JS code!)

Really? gulp build step dependencies look almost exactly like AMD dependencies.

Edit: my wife has also asked me to ask you "will it scale?"

I've never used (or even heard of) gulp or AMD (I'm guessing they're widely used outside of JS-only environments), but from your statement I infer that one must be implemented as a JS library, and one must be a DSL with JS-like syntax.

Are you implying that my parenthetical is invalid because the DSL has JS-like syntax? You must have missed where I said "no easier" and "perhaps more difficult". If the DSL's syntax is identical to that of the library's, then clearly the denotation of the library is no easier to understand than that of the DSL – they are identical.

Was your wife's question supposed to be funny?

> I've never used (or even heard of) gulp or AMD (I'm guessing they're widely used outside of JS-only environments)

They're used widely used in things with a front end.

> I infer that one must be implemented as a JS library, and one must be a DSL with JS-like syntax.

No, they're both JS libraries. See Google.

Any developer should know how to write basic shell scripts to glue things together. Not taking advantage of the excellent pre-existing unix systems tools is a huge mistake.
That becomes a problem if you also want to have your project to be buildable on Windows, and it seems silly to exclude one platform solely because your build process doesn't support it.
Plenty of software that uses make and other tools is buildable on Windows.
Windows does have nmake. Of course it is a horrible implementation of make but the basics work.
I quite like Jake as a make-equivalent in Javascript and was relieved to discover it after experiencing 20s grunt build times.