Why node.js
It seems that fashion and
IT goes round in circles. Not that I care too much about fashion. In
the past 20+ years I have been in the IT, many ideas and concepts
were “reinvented” and resold to unsuspecting new generations of
programmers. In fact, at the time I decided to become one,
programmers were called “computer experts”. It still sounds good.
In 60's and 70' we had
mainframes from the likes of IBM and Sperry Rand Corporation. The
function they had back then is practically identical to what we now
call Cloud computing. Perhaps it's good that Microsoft did not come
up first with that name, and patented it. Otherwise the name would
have to be Internet Mainframe or Virtual Machines for Rent Over the
Internet. In-between we had good old client-server model. Good old
because both client and server were usually written in the same
programming language and using the same tool. Visual Studio 6 comes
to mind immediately. All you had to do was to drag and drop a control
on the canvas, double click on it and write an event handler. Or few
of them. Nice and easy. Later others like QT, Eclipse and NetBeans,
just to mention few of them, followed. The best part was that you
seldom had to worry about operating system. Either you had no choice
(Windows) or you had cross platform IDE and, again, no worries.
At that idyllic moment
Internet moved into lives of programmers. New programming languages
were created at such pace that if you went on vacation for more than
one week, you could not understand job adds after that. I am a huge
fan of open source movement and innovation, but not all programming
languages were created equal. Especially to the, how should I say,
classically educated programmers. The appeal to the new generations
is obvious and they started using the new languages on large scale.
The real problem for me emanated from the fact that now there are far
more elements in the game than before. We have browser for a client
which connects to a web server which is hosted on a file server. It
usually translates to at least two operating systems. That is, of
course, if you do not have to access a database which could be
anywhere in the world and who knows on which operating system. Now,
transparency is very nice thing, but you usually end up having client
written in one scripting language, server in another and all that
glued together wit the third one – HTML. Many frameworks emerged as
an answer to this problem. But these are mainly for creating content
management systems. Not for writing web applications. Not in good old
drag-and-drop-double-click-write-code way. I ran through RIA
frameworks list but I did not find what I was looking for. So,
for a moment, I let go of this, hoping that, in the future, this will
be solved.
On the other hand,
choice of a programming language was pretty straightforward.
JavaScript practically imposed itself as a de facto standard for the
client side. And there is no shortage of libraries like jQueru to
facilitate client-side development. The only thing missing was
server-side library for JavaScript. And then I discovered node.js.
Again. The first time I looked it was in very early development
phase, so I was very quick to discard it. In the meantime big
companies, and I mean big companies, adopted it and that was it. I
stopped looking.
This blog is going to be
about it node.js. I shall try to create accompanying web site for
code samples that are going to be runnable and a Wiki. I'll try to
cover different operating systems as well as a few IDEs to code it.
Comments
Post a Comment