- Web APIs are a total mess
- The language itself is a total mess
Ok, I admit it. There is some truth to each of these:
- Most web developers are working on projects with an absurd amount of NPM package
- Inconsistencies exist between browsers
this, callbacks etc.
The language is expressive. Methods like
reduce make complex
functionality simple. The destructuring syntax is a joy to use.
Web APIs make awesome projects possible. Want graphics for your game? Check out the Canvas API. Want to add controller support? Check out the Gamepad API. Want to use your piano as input for an app? Check out the MIDI API.
Web apps are shareable by default. When something is on the web, any device with a web browser can interact with it. Executables may be more efficient and native, but they lose share-ability.
One of my favorite things to code is snake. It is a simple game, but is any game actually simple to implement? You need to draw graphics, handle non-trivial state, and handle inputs.
Think about programming snake in your favorite programming languages. Will you need 3rd party libraries or frameworks? How many tools will you have to use? How shareable will the result be?