Node and The Essence of Programming

In the 1960’s, when Seymour Papert invented Logo, the hot new innovation was Structured Programming, which emphasized three key concepts:

  • Sequence: doing a group of items one after another (statements)
  • Selection: choosing which items to work on next (conditionals)
  • Repetition: doing the same thing more than once (loops)

This idea of organization programs into statements, conditionals, and loops — rather than just jumping around memory using “goto” — greatly increased the readability and maintainability of software. Forty years later, this concept of loops and conditionals is still used by virtually every Hour of Code tutorial.

But the story doesn’t end there. Since then, our industry has experimented with a variety of other techniques for organizing code, such as:

  • Object-Oriented Programming
  • Functional Programming
  • Service-Oriented Architectures

These build on and modify the insights of Structured Programming in an attempt to make it easier to build large-scale systems. The techniques each have their strengths and weaknesses, and many programmers love to argue about which is “best.”

But recently, something surprising has occurred. The most successful distributed system ever invented is the World Wide Web you are using to read this page. Web browsers send a “request” to a server, which sends a “response” back. The funny thing is, JavaScript — the language embedded in our web browsers — works in a very similar way. JavaScript is designed to respond to “events” on a web page the way a server responds to requests for web pages.

Some clever people at Joyent seized on this analogy to invent a server-side environment for running JavaScript called node.js, or “node.” This “event-driven” paradigm made it very easy to build highly-responsive web server applications — with the added benefit that almost the exact same code can run inside a web browser.

But there was one more curious coincidence.  When The Swan Factory, Inc. began our research, we traced the origins of computation all the way back to switching circuits. There, we noticed the circuitry inside our computers also sends signals and responds to events — just like JavaScript and the World Wide Web!

It made us think.  The smallest and most primitive forms of computation — and the largest and most modern forms —  are organized around the concept of reacting to streams of events.  What if we could build a simple programming environment organized around that same concept — and cut out all the complexity that has grown up in the middle?

And so we did. Because it is built on both the technology and the concepts of node.js, we call it the Hour of NODE.  We launch during CS Education Week, 2014. We hope you like it.

  One thought on “Node and The Essence of Programming

  1. Pingback: Page not found |

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: