It's a terrible language, but given its status as the de-facto language of the web, it has an incredible ecosystem of tools developed to help out. # Libraries ## Functional Programming [Fantasyland](https://github.com/fantasyland/fantasy-land) Specification for algebra in JavaScript [Folktale](https://github.com/origamitower/folktale) A corresponding standard library [Staticland](https://github.com/fantasyland/static-land) Fantasyland but without classes # Tools ## Typescript [functional programing for ts](https://github.com/gcanti/fp-ts) ## 3D ### MatterJS [Rigid body physics engine](https://github.com/liabru/matter-js) [Phaser](https://github.com/photonstorm/phaser) 2d game framework ### ThreeJS [flexbox for react-three-fiber](https://github.com/pmndrs/react-three-flex) ## UI Dev :: state machines for the web # Meta [Acorn](https://github.com/acornjs/acorn) js parser in js ## EsLint config [Hardcore config](https://github.com/EvgenyOrekhov/eslint-config-hardcore) [functional config](https://github.com/jonaskello/eslint-plugin-functional) # Etc ImmutableJS: Immutable data structures Ramda: Better JS functional programming Typescript with these two is the de factor pure programming ecosystem. [Organice](https://github.com/200ok-ch/organice) :: Org mode without emacs [automerge](https://github.com/automerge/automerge) :: a CRDT that allows concurrent modification [Turbolinks](https://github.com/turbolinks/turbolinks) :: framework agnostic way of rendering views on server side and swapping in throuhg a socket [sanctuary](https://github.com/sanctuary-js/sanctuary) :: strict javascript functions composed functionally [excellent article on javascript generators](https://github.com/gajus/gajus.com-blog/blob/master/posts/the-definitive-guide-to-the-javascript-generators/index.md) # CRDTs [an excellent resource on conflict-free replicated datatypes](https://crdt.tech/) # node [advanced javascript optimizer](https://github.com/google/closure-compiler) lenses in javascript [alloyjs browser based visualizations](https://github.com/alloy-js/sterling) [Parsing in JavaScript: all the tools and libraries you can use](https://tomassetti.me/parsing-in-javascript/#antlr) [Deep JavaScript: Theory and techniques](https://exploringjs.com/deep-js/) [Chess programs in C, Java and Javascript, also 8080 emulator](https://nanochess.org/) [javascript is so hard to use now!](https://lea.verou.me/2020/05/todays-javascript-from-an-outsiders-perspective/) host gpg key on my website like this person does. i also like the 'tell me something' button with the hidden (black on black) text!