Skip to content

Instantly share code, notes, and snippets.

@kentquirk
Last active December 24, 2015 23:29
Show Gist options
  • Save kentquirk/6880003 to your computer and use it in GitHub Desktop.
Save kentquirk/6880003 to your computer and use it in GitHub Desktop.
Build tools discussion for Tidepool

Build tools -- Make vs Grunt (vs Ant or other options)

We need to make a decision about build tools.

  • Make: venerable, but crusty. Dependency model doesn't work for a lot of things (you just have a list of commands). Not effectively cross platform -- Windows users in particular don't work well with make. Bit of a pain to set up but doesn't create additional dependencies. Everyone knows how to do easy stuff, but hard stuff can get really hard and ugly.
  • Grunt: the tool of choice for node projects. We're a node project. Cross platform. Pulls in lots of dependencies if you install it locally. Easy to set up the grunt files badly.
  • Pure JS scripts -- requires a little more scaffolding to set up; Grunt has that built in. Why bother? (See article below for one person's take on why he bothered.)
  • Jake: it's basically trying to do a make-like design but using javascript. Some good ideas, but like make, complex stuff requires a PhD to pull off.
  • Ant or Maven or Rake or Gradle: Ant is at this point a good tool (it's had a decade to mature), but requires Java to run and it's probably not worth the pain. Maven and Rake are too tied to Java and Ruby to be worth considering. Gradle...not sure we need that much.

Given that we want to get opensource js developers onboard and shouldn't discriminate against windows developers, we need a good reason NOT to go with grunt, honestly. But let's have it out.

Interesting articles for further input:

@jh-bate
Copy link

jh-bate commented Oct 8, 2013

Having a read through the articles and also some other links you are reminded how personal and involved people get with build tools as they can make your life hell I guess.

Looking at it from a requirements perspective - well used (hence documented and supported), cross-platform, easy enough to onboard contributing devs then to me Grunt seems to fit the bill.

Lets go with Grunt - we have bigger things to solve.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment