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

NETELLER - Privacy and security design flaw

Yesterday, colleague of mine brought to my notice about a payment system called NETELLER and it's merchant API named NETELLER Direct API V4 . This NETELLER Direct API V4, helps the merchant to collect amount from users. It's simple--same just like early Authorize.net , along with the required amount you collect the user's id and password and post them to their API URL and they'll send you back with success or error codes in XML format. The major problem with these types of system is security and privacy --you lose both as you're forced to type your username and password in alien web page. If I remember right, this is was the case with Authorize.net and they changed their design to something like PayPal . The PayPal design is somewhat better as you never type or forced to type your username and password in other alien web pages. The alien merchant web page uses NETELLER Direct API V4 is forced to get user's NETELLER account and password. I'm much s...

Converting PSD with PHP/ImageMagick

After seeing feature rich options in Imagick PECL extension at Mikko Koppanen 's (the author) website and also impressed with ImageMagick 's features, I have decided to use it for the PSD to XHTML conversion website that I'm architecting and managing. Since, the team wants programming help for converting PSD images, I have tried it (documentation is sparse on PSD handling) Converting PSD to PNG/JPEG/etc Note that, flattenImages() is needed for layered/multi-page PSD file. <?php $im = new Imagick('test.psd'); $im->flattenImages(); $im->setImageFormat('png'); $im->writeImage('test.png'); ?> Extracting PSD layers One by one <?php $im = new Imagick('test.psd'); $im->setImageFormat('png'); for ($i = 0, $num_layers = $im->getNumberImages(); $i $im->setImageIndex($i); $im->writeImage('layer' . $i . '.png'); } ?> Note that, there is a better version below In a single call with writeIm...

Stampede and the "Dirty" "Dark" Crowd

Actor Ajith Kumar’s recent interview has sparked quite a few conversations on social media. The part that caught my attention, was his take on crowds. About 30 years ago, when I first joined a college in Madurai after growing up in other places, I experienced a few cultural shocks. Perhaps these weren’t unique to Madurai, but that’s where I first noticed them. One major thing that stood out was the behavior of crowds. For instance, if you suddenly see people rushing to board a bus, chances are there’s a pickpocket in action. During one of Madurai's annual festivals, I noticed some young men carrying water bags — not to distribute water, but to spill it on women, often on their chests. Shockingly, this was almost normalized; parents would quietly tolerate it to avoid public embarrassment, walking a little farther behind the crowd. When some women happened to witness this, they would just shoo the boys away instead of confronting them. The crowd, in such cases, became a kind of...