Javascript has forever been maligned for its unique approach to complex paradigms like verbose inheritance pattern, ambiguous equality checks, lack of structure for larger projects and some bad practices which got introduced by coders trying to translate coding patterns from other popular languages.
Why has Javascript faced so much flak over the years? First, it was a beaten into infamy by being tossed among the browsers and their wars - struggling to maintain uniformity among all of them. Second, the DOM, (Document Object Model), the data structure browsers use to populate the page with assets, is notorious for being difficult to implement in any language. The second problem still prevails but the maturity of Javascript as a language has ensured that it is better handled now and hardly noticeable. The first, however gave rise to a lot of other secondary problems. The lack of compatibility between different browsers ( and sometimes their own versions ) made room for libraries like JQuery. JQuery solved the issue for the time being and patch fixed the underlying problems with easy on the eye and less tiresome shorthand functions. What JQuery did at that time did wonders for Javascript in the short run but it also introduced new programmers the 'easy' ways to do things. Without going through the rigours of why and how a particular functionality should be used, the quality of code kept decreasing which meant higher costs on code maintenance. A golden rule of development is that You should use a library when you don't want to write that library, not because you can't write a library. That doesn't mean that one should always write his/her own libraries but is aware of what the library does and what it doesn't. JQuery does make it easy but does not tell you what Javascript : the language it is written for, works, keeping you from its real secrets and power.