Javascript is more "messy" because front-end is harder (on web) than backend.<p>The advice of learn "vanilla javascript" break if your targets (=browsers) are older than, lets say, THIS YEAR.<p>So, is the interest to do only "modern javascript" aka "this year release of browsers implementation of JS"? or "javascript as understood by, please not! internet explorer 6?".<p>So "vanilla javascript" is different depending in how much "modern" we are talking about. With truly recent JS, is possible to avoid jquery. If you are only in the server-side, Javascript IS == NODE.<p>So? No universal version (that could be retrofit to older devices) of JS exist on this earth (and the same apply to CSS3).<p>Think is like C/C++: The same bloat, pain as experience by the first users at the dawn of it, plus half-baked new shinny things, that are not universally used, and never equally across the board.<p>So, is very likely you need to learn "real vanilla javascript = as understood in the IE6 era, perhaps some versions up (if lucky) plus "jquery".<p>You can avoid jquery if use some kind of niche stack, but, jquery IS javascript as "everyone" use it. Think no only in raw use, but, interfacing with libraries and stuff. So, jquery is the "rails" of js, could be argued.<p>IF you actually have total control on the deployment environment, and on the use of external dependencies, you can SKIP JS and use coffescript, elm, typescript, etc. But you need to be very lucky to be in this position ;)