Somehow I have spent way too much of my time over the last year on efforts to replace the build tools on projects that already have working builds.
Photo © Duncan Rimmer (CC BY-NC-ND 2.0)
Granted the builds had/have problems, as most do, but for some reason the ‘solution’ always seems to be to move to the new shinny build technology of the week, without really focusing on what that’s meant to improve even at a technical level, yet alone from an end user/business perspective. You may as well be arguing about tabs vs 2/4 spaces.
The latest fun build technology adventure has been to switch from Grunt to Gulp. (If you’re fortunate enough not to have heard of either, you may think I’ve changed the names to protect the innocent but no, Grunt and Gulp are both real tools to help automate build tasks.)
If it was up to me, I would probably avoid using Grunt or Gulp completely:
- Why I Left Gulp and Grunt for npm Scripts
- Why npm Scripts?
- task automation with npm run
- Why we should stop using Grunt & Gulp
- How to Use npm as a Build Tool
It’s not up to me though, so here are a few early observations about Gulp:
- It seems to have a few issues with error handling, although gulp-plumber has helped
- More worryingly, Gulp appears to have a tendency to hang, which doesn’t seem ideal from an integration point of view
- A lot of the examples I found did things ‘the wrong way’
(There’s a plugin blacklist and I’ve found a few strongish views on how not to do things in Gulp, just less concrete examples on what the right way is so far) - There are some useful recipes to get you started
- It’s not really any better or worse than Grunt, just different
(Not that I’ve spent that much time with Grunt)
Given there’s almost no chance of making everyone happy with the choice of build tools, I would just leave the decision to whoever creates a new project, hopefully taking in to account ease of development and continuous delivery, and then leave it alone.
If you really think you want to change from Grunt to Gulp, or between any other build technologies, don’t do it. No, really, it’s a waste of time. You’re thinking about trying Broccoli now aren’t you? Or Brunch? (Really, I’m not making these names up!) Why don’t you switch off your computer and go out and do something less pointless instead? If you really can’t stop yourself, at least buy everyone on the team lunch first.