read


read
or learn more

Node.js is dead. Long live Node.

Apr 12, 2011

Funode

the development of this project has been superseded by my involvement with ClojureScript. novus ova seclorum!

I give node.js a ribbing from time to time, mostly in response to the propensity of its greatest adherents to view it in an unrealistic light. My real bias is of course against Javascript. My problem with Javascript has always been that expertise is defined more in terms of understanding its faults rather than its features. Node.js needs to be liberated from the shackles of the unwieldy mess that is Javascript. Node.js should become its own language forged in the embers lit by Crockford.

Node.js is dead. Long live Node.

Funode is my vision for a runtime that realizes the potential in Node. Funode is a functional library for Node.js — a state of mind yielding Node.

The greatest things to happen to Javascript are:

  • being tied to the browser
  • being divorced from the browser

Node is the way forward. Funode is the map.

The Funode Way©

Why would you write this:

function do_request(req) {
  return long_io_operation(
    req, 
    callback=function(results) {
      return create_something_from(results);
    });
}

When you can instead write this:

function do_request(req) {
  var result = long_io_operation(req);
  return create_something_from(result);
}

This is but a taste!

The Funode Way© will include:

  • persistent, immutable data structures
  • coroutines
  • pure prototypal inheritance
  • functional composition
  • observable collections
  • functors
  • advice
  • currying
  • partial application
  • combinators
  • unification
  • promises
  • pre and postconditions
  • macros
  • FSMs
  • and so much more…

The next step of course is to print some t-shirts and speak at some conferences, but then the very next step will be to change the world.

T-Shirt Options

Funode: exploiting the inherent inefficiencies in nothingness

Use Funode! Because I/O is always slower.

Use Erlang! message queues! Funode!

Node.js is dead. Long live Node.

Available as polo, for casual Friday.

Changing the world

TBD

:f

6 Comments, Comment or Ping

  1. Shane Whittet

    var Forking = bad; var Extension = !Forking; return Contribute(Extension, Library.Please();)

  2. There are things that could be better with JavaScript.

    You can get into some callback hell with a system like node.

    But,

    There are better JavaScripts (CoffeeScript)

    There are chaining libraries (like Seq etc that you use in funode)

    Having JavaScript on the server AND client gives you some interesting features. On a little blog that I have (functionsource.com) we run the same JS on client and server (a la davglass yui+node dom) and it allows us to snapshot to folks like googlebot / older browsers, but allows developers to write in a dynamic fashion.

    funnode looks very cool btw…. love this type of experimentation! :)

  3. @Almaer

    There are better JavaScripts (CoffeeScript)

    I like Coffeescript very much and would be hard pressed to create anything that might even achieve a fraction of its success. So I will leave the language game to people more talented than myself. I’m more interested in the runtime for now (as I tried, but failed to express clearly). Further, it hearkens to the viability of Javascript as a compilation target — something I think will grow increasingly important moving forward.

    :f

  4. matsuri

    “My problem with Javascript has always been that expertise is defined more in terms of understanding its faults rather than its features.”

    Maybe you just don’t understand the features?

    Your attempt goes totaly the wrong way. Sorry to say it that clearly. I think you should search yourself another language.

  5. Javascript has always been that expertise is defined more in terms of understanding its faults rather than its features.”

    Maybe you just don’t understand the features?

  6. jonjon

    Being a good JavaScript hacker and loving it requires a flexible mind… years of CS can be detrimental to the kind of brain function needed for that purpose unfortunately..

Reply to “Node.js is dead. Long live Node.”