Are you having trouble with all the things happening in web technology lately? Frustrated with the rate of change? Hard to keep up? Then we have good news for you: a little while ago, we at Jayway did a tech radar on web technology and we would like to share it with you.
Some of the technologies we will cover are: ECMAScript 6, React, Angular, Ember, Isomorphic/Universal web applications, Unidirectional client data flow, Backend-as-a-Service, Meteor, and Static site generators.
We will also do a small comparison of the web tech radar we did 18 months ago, and draw conclusions from the differences and the current rate of change.
Finally, we'll give some advices for navigating in the ever changing landscape of new web technology.
16. Universal (Isomorphic) Web Applications
● “Same code on client and server”
● Easy concept, hard in practice
○ Routing
○ Sync HTTP requests on server, async on the client
○ Send state twice: HTML and serialized store
● Rendr (Backbone)
● (Ember)
● (Angular 2)
http://nerds.airbnb.com/isomorphic-javascript-future-web-apps/
17. Unidirectional data flow on the client
● Flux
● Redux
● ...
● Elm (language)
http://staltz.com/unidirectional-user-interface-architectures.html
18.
19. Client-side Reactive Programming
● RxJS
● Bacon
● …
● Having good FP skills is a requirement
● Angular 2 will use RxJS → adoption
http://reactivex.io
https://baconjs.github.io
21. Background
Need
Deliver increments of end-to-end solutions faster.
How to do this with both backend (API) and frontend?
Idea
Sometimes you don’t need to develop an API or a SPA!
22. Microservices with HTML interface
● “Back to basics”
● Reduces complexity, if feasible
● Independent
○ ...or backed by REST API (Gateway web server)
23. Parse (Backend-as-a-Service)
● JavaScript (including node.js), iOS, Android, etc etc
○ Backbone
○ Recently launched React support
● Native notifications
● Authentication out-of-the-box
● Pay for requests/sec and unique users to notify
https://parse.com
24. Meteor
● “Full-stack”
● mini-Mongo on the client
● Reactive (server-push via websockets)
○ Templates are reactive too
● Folder structure dictates where JavaScript is run
● Insecure by default (insecure package)
● User account module: sign-up, reset password, Twitter, Facebook, Google
https://www.meteor.com
25. Reduce layers
Dashed lines are for elements not developed.
E.g. when using Parse, the API is a service you configure
27. Ember
● Assess (2013) → Assess (2015)
● Quite heavy framework
● Universal JS support very soon™
● Supply of devs with Ember relatively low (compared to Angular)
● ...still nice ideas in the framework
● Very good with backward compatible releases (compared to Angular)
○ 6 weeks iterations
http://emberjs.com
28. Angular / Angular 2
● ...it’s complicated
● Very high adoption of Angular ←→ Very high supply of Angular devs
● Angular 2 not compatible with Angular 1
● TypeScript!
● One-way data binding
● Performance
● Server-side rendering
● Better programming concepts (service, et al)
● Angular 2 will probably dominate, when released
https://angularjs.org
https://angular.io
34. Innovation tokens
● Idea: you have 2-3 “innovation tokens” to spend on “new tech”
● Over time, you might earn another token
● Because: New tech → risk
● What’s the competence in the company?
http://mcfunley.com/choose-boring-technology