Interactive websites have been the norm for a few years now. Simple contact forms don’t seal the deal anymore. We need logins, Instagram integration and instant Twitter notifications. It’s time to turbocharge our web development to match the new demand. Single page web applications, mashed up from various services, will push developer productivity to a whole new level.
Take the example of a complaint form with an image upload. You probably want the upload to work smoothly, to start the upload eagerly. You may want to show an image preview of the uploaded file. Allow drag and drop, maybe? All that new shiny stuff. But let’s take a step back here. Is image upload really your core business? No? Then why would you develop it?
The future of web applications is mashed up apps. Single page apps that use a multitude of services which are readily available, or which are easy to deploy on your own premises. The app orchestrates the used services so the application works as expected. No project-specific development of components which aren’t core to your business. You can use Firebase to store the data of your app, take pictures from Flickr, and stream videos from YouTube. Maybe you’ll still have an in-house service for some custom business logic, but that will be limited. We should take the sharing of open source code to a new level, from software libraries, to microservices. Web apps can use these services, whether they’re hosted at your own premises, or offered as an external service.
There’s more to web development than the backend though. New JavaScript technologies, like ES6 modules or even webcomponents, make it easier than ever to share code. Although browsers may not fully support them yet, big web development frameworks already support much of it. The problems of the frontend are similar to those of the backend. Why would you develop the code to talk to Flickr? Why would you implement the login form for each of your projects? We can share it, plug it in our app, and extend it to match our needs. By sharing whole components in the backend and in the frontend, we get a clear feel for the final product long before it has been polished. Most of the time spent will be time spent on polishing the app. We’re looking forward to the new paradigms of software development.
And this isn’t the end stage yet. Standardization efforts mark a new way of development. JSON requests are becoming standardised using JSONAPI allowing us to automatically build the glue code between the frontend and the backend. CSS3 marks major changes in terms of what we can visualise, websockets will allow for more interactive applications, web storage has been standardised, web workers allow for multithreaded applications and there’s a whole slew of standards which we refuse to mention here because we are already mentioning too many shiny new things!
Mashup-like architectures will make developing new applications easier and less time-consuming. It’s a logical architectural change driven by the evolution in standards, frontend frameworks, and backend automation. We’re jumping on the train with mu.semte.ch, and you’re free to take a ride with us.