The slides for "From procedural to reactive JavaScript with stops" presented at O'Reilly OSCON are at https://slides.com/bahmutov/oscon/. I have embedded the slides and video below for convenience.
Additional information for further learning
Here are the links to additional resources mentioned in the slides.
My personal links
- twitter @bahmutov
- GitHub projects github.com/bahmutov
- projects, bio, videos https://glebbahmutov.com
- blog https://glebbahmutov.com/blog
- Kensho where I work https://www.kensho.com
JavaScript shortcomings
- The Minesweeper at Improved-Minesweeper-I-Think
- JavaScript equality and inequality tables
JavaScript robot projects
Language penetration
- Search for a particular keyword using
https://stackoverflow.com/jobs?searchTerm=<word>
for example https://stackoverflow.com/jobs?searchTerm=javascript - module counts in different repositories www.modulecounts.com
Kensho
- I work at Kensho and we have open sourced our tools at github.com/kensho
FP in JS
- List of books teaching functional programming in JS
- List of videos and tutorials teaching reactive programming including large number of JavaScript resources
- My advice on getting better at functional programming in JavaScript
JavaScript journey
- The full journey is described in this blog post Journey from ...
- You can find more than 20 different implementations of the same example using different styles in repo github.com/bahmutov/javascript-journey
Refactoring the code example
- Programming without the for loops
- Adapting functions to call sites and point free programming
- Test if a function is pure against a set of unit tests
- Test if a function is pure revisited
- Binding vs partial application
Partial applications
- From the left _.partial or R.partial
- From the right _.partialRight or R.partialRight
- Leaving open spots
- For object properties obind
- By argument name heroin
OO JavaScript
Arrays
- Lodash library docs
- Object iterators
- Put callback first for elegance and Hey Underscore, You're Doing It Wrong!
- Designing user-friendly API
- Alan J Perlis "perlisisms"
Immutable data
Promises
- See my blog posts on promises
Reactive libraries
- RxJS
- BaconJS
- xtream
- Marble diagrams at rxmarbles.com
Pure functional reactive programming
- Cycle.js homepage at cycle.js.org/
- Is framework pure or not?
- Data flow in small Cycle web application
Interesting things I saw at OSCON
It was a very large event: 2 days, 10 parallel tracks, plus an expo with every major and minor software company present. Most of the companies you know were there (from MS, Dell, HP, to GitHub, GitLab and Sentry).
Aside from this, the lessons observes:
every second presentation was about containers and container flows. From the very opening remarks by the Docker team, the focus was on: "docker is awesome, here is how we use it".
"Every millisecond counts: Performance and UX" from Akamai mentioned in edge cached page sub resources (no slides available yet), where the entire page is cached on CDN except for parts of it that are "live". Interesting what will happen to this technology.
"Butterfly in reverse" by Mark Bates (no relation to Brian Bates) about how he tried to both learn Go and micro services, but failed and when with Rails app.
"Becoming a polyglot: Create a simple API server in four interpreted languages" was too simple to be a good example, but it was a beautiful of distributing Docker template file for people to try the example system with minimal hassle.
"Dusty: Building and testing microservices made easy" and slides at http://cdn.oreillystatic.com/en/assets/1/event/154/Dusty_%20Building%20and%20testing%20microservices%20made%20easy%20Presentation.bin about https://github.com/gamechanger/dusty - Docker powered "docker compose" tool for quick local development. Makes me excited to try it.
"What comes after Git Push" by Justin Dorfman from MaxCDN was interesting, because he actually contributed to OSS project not by coding but by designing a good logo, arranging sales and donations (he got the new Bash stickers made, purchase at http://www.unixstickers.com/stickers/coding_stickers/official-bash-sticker-bourne-shell-full-logo 10% goes to FSF), slides at http://cdn.oreillystatic.com/en/assets/1/event/154/What%20comes%20after%20Git%20Push%20Presentation.pdf and overall he was a very nice guy.
"How Netflix gives all its engineers SSH access to instances running in production" about BLESS was really well done. Slides at https://speakerdeck.com/rlewis/how-netflix-gives-all-its-engineers-ssh-access-to-instances-running-in-production
"Better collaboration through tooling" from Docker talked about them using Docker and 3rd party services to develop quickly https://github.com/docker/notary. This presentation was a powerhouse demo of Docker-based workflows and integrating multiple 3rd party review tools with GitHub based repo. Loved it.
"Stop writing JavaScript frameworks" from Google was just weird. Slides at http://bit.ly/zf-preso-2 and seems the presenter really thinks replacing JS framework with bunch of "data-" attributes on DOM nodes is a better way.