Honestly though I think ECMA has some of the blame for this. I don't think they do a very good job communicating changes and versioning.
Honestly though I think ECMA has some of the blame for this. I don't think they do a very good job communicating changes and versioning.
Considering we're encouraging everyone to use transpilers and features from the future, and that browsers will forever lag just a little bit behind, I don't think that's a super bad idea. Most programmers don't care exactly which features are in ECMAScript2015 and which are in ECMAScript2016 etc. All they care about is "Can I do this thing I saw in a code example? Oh cool, it works".
Detailed versioning is an implementation detail.
Please don't encourage this. Transpilers have a huge set of dependencies and technical complexity. I know everyone is in a hurry to use the next standard ASAP but, especially for new people, I think transpilers should be recommended against. Otherwise now you now need a build process and you need to learn how to use map files to properly debug back to your original code not to mention being unable to properly debug on older / alternative browsers.
> Detailed versioning is an implementation detail.
For the engine sure but for everyone who needs the features they need to know what is supported when, etc. It's far, far more than a simple implementation detail.
I would argue no. Granted not everyone needs to be an expert on the tool chain and this ends up happening probably a majority of the time anyway but if most are ignorant how the tool chain works I don't think that's a good position to be in either. When a bug / misconfiguration issue rears its ugly head you need more than a few people being able to debug it. But even outside of that I think it's incredibly helpful for the developer to fully understand how something is going to be built and deployed.
All depends on your use case. Honestly if you're working on a web app you actually don't need any build tools if you really didn't want to.
But ultimately I wasn't advocating for zero build tools. The way JavaScript works you can write your own scripts (I wrote my own, barely one page of code for minifying, packing, versioning, testing, etc) or use any of the systems if you want to. It's all not that hard. But I don't think only one (or small handful) of people should know how to use them and I think we can vastly simplify what some of them do today (looking at you, babel and webpack).