Back to articles list
- 4 minutes read

Do We Still Need Server Side Programming?

While developing Vertabelo, which is about database design, I learned Javascript and a lot of new things about SQL. I already knew HTML pretty well. So I recently asked myself a question “do I still need server side programming?”

A Brief History

The ‘90s had their own specific version of Internet. Let’s call it 0.9. It consisted of servers filled with HTML documents that were accessed by users via their web browsers. In those days, users were “browsing” the Internet.

Some years later someone had an idea to generate HTML pages on-the-fly right on the web server. Users were able to “browse” to dynamically-created and personalized content. This was a revolution.

HTML generation became more and more sophisticated and finally someone started calling it “server side programming” and these generated web pages became “web applications.” Internet 1.0 was born. Users were now “using” web application in their web “browsers.”

I got my first job at the dawn of Internet 1.0. Server side programming was so obvious at that time. It was often compared to old-school desktop applications; “no more installation problems” and so on. However, it had its own problems. First of all, it really sucked in terms of UX. Also, user interactions were slow. But people got used to server side programming despite its cons.

Server Side Programming Characteristics

There a few common components of server side programming besides the technology used:

  • handling HTTP requests (frontend controller)
  • emitting HTML pages (templates, embedded solutions)
  • accessing a data store (SQL database, file and so one)
  • tracking users (cookie sessions)
  • implementing business logic

All of these components are programmed in a specific language, for example Perl, Java, PHP, Python, Ruby, or Erlang. Almost every language supports web programming. Different syntax, same semantics.

Server side developers have a tendency to solve every problem in her/his favourite language. They do not like talking SQL to the database so they invented O/RM. They don’t like writing HTML tags so then invented various templating engines. They don’t even like programming Javascript so they invented their-fav-lang-to-JavaScript converters. Everything has to be written in the chosen server side technology. It has to be very abstract and complex (yes, I’m talking about Spring). I see a ‘dead end’ road sign here.

Web Browsers Grow Up

Meanwhile, browsers didn’t stop evolving. Gmail showed us how to use browsers differently and brought a fresh approach to UI. It’s called SPA (Single page application) and it relies heavily on AJAX calls. Nowadays, we can do a lot of more in a browser than we could in the beginning of Internet 1.0. Yes, I know we are living in the age of Internet 2.0. This it rather a culture shift than a technology shift. We’re still waiting for a technology paradigm shift. Personally, I would stop calling a browser a “browser.” These days it should be called an internet client or even better, a cloud client.

Server Side Programming Today

So how do the new browser capabilities affect web programming? There is a shift towards frontend programming. Javascript isn’t evil anymore. There are plenty of good quality frameworks. Server side is still strong and it still emits HTML pages but it has started emitting raw data as JSON.

For the last year I’ve been working on Vertabelo, online database modeler, which is written using this modern approach. I learned Javascript during development. Since Vertabelo is about database design, I learned a lot of new things about SQL. I also know HTML pretty well. I recently asked myself a question “do I still need server side programming?” Why can’t I access the database straight from the frontend?

Most desktop business applications have a two-tier architecture. #noServerSide will have the advantages of both worlds. Simpler, cheaper development (only JS/HTML/SQL), a rich UI equivalent to a desktop application, and no installation required.

Something is going on the internet already. For example: A RESTful JDBC HTTP Server built on top of jOOQ. Modern databases like crate.io are designed in a distributed manner. Gotta keep an eye on it!

Here is my manifesto: Let’s ditch server side technologies and bring back HTML, JavaScript and SQL as first class citizens of web programming.

What Do You Think About It?

P.S. I’m not a JavaScript fanboy for your information. Launching the Chrome console reminds me of my 8-bit Atari programming experience. Just power on and code.

go to top