Big Picture

Ideally we want composable, encapsulated, reusable components (widgets), typechecked (with a static analyzer) and compiled (transpilled) into a "cross-browser" JS5.

Schematic view

cat app.js | typescript | google-closure-compiler | minifier | packer > single-highly-optimized-file.js

Javascript has decent community-supported tooling (because language was a weakly-typed crap. ES6 with use strict; is OK) so let's use tools as much as possible. Everything which could be automated must be automated. Everything which could be checked and tested must be checked and tested.

In reality everything is a constantly changing cryptic bloated mess. Java EE looks like an innocent game compared to 980 dependencies of @angular-cli

Angular5 loads 3 separate JS files from a CDN, while angular-material2 adds another two and dependencies.

Vue is still a single-file framework (for how long?) with a compact single-file components.

The idea is that one should turn to these "implementation" frameworks when the overall design is already well-defined.

Server side

Server-side templating should be prefered to a client-side JS templating. As much as possible should be rendered on the server side.

Perhaps we need only a few crucial forms and widgets to be implemented within a Javascript web framework such as Vue while keeping everything else dead-simple with server-side templating and static markup of "static" components, like <md-xxx-xxx >

Last modified 3 years ago Last modified on Nov 26, 2017, 3:29:16 PM
Note: See TracWiki for help on using the wiki.