I have a dream that one day this world will rise up and live out the true meaning of its creed: "We hold these truths to be self-evident: that all nodes on the Internet are created equal."
I have a dream that one day on the red hills of Silicon Valley the sons of IBM 360 and the sons of Apple iPhone will be able to sit down together at the table of RESTful Internet.
I have a dream that one day even the Apache server, a server blocking thousands of threads, will be transformed into an oasis of freedom and asynchronous callbacks.
I have a dream that my four little children will one day live in a nation where they will not be judged by the operating systems of their smartphones, but by the number of Node.js-based services they run on those devices for other people.
I have a dream today.
I have a dream that one day every devices on this planet will act as clients as well as servers, running Node.js applications, never blocking any threads, talking a common language (REST over HTTP), and pushing and pulling JSON data and JavaScript code freely and asynchrnously.
This is why I created neu.Node, Node.js for iOS devices, and opened it to the public.
https://github.com/snakajima/neunode
Have fun!
The project neu.Node was born in September 2012, when I have just realized that I've got to port Node.js on iPhone in order to solve a number of problems I had at that moment.
At that time, I was building an interactive presentation application for classrooms in Node.js. This application takes a full advantage of real-time communication enabled by Node.js and help teachers to turn his/her class into an "engaging" space with variety of real-time/interactive web pages.
Even though I could offer this application as a cloud-based service, I rather wanted to offer it as an application running in the classroom for a number of reasons -- more control, security, privacy, faster responce, cost, bandwidth, etc.
Asking teachers to run and a Node.js server on their PCs, however, is not an option. It's too difficult for regular people to manager service applications on their PCs.
At one point, I seriously consider offering it as a hardware solution - running Node.js + my app on tiny linux box (like Raspbery Pi), rasing money using kickstarter.com.
Then, I have realized that all I need is a sand-boxed Node.js runing on iPhone or iPad. It has to be sand-boxed so that I can distribute it as a regular iOS application via iTunes store.
I knew that it won't be easy because it's not a straight port, but my gut told me that it is quite possible.
This is how this project was born.