Mar 10, 2017

4 min read

What programming Language should you learn for Web Development

Javascript, and thus Node : I have a very deep reason for saying this. Read the article very carefully.

Web is evolving around Javascript. Millions of computer years ago, when a website was created, they essentially, were a collection of web pages with a four letter extension called “html”. These were, later, beautified with colours using files with extension called “css”. Finally they needed some actions top be performed likemake a picture pop out of nowhere or a slider moving on your page. These made possible using a programming language called Javascript. You would surely by now say — cut the crap and tell me the answer. Yes, I am coming to that in a moment. Since the computers of yesteryears where not having big storage space aka hard drive, and has tiny RAM memory and since internet was a like small (broken) pathway, we invented the SERVER. So we had to go an fetch data every-time a user clicked on the link or on a picture. This was also called loading !

Enter 2017, the internet has become an 8 lane highway (two ways each) and your computer and mobile phones have become “super computers” when compared to even the previous decade. Technology architecture, however has stayed the same, which is fetching data from a server using the same highway, using a protocol called HTTP by building an API called REST.

This means that even though now you own a “Ferrari”, you are getting the features of a 1940’s ford Model T. But consumer behaviour is changing rapidly and they are demanding, more out or their webApp (earlier know as website). Now, they want to complete a transaction in “3” or “4” clicks. They don’t want to wait for the server to respond. They want the webpage to be responsive and dynamic and intelligent. Which is a good thing, because todays’ technology can accomplish all of this and more. Today a website is “just” a market place of information. It fetches the login data from facebook, it loads articles from other websites and it allows you to pay for product using another sites api. Server Technology in the traditional form, is history !

Leading Web-development companies, like google tried to provide a break-fix solution in the form of AJAX, where only parts of your website needs to be re-rendered or loaded, making the experience feel seamless and smoother than a traditional site which need to load every element of the page. This ofcourse was made possible by loading the page and a little more of the page on to your browser, and let the browser behave like a mini server. eg. When you go to Gmail, the inbox loads all the mails summary plus every single mail in detail is loaded in the background read to be opened when clicked. This means even when you loose internet connection you can still open a specific mail from the summary list. Clever, but limited to single page (the summary of email). If you really want to dig deep to next page of your email and further this technology goes back to the traditional, loading of page methodology. In simple terms, it was a break fix.

Enter, Node.js, a new technology which simply server the page one way. It uses a smart technology called asynchronous I/O to respond to any user action on the webpage, in an instant. If you compare your own body(skin) to a Webapp (webpage), the body doesn’t use the brain for every stimuli. say, when you touch an hot object, your hand retracts, instantaneously, even before your, brain knows it. That’s because your skin communicates to your spinal cord and gets a response. The spinal cord, doesn’t waste time sending the signal to the brain and waiting for instruction to come from brain to pull the hand away. Now, if you think your skin is the HTML page and your spinal cord is asynchronous operation, you will understand that a computer today works exactly on the similar, principles. For quick and easy tasks it uses the browser (text ask html and colour aka css), for a little complicated task it uses the in-build Javascript engine, for a small data fetch activity (like updating a chat window) it uses the I/O methodology of Node and only repeat only for very large data manipulations, does it really need the fully capability of using a server (or the brains). All this is possible only using Node as a server not Django, not Laravel, not Rails.

The world is converging towards making the web, a primarily “browser based” activity, which is where Javascript shines, because it is the only language which runs on the browser, repeat “let it sink in” the only language which runs on the browser.

So, as a newbie you should invest in Javascript, and thus Node. Node has good set of frameworks — Express being the most popular, followed by Meteor.

If you are further interested in this topic, then learn about SPA (Single Page Application) and Flux Framework.