Skip to main content

Node.js and client app are the future of webdeving?

Recently we had to try a new technology. As expected, we did hit edge case quickly. After analyzing thoroughly, we had to ditch part of the stack.

But, I had developed much interest over Node.js, Redis, WebSocket and client app technologies lately and I hope that they'll take the lead.

Some frequently asked questions about these technologies:

What is Node.js?
It is set of JavaScript libraries around Google’s V8 JavaScript engine, written by Ryan Dahl in 2009.

Why Node.js is picking up?
With Node.js, it’s easy to write web server in pure JavaScript. We can totally eliminate another language interpreter layer by programming the web server to handle the request directly (For example, in LAMP, PHP is required to handle the requests. But, in Node.js based server, no such layer is required).

Is Node.js a right choice?
It depends. Though few developers may find it easy to adopt, others may find it difficult to write quality code in event-driven asynchronous style. When there are lots of modules in a project, it is better to stay with Rails-like framework.

What is Redis?
Redis is key-value (think about array('key'=> 'value')) based in-memory database.

Why Redis is picking up?
With Redis, the data access time will be greatly improved.

Is Redis a right choice?
For me, Redis is an ideal choice for medium-to-high data store and where complex reports are not required; in those cases, it’s better to use it around any RDBMS like MySQL.

What is client app technology?
The "views/templates" are available in client-side (obviously transferred from server once) and the data are transferred in JSON format from server. With this, it may be enough to setup REST service in server-end; but the client-side code may get trickier. This approach is already used in Gmail and Twitter. With Backbone.js, Knockout.js and similar frameworks, it's somewhat easy to write client apps.

Why client app technology is picking up?
Few modules--like digg, delicious, etc are the latest trend in web. So, it would be right choice for fast responsive web pages.

Is client app a right technology?
If there are too many modules and SEO is of big concern, it’s better to stay with Rails-like framework. But, note that LinkedIn has mentioned that SEO is possible with dust.js, the library that they have chosen for their client app technology migration. Some developers may find it difficult and would end up writing sloppy codes. When more browsers compatibilities are required, it may not be the right fit.

What is WebSocket?
It is the push technology through we can instantly push changed data to client.

Is WebSocket a right choice?
It depends. When the data changes are to be propagated to all clients, it will be ideal choice. We may use Socket.Io library for the browser compatibility. It is also a good fit with Node.js

Comments

Popular posts from this blog

BehaviorS.js - An alternative to Behaviour.js, event:Selectors and Low Pro libs for unobtrusive JavaScript programming

BehaviorS.js yet another unobtrusive JavaScript library similar to Behaviour.js and event:Selectors but in implementation uses hash based lookup without extending elements; so presumably it should be faster than the rest. The original script and idea was by JLof ; I extended it for DOMContentLoaded support, optimized a bit to avoid scanning of more depths, and added new rules support. I wanted to document the plug a long time and just got time to do it. For the time being BehaviorS.js is available here Update (2006-09-11) : Coralized the link to BehaviorS.js so as to save the load on free brinkster.com webpage Update (2006-09-27) : If the coralized link to BehaviorS.js doesn't work, use http://www21.brinkster.com/guideme/BehaviorS/ Update (2025-06-07) : Now available in https://github.com/rrjanbiah/behaviorsjs

"A to Z of C" in the book Cimple (ISBN 0070260982)

I was just searching "A to Z of C" in Google Books and found that the book Cimple written by Sasant K Rout has used our code. The irony is that the book was published by Tata McGraw-Hill , who rejected us in final stage stating that it wants us to get endorsement from any IIT professor, which we couldn't. (For the sake of record... IIT Bangalore was linking & supporting "A to Z of C" for long time once it's published over the net; see old IIT page from web.archives.org ) It's just another incident to prove that success isn't a measurable unit; even failed attempts can be appreciated in any other forms.

Storing unicode texts in MySQL with phpMyAdmin

Today, I've received a personal mail/request from Sivanantham Hemamalini, working for IT leisure in Singapore. Since I was in company when received the mail, I couldn't answer immediately. If I understand the question right, it is about inputting Unicode texts especially Tamil in phpMyAdmin. PhpMyAdmin 's default characterset is iso-8859-1 and so if we enter anything in the form, browser will convert it into numerical html entities. Say for example, if we enter தமிà®´் and submit the form, it will convert it to & #2980;& #2990;& #3007;& #2996;& #3021; . Because of this browser's behavior, it will be difficult to store the Unicode text as it is. Solutions Immediate solution I could think of is changing or forcing the browser's character encoding into utf-8. In Mozilla Firefox, it can be set via View -> Character Encoding -> Unicode (UTF-8) Another elegant solution might be changing the phpMyAdmin configurations so that it send...