|
|
|
|
|
by nullbio
3281 days ago
|
|
A lot of people seem to be reacting to this and I can't say I'm surprised, I'm no fan of javascript or nodejs either, but allow me to express my thoughts so that perhaps you can see things from a different perspective. We made an asset pipeline in Go (aptly named pipedream, and it turned out to be one), our original plan was to use this instead of requiring an "external" dependency for asset management. We got to the point of handling all the different combinations of compilers and we were forced to pipe to them on the command line because there are no Go library implementations for most of these. Once we started doing this the problems became apparent. The interfaces for these tools on the command line are not very flexible in a lot of cases, and they wildly vary in implementation and flow. All the tools that you want to use to mess with Javascript (typescript, uglifier etc) have significant advantages when able to be used as a library instead of a standalone compiler. They're meant to be used like that and when we tried to break it into something nice based on "compilers" and "minifer" binaries, the dependency handling became a nightmare, recompiles became inevitable, and all this other fallout because the tools that are created for JS are all written in JS and there was no great way to bridge that gap and use them like gulp can/does. To summarize why we failed with our pipedream efforts the biggest reason is because the command line interfaces to these compilers left so much to be desired. They all want to be their own recompiling watchers like typescript, and they don't think about pipelining. Gulp manages to pull it off by using their libraries, but you can't do that outside of JS. I also want to state that I think the hate is overblown in our use case, once it's installed it's out of the way and you never have to worry about it. It's automatically taken care of by abcweb and as someone who isn't a fan of javascript or node I've had no problems with it and have been able to appreciate it for the work that it saves me. The decision to use gulp didn't came lightly, but it happened to be the best option out there. We've made it entirely optional though `--no-gulp` if people want to try to build the dream like we did. Maybe they can succeed where we failed. |
|