It has been reported that the default task runner for VS2015 has changed from Grunt to Gulp. I was thinking perhaps this could be discussed to see what is the best option for the majority of people.
With that said I would like to say I wholeheartedly believe Grunt is the better tool overall. I think Gulp is great and has its place but a default task runner should be the more seasoned of the two. The most seasoned of the two is Grunt.
Most dev operations that utilize something such as a task runner are going to want something robust. Grunt has 1000's of plugins compared to Gulps 100's. And it isn't just the amount of plugins its what those plugins actually do.
At the root of it NPM can probably handle everything a person would need but as far as task runners go Grunt is the clear way to go. Moreover, it will be updated and put more on parity with Gulps speed which we're talking about milliseconds here.
Again, to me Gulp is shinny and new but necessarily the better choice.
Lastly, when the day comes that Gulp can do this... And the other advantages are still present... I will consider the thought process...
@madskristensen ?
There is no right answer here. No matter which one MS chooses, there will be someone who is upset that their favorite task runner was not the default.
Personally, I think Gulp is the better choice, but I recognize that this is a personal choice. One of the reasons I think it is a better choice is that in my experience, it is easier for a beginner to understand what is happening in a gulp file vs a grunt file.
I have not had an issue of not finding a gulp plugin that I needed to accomplish some specific task. The plugin ecosystem seems to be very active. Also, in gulp, simple tasks are often better accomplished with basic javascript rather than requiring a plugin to do something.
The important thing is that both are supported by Visual Studio. If someone has a strong preference to Grunt then I think it is fairly easy to make that change.
The discussion is why is one task runner chosen vs the other. I would like to hear the reasoning behind it. For example there is a bug in VS2015 grunt internals that doesn't allow a complex grunt task runner directive to properly execute without crashing VS.
I don't mind there being support for both but unless it is a check-box type thing where a person can pick one vs the other I feel it is necessary to at least explain why something is given precedence over the other.
I also feel it is important to use the more robust TR of the two. This is important especially when teaching people how to utilize these processes. The very fact that gulp has a grunt plugin to help it where it lacks is bothersome to me. Easier isn't always better or worse per se but it sometimes can be incomplete. IMHO I think gulp is. Great for easy stuff but lacking for more complex dev setups.
I look forward to @madskristensen thoughts
I don't think there should be a check-box type option in the File-New Project template. IMO, Microsoft should pick one and more forward, as long as it is easy enough to replace that with other options after the project is created.
The File - New Project experience would become way too complicated if they added options for everything like that. Picture Bootstrap vs. Foundation, jQuery vs Other Alternatives?.
bootstrap vs foundation. That is the point of grunt task processes and npm / bower integration. You can choose whichever you want. I am ok with that. Jquery vs other alternatives are in exact same boat. In fact, the task runner is vital to having that "choice" in the first place. Again, I would like to see grunt as it is the more mature task runner.
+1 for Grunt task runner default.
@madskristensen @sayedihashimi I don't ever see Mads responding to any of the things we as a community ever talk about. I see he updates his twitter quit often but I never really see him respond to community discussions. Is this really a consideration or just whatever Mads feels is best in his opinion?
We had to pick one and we ended up choosing Gulp over Grunt. One reason was that Gulp is so much faster. We saw up to factor 100x perf improvements when compiling LESS files with Gulp over Grunt. Another reason was that Gulp was starting to overtake Grunt in popularity. Right now on npm you can see the download counts reflect that. Gulp has more downloads per day than Grunt.
We are removing gulp/grunt but will leave the project in a state that it can be easily added back. Closing.
Am I understanding this correctly that Gulp is being removed from the default project template?
Yes
Why?
I must say that from my perspective this is a real step backward on the road to a more open and inclusive ASP.NET Core. It is my perception that we're losing many excellent features of ASP.NET Core because of enterprise pushback. Devs are continuing to be locked into Microsoft specific approaches instead of following along with the larger webdev community.
After investigating all the repos for official comments... it seems that _users_ had issues with it.
No details. For me, this tends to confirm @stimms hypothesis on enterprise pushback.
@sayedihashimi You mention leaving the project in a state that it can be easily added back. Is there a place where that discussion is happening publicly? I would like to know what the tooling around adding it back will look like.
What does the solution look like without visual studio? Wouldn't this cause a divergence between the vs templates and the ones from Yeoman?
Looks like the Yeoman templates have removed the taskrunner options already: https://github.com/OmniSharp/generator-aspnet/pull/734
this is wrong, We need Gulp functionalities !! you must follow OSS trends
@stimms There is full command line support including a watcher. The VSCode integration is pretty awesome. See more details here https://github.com/madskristensen/BundlerMinifier/wiki
Most helpful comment
I must say that from my perspective this is a real step backward on the road to a more open and inclusive ASP.NET Core. It is my perception that we're losing many excellent features of ASP.NET Core because of enterprise pushback. Devs are continuing to be locked into Microsoft specific approaches instead of following along with the larger webdev community.