1 Advancing The Web

 

Web development can often feel like writing the same thing twice. We first write database schemas and application logic for the server. Then on the client we have to implement much of the same logic in order to validate inputs and provide realtime feedback. We are able to share data but not the code that implements application logic.

Even the way that we share that data seems awkward. We create routes structured around manipulating resources via a few distinct verbs: 'CREATE', 'READ', 'UPDATE', and 'DELETE'. This leaves us with a one size fits all API that has much more to do with how the web works than how our application is structured.

When we write user interfaces on the web, we do so by first downloading a document interspersed with formatting and structuring commands. We then write JavaScript to imperatively modify this document, swapping in new chunks here, or altering the display of existing parts there. Again, this whole process marches to the drummer of the way that the web works. HTML, derived from SGML, is a document markup language, not a user-interface system.

1.1  Major Themes of The Functional Web

1.1.1  Unified Stacks

1.1.2  Functional Programming

1.1.3  Reactive Programming

1.2  Summary