JavaScript

 JavaScript  ( JS ) is a popular programming language due to its nearly ubiquitous availability in web browsers, and growing web server availability in the form of node.js.

Libraries
Generally useful libraries being developed by IndieWeb participants that run in Javascript:
 * CASSIS
 * Various Node.js Libraries available on npm

Sites break without Javascript
Javascript seems to have engendered web development methodologies that depend on it. Many sites seem to break without it, become inaccessible.
 * http://sighjavascript.tumblr.com/ provides examples of sites that do poorly without javascript

Although it is unlikely that visitors of your site still use a browser that does not support javascript as a technology, there are situations in which this is relevant to you as a webmaster.


 * A search engine crawler indexes your site: they may not index text content unless it is accessible without javascript.
 * Google's crawler runs at least some javascript these days.
 * HOWEVER, as of 2014-10-27 Google still says Make sure your web design adheres to the principles of progressive enhancement
 * A visitor of your website uses a javascript blocker like noscript, which people sometimes do to avoid directly consuming proprietary software.
 * A visitor to your site is using an older browser with an incompatible implementation of javascript. Rather than shimming your code to work with these browsers, you can just make your site work without JS. See: Cutting the Mustard
 * Maybe we could tone down the JavaScript on eev.ee has an exhaustive list of situations in which javascript may be unavailable or a site visitor’s experience may be hampered by javascript

See also: antipatterns

More Fragile Than HTML
Many sites now depend on Javascript to generate the page in a browser, rather than generating the page on the server and sending HTML. This is a more fragile approach:
 * http://htmlcssjavascript.com/web/youre-so-smart-you-turned-javascript-into-xhtml/

JS breaks links in new tab
As illustrated by: https://twitter.com/gabrielgironda/status/721115498474270721 "DEAR #FRONTEND DEVELOPERS: PLEASE STOP MAKING SITES WITH LINKS I CAN'T COMMAND-CLICK TO OPEN IN A NEW TAB. WHAT IS WRONG WITH YOU"

JS breaks form submission UI
As described by “Modern” web design antipatterns: "I press Enter, and nothing happens. So I click the submit button – which is, as it turns out, a &lt;div> with attached JavaScript. That JavaScript changes the &lt;div> text to “please wait…” and then it sends off an asynchronous API request. When it gets the response from the server, it then changes the location URL in my browser. Congratulations on reimplementing &lt;form> the long way around!"

JS breaks select menu keyboard UI
Ibid: "I clicked on it, and tried typing “wa” – and nothing worked. It didn’t jump down to “Washington.” It didn’t even jump to “Washington” then back to “Alaska.” Oh, and of course cursor keys didn’t work either – I had to use my mouse to scroll and click and this hurts my wrist and is slow and error-prone. […] Because it turns out that the dropdown box, rather than being a &lt;select>, was a fucking &lt;div> with JavaScript to set the value. And doesn’t have any keyboard access. For bonus points, they invented some HTML tags like &lt;dropdown> to contain it. Why?! Standards exist for a reason!"

Can Encourage Bad Engineering
 As summarized by: https://twitter.com/fox/status/716879915333750784 "I have seen the worst engineering in my career lately and I have one message: STOP TRYING TO WRITE EVERYTHING FRONT-END IN JAVASCRIPT"

Instead: Use JavaScript only for progressive enhancement.