Old School vs Brave New World of Javascript

Javascript heavy websites with GraphQL and build chains to compile large blobs of scripts are the latest thing. I can see problems they try to solve, but more so I see the problems they create. I'm old school. The web is HTML and HTML is an API1.

I have to admit, that I feel a weird satisfaction of inspecting json in the console and render it into html - but that's what it becomes in the end HTML! (I know about json2being the format to serve all kind of clients).

So dipping my toes in frameworks like Vue.js left me with this odd satisfaction of rendering raw json, and at the same time the frustration with setting up a toolchain3 and those weird ways to write components (mixing HTML, CSS and JS in one file - which, again - makes sense in this context, but relies too much on a build chain).

And what I find most offputting around the hype of those frameworks is the fact, that they start doing the things we did 10 years ago. (Pre-)Render HTML Fragments on the Server - After peddling the idea of moving the rendering to the frontend and let the browser do the heavy lifting, everything became so complex and therefor slow, that backend rendering becomes a thing again4.

Full circle.

Another reason I'm sceptical is the fast moving JS technology that abandons frameworks or techniques from the last two years so quickly. You build your stuff with grunt? Good luck maintain this chain with the latest framework. Outdated npm packages, disappearing documentations. No thanks.

The web is open. Write HTML, plug in single script libraries as you wish (heck, even get it packed on the fly via jsdelivr.com) and if you must, uglify your app.js and then don't worry about a build process that becomes slow, outdated and inflexible. Fix a script in time without deployment process. Learn from someones source code by View Source.and not weird source.map interpretation.

  1. https://aaronparecki.com/2015/04/26/22/html-is-my-api and https://medium.com/@fagnerbrack/html-is-an-api-8508362107a3 

  2. or XML 

  3. given, Vue is excellent in starting simple with the framework being included from a cdn, without build process and even if you want to go down deeper, it offers a pre configured build process.  

  4. Same for GraphQL - lets query a Postgres DB with SQL to output JSON that you now query with GraphQL to get exactly the data you need.