In the future of MVC, the client is king.

Alex Zito
Tiny Code Lessons
Published in
3 min readMar 8, 2016

--

In this post I want to talk about the strongest current in front-end development: client-side processing and logic.

It is my belief that we will reach a point soon where the central data processing node in the client-server interaction will be the client. Web browsers will securely load all of the information that they need to run from cookies or personal servers, and then will interact with other browsers face-to-face, without corporate intermediary data storage.

Corporate servers will exist only to allow independent clients to connect in a secure way and provide an interface for that interaction. Companies will not save or process customer data unless explicitly allowed to, and they will of course not be rendering any markup for the client. When you hit a web page your client will download the interface provided to you by the third party server (defined by Javascript, HTML or JSX, CSS (maybe), and an entrypoint for the user’s own data. Once that data is saved on the client, the two clients can have an un-interrupted conversation, passing JSON back and forth via websockets or web RTC.

There are two stories that illustrate the start of this trend:

  1. Client Side Rendering. 10 years ago the largest players in interface building were all rendering markup serverside — .NET applications in C#, Java Apache Applications, and PHP applications all processed markup creation on servers to save the client time rendering. There used to actually be “white time” unless your interface was rendered serverside and then returned to the client. The Javascript V8 engine has since become orders of magnitude more efficient and powerful, and almost all interfaces are now rendered and manipulated exclusively client-side.
  2. Client Side MVC. Last year client-side applications were dominant, but they were single page applications — rendering once on initial page load and then only asking for more chunks of data through ajax calls. The problem with this was that it is inefficient to make tons of AJAX requests from your server as users are using around the page. You want the flexibility to ask for more data and then hold onto it — to choose when and how much data to receive. Front-end frameworks(Angular, React) solved this problem by creating a front-end data model that allows pages to store data in Javascript notation.

Clearly there is a trend of pulling more of the application logic onto the client, but what will this mean for the future of web development?

Imagine a world where your cloud service is not little puzzle pieces of your data, it is you. All of your messages on every messaging app that you use, all of your photos that you want to save an manipulate on the web, every carefully-staged frame in the snap-chat story of your life. When you log onto a web messenger app, you download the companies React application, render the JSX components client-side, and load your own JSON blob with all of your messaging data into the data store that is defined by the app. You communicate with your friends and then when you log out, your client sends the updated message blob back to your own cloud server.

I think we are getting to a point where the common browser will be powerful enough to essentially become the entire MVC application, with companies only providing the communication interface and protocol layer. It will give users more ownership of their data and more control over who they share it with. It will make connecting faster and easier.

I hoped you liked this thought exercise. Follow me at @azitowolf!

TL:DR — Browsers will process more data and perform more logic in the coming 5 years. Client-side MVC will replace client-server MVC. Learn Javascript. :)

--

--

Alex Zito
Tiny Code Lessons

Software Developer + Product Manager. Interested in Travel, Culture, Economics and the Internet. Join Medium: https://tinycode.medium.com/membership