We have come a long way since console.log('hello, world') in s:basics. Callbacks and promises, JSON and web servers, packaging, unit tests, and visualization: every modern language can do them, but JavaScript is an increasingly popular choice. Yes, it has its flaws, but if we avoid some of the legacy features in s:legacy it’s both usable and powerful.

Our journey doesn’t stop here, though. The appendices explore some next steps, such as logging what our server does (s:logging) and using a relational database (s:db) instead of a text file as a data store. Beyond that, you could look at more advanced techniques in JavaScript Have2018, explore the full power of the D3 library for interactive visualization Meek2017, dive into data wrangling Davi2018, or start over completely the way JavaScript programmers do every eight months and rewrite everything with Web Components. Whatever you do, we hope that this tutorial has helped you get started.

Contributions of all kinds are welcome, from errata and minor improvements to entirely new sections and chapters. Please email us, file an issue in our GitHub repository, or submit a pull request. Everyone whose work is incorporated will be acknowledged. Please see the contributors’s guide for more information, and please note that all contributors are required to abide by our Code of Conduct.

Key Points

  • We have learned a lot.
  • Contributions are very welcome.