> I have worked with Python for 10+ years over Apache and rarely other
> platforms too. I have developed software over mod_python and mod_wsgi. I
> will try to shortly touch a few main differences between how we did things
> in Python using it with different platforms and what are the similarities
> and differences between those and the environment Node provides.
> First of all, Node is not direct competition of Python. Everything is
> different from head to toe between two platforms.
> There are many different implementations of Python interpreter today; but
> they all try to stick with the standard definition of the language. The
> standard interpreter cPython comes with a very rich standard library. In
> this standard library, there are modules to quickly develop a web server;
> but we rarely use those. Instead, we depend on other web servers like
> Apache or nginx to handle http. However, there are also web servers we now
> have access to which are really close to Node. One very famous of them is
> Tornado.
> At Node's side, things are pretty different. First of all, JavaScript
> standard does not define a standard library like Python or many other
> languages do. This is not a shortness; but a different way of seeing the
> world.
> Node is built on V8, a JavaScript interpreter. This way, Node provides
> something like python interpreter in regards to being an executable
> application to run scripts. The very same way you run python myscript.py,
> you run node myscript.js.
> Node also has its own standard library of functions. It is nowhere close to
> having *everything* like Python standard library does. Again, this is not a
> lack of features, this is the way Node is meant to be. Instead of having a
> giant standard library, Node has a *playful* module system that provides
> extremely easy ways to build, pack and publicly share your libraries. Node
> simply prefers playing liberally instead of dictatorship.
> As for the key point in your question, as a web development environment,
> what Node provides is almost the same as what Tornado provides. Web server
> is not a separate application. You have all low level http functionality as
> a library provided by Node. Don't get me wrong, I love Python, I still
> heavily use it for many things; but the http server module Node provides is
> a serious one unlike the one in Python standard library. Python's http
> library is meant to be used in development environments while Node's is
> designed and implemented for heavy-duty production servers. Again, if you
> take a look at how Tornado works, you will have a much quicker grasp on the
> mindset of Node's web development environment.
Thanks very much for the thorough overview. I work in two
hosters like Hostmonster and servers owned by clients. It is
likely that not all of the former types (Hostmonster et. al.)
would host node. Am I right?