I am been developing websites for 15 years, and most of my experience has been good. Before that I have been an embedded systems programmer, to code a microcontroller and not knowing what its really intended for was a wreak on my soul. I am a guy who though believes there is no purpose in life, nothing is constant, and everything is meaningless, I strangely seek for a purpose of my actions.

I left big corporates, and not knowing what HTML is, I stated creating websites for people and businesses, and I was successful. People said there is a miracle stuff called PHP, and I am just using plain HTML to create websites, I learned PHP and it improved my productivity a lot. I loved it.

Then I came to know about this programming language called Ruby, I tried it out. Boy I was blown away. I thought PHP was super productive compared to C and Java, but Ruby was not even next, it was way way way far ahead. There was this framework Ruby on Rails, I failed to learn it many times, but eventually I mastered it. It immensely increased my productivity, a months job in PHP was just day in Ruby on Rails!

Rails before Version 4 also eliminated a pain point, it was called JavaScript. A very poorly designed language (and it’s still poorly designed), it was pain to use. Rails people built a wonderful library called Prototype and Scriptaculous, and they wrote a Ruby wrapper called Rails Java Script which encapsulated the dirtiness of JavaScript. It was all great.

Then came in jQuery, it was JavaScript-ish which made us shed tears but Rails also included Coffeescript, which removed some pain of writing JavaScript. Though Rails was bit rotting away from its promise, it was okay because of Coffeescript.

Then for some reason around Rails 6 Cofeescript was kind of stopped working, currently I am using jQuery and vanilla JavaScript to write my front end, and it bit sucks. Plus I have to deal with all this webpacker comedy which makes app development immensely complex!

In Rails 7 I guess webpacker and nodejs are kind of pushed away and people say its good, but I am still trialing out before I recommend it to my customers. Rails still advocates using JavaScript, which frankly sucks.

I am exploring Clojure and ClojureScript, just to escape the menace of creating apps using JavaScript. I was also attracted to Microsoft’s Blazor framework where we can code everything with C#, but then which one having brains will ever trust Microsoft?

The one area I have missed exploring or to be frank haven’t explored because it seems not to integrate with Rails well is Opal. I truly wished Rails embraced Opal, and we need not touch JavaScript ever again, but then for some reason it did not happen.

Any way let me come to the point of this blog. I want to tell the world why I think its super silly to have a JavaScript framework. Well here it is.

We store data mostly in a system called RDBMS, and its major role is store, and retrieve data thats all. It was created to be very efficient for that. It wasn’t created to generate a HTML document that could be served as web page, plus it’s not created to be immensely secure. One wrong query could destroy an entire app and the Database. So we have this red thing in middle called the Web Framework that makes sure that some user action won’t trigger a query that destroys the business, and it retrieves data from the browser, stores it in the DB and get’s the data from the DB, generates a HTML and sends it out.

Now look at the above picture, you have inserted a JavaScript framework in between and you send JSON back and forth to the web framework and JavaScript framework converts to HTML. That kind of sucks. You are adding an extra layer just for nothing! That to me is really really stupid and could be avoided.

Why big tech promotes this approach

In big tech, what looks good on paper, getting approvals from various levels for your idea, a tech guy looking good on paper and his survival is important than solving problems that humans face. So they tend to do what looks good on paper. Look at the diagram below:

You see a nice front end, a nice back end and they are connected by JSON. The front end could be a mobile or website running on a desktop, the back end could be written in any language and they are connected by this JSON which provides good abstraction. On paper this looks clean. For an inexperienced it looks good. So they get this stuff approved. They claim it’s an innovative way of doing things. Since they are big tech, they can afford to develop new front end frameworks which suits their thought at that time. They could hire big teams who would take care of front end, back end, a team to look at the architecture and synchronization between them and can handle all such complexity.

Now consider us, most of the tech guys who service clients. Now think, are we here to solve some ones problems with tech or spend multiple millions on advertising saying that we are on the bleeding edge? Think if we have the man power or the money to pay big teams which can take on this architecture? Think is it worth the effort to convert website data to JSON to Database rows and vice versa?

Most tech people think what’s been done in big tech is right because big tech has more money. Why don’t they think big tech has more money and hence they can afford to be inefficient? Most developers fall into this trap, they learn some front end framework, they put it on their resume so that it looks cool, and their life follows resume driven development approach to their grave.

It’s for you to ask yourself, did you become a tech guy to solve peoples problems using tech? Or are you here just because you are here and are okay to go with what ever is thrown at you?

Notes

Source of diagrams.