Contact
+33 1 70 616 016

separator
jabber
Live Chat
separator 24/7
Bear Support

separator Paris, Berlin
San Francisco

services
Recherche et développement
clients
Société
SERVICES
R&D/LAB
CLIENTS
SOCIETE

Nodejs is a toy.

By Athoune on July 5, 2012 12:43 PM | No Comments | No TrackBacks

The world is async. Thus programming has to be async too. Actually, Moore’s Law is a lie, you don’t have to wait for more power, you just have to wait less. But Async programming is hard because you write linear text wich is translated to async actions. Async is a new world and the old one is not able to evolve from sync to async.

Threads are rough tools, like assembly. Languages can use it, but you should not, really.

Python gevent, Ruby Event-Machine are geneticaly modified chimeras. You are born async or not. Erlang, scala, golang, nodejs, all of them are born async, try them and feel the difference.

Async programming will be your new sport

Nodejs is the world best language to learn async programming, period. No one can beat javascript.

It is a functional language, its syntax is just universal. Javascript learning curve is one of the flatest. And no one can avoid javascript, client side, server side, in your database, it’s everywhere. Moreoever, efforts to make javascript fast has no equivalence. Even the JVM gets less love from Mozilla, Google, Apple and Microsoft.

Javascript use just two tools to handle async: events and callback. Python is condemned to stay in the old world with its lack of anonymous functions and anyway, you can’t mix sync and async tools. Javascript documentation is concise, weirds parts are not weird but exotic historical stuff. Spaghetti callback is just a sport for optimizing your brain. Nodejs fundations are good (libuv, V8), without batteries included, but users provide these in a very short time. Nodejs is the best tool to build async client/server prototypes.

Yeah, just prototypes.

Because nodejs is a toy.

Hell is other people

Regularly, nodejs breaks its API. I saw the drama when 0.4 became 0.6 and now 0.8. Your own code is easy to upgrade. Not the library you depend on. Npm (the package manager) is full of half baked libraries. Sometime, angry developers fork, fix and pull request abandoned libraries. You can wait years for a merge. Nobody cares. Everything is just prototypes or toys. However, you can trust the work of Substack, Astro, VisionMedia or Joyent. Because they work with nodejs, they are not prototyping. I would trust the package manager. When I want to play with msgPack, I just want to type “npm install msgpack” and not googling to find the right fork.

Nodejs is not yet 1.0 version, so it’s ok to upgrade MY code when major versions come: nobody wants to live the drama of Python 2 to 3, right? An API is only engraved when it is stable and coherent. Release early, engrave later. But I don’t want to be trapped with an old version of node and bother my Debian admin with a specific version. I don’t want to lie to him when he ask me where is the STABLE version of nodejs.

So remember, don’t try to work with nodejs. Play and prototype as much as you want but when it comes to real life problem solving, use real languages like Erlang, scala or even golang. It’s a pity, and Crockford and Ryah will be sad about this.

Tags:

  • javascript,
  • nodejs

No TrackBacks

TrackBack URL: http://blog.bearstech.com/mt/mt-tb.cgi/11

Leave a comment

Search

Tag Cloud

  • arduino
  • benchmark
  • cdn
  • cloud
  • docker.io
  • elastic search
  • eventsource
  • jabber
  • javascript
  • leofs
  • lxc
  • mongodb
  • nodejs
  • nosql
  • openid
  • openstack
  • riak
  • ssl
  • statsd
  • xmpp

About this Entry

This page contains a single entry by Athoune published on July 5, 2012 12:43 PM.

Mesures was the previous entry in this blog.

Une norme pour allumer les yeux d'un nounours. is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Categories

  • Sysadmin (7)

mensuelles Archives

  • May 2013 (1)
  • April 2013 (6)
  • March 2013 (10)
  • February 2013 (6)
  • January 2013 (7)
  • November 2012 (2)
  • August 2012 (1)
  • July 2012 (2)
  • May 2012 (1)
  • January 2012 (1)
  • December 2011 (1)
  • November 2011 (1)
  • October 2011 (1)
  • July 2011 (1)
  • May 2011 (1)
  • April 2011 (2)

Pages

  • Subscribe to feed Subscribe to this blog's feed
OpenID accepted here Learn more about OpenID
Powered by Movable Type 4.38
Le contenu de ce blog est publié sous licence CC-BY-ND.
hebergement django roor drupal

Services & Produits

L'offre Bearstech
Conseil
Hébergement
Infogérance
Infrastructure
openmoko

R & D

Innovations hébergement
Hackable Devices
Presse en ligne
Applications
references

Références clients

Nos clients
Nos Partenaires
hacker's company

Bearstech ?

Présentation
La carte des ours
Pourquoi nous choisir ?
Implications
L'équipe
Contact
bearstech contact
Hebergement Debian Open source GNU/Linux Developpement PHP Developpement Python
  • Plan du site
  • Accessibilité
  • Contact
Se connecter Terminal