I agree with Dan on this one. The key benefits of node.js vs C#/IIS (I have been doing that since 2000):
* Pleasant development experience * Access to the newest technologies and ides (just remember the drama getting coffeescript, sass etc support in the VS environment) * The module system (npm) and the open source principles embodied in git workflows (even MS folks realize that this is good these days) * Working with a like minded community - I never found that in C# * Access to the best developers in the world (Hiring for c# is a gigantic pita). * One language between client and server when doing web or phonegap work. We only have seen the beginning here. On Tue, Jul 3, 2012 at 11:52 AM, Dan Milon <[email protected]> wrote: > About performance, from my POV the differences are the concurrency models > each platform uses. > > From one side, IIS has a thread pool, one thread per connection and > blocking IO. > At the other hand, node has one thread, and non blocking IO. > > First approach problem is that memory consumption is increased linearly > with each concurrent request because each thread has its own stack. (try > spinning 10k threads) > > Also the more the requests, the more the threads running, thus more time > is spent on context switching between these threads instead of doing > something valuable. > > The obvious solution would be async & non blocking IO, but it is not so > straight forward to implement it, and any solution wouldnt be cross > platform, but we are lucky all this complexity is abstracted by > libev/libuv. Javascript made a perfect fit for a higher level language due > to language-level anonymous functions & closures which allow you to write > non blocking code easier. > > Of course there are very many problems introduced with async & javascript, > eg callback nightmare and you should be aware you will face this sooner or > later. > > But it is not all about performance. For me, writing nodejs code feels > exciting and very pleasant! The community involved is very active, eager to > help you, and all of this construct a very balanced ecosystem. > > Correct me if im wrong but I believe ASP.NET's community involves old > guys that try out something only if it has the word "enterprise" on the > description. > > Whenever i argue with a friend about performance, threads, async, sync and > stuff it always ends up with drama! Best thing you can do is tell him you > feel nice coding node and have him try it out, think of a project to do > together and have fun etc. Im sure next time he will ask you to write your > next code in node ;) > > Hope I've helped, > Dan Milon. > > > > On 07/03/2012 08:56 PM, Justin Collum wrote: > >> Had a discussion with a friend about Nodejs the other day. We are both C# >> / MVC / ASP.NET devs, with about 10 years experience. He asked me why >> someone would choose Nodejs over IIS + MVC . My argument was 1) performance >> 2) non-blocking IO. Keep in mind that I don't know a lot about node, I've >> built one small site and that's it. So my argument in favor was pretty >> short. >> >> His response: Well, if I need performance on IIS I can just bump up the >> number of threads in the thread pool. Fair point. >> >> After looking into it a bit, it seems that the big difference between IIS >> + MVC and Node is that each thread can do more in the Node world because >> of the non-blocking IO. This cuts down on context switching and makes for >> better overall performance. Add that to the "one language to rule them all: >> coffeescript" factor and it's a clear win to me. >> >> Is that a fair summary of the performance advantages of Nodejs over IIS >> + MVC? Is there more to it? >> >> I'm aware that you can run Nodejs via IIS but my intuition tells me that >> won't be a good fit. >> -- >> Job Board: http://jobs.nodejs.org/ >> Posting guidelines: https://github.com/joyent/**node/wiki/Mailing-List-** >> Posting-Guidelines<https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines> >> You received this message because you are subscribed to the Google >> Groups "nodejs" group. >> To post to this group, send email to [email protected] >> To unsubscribe from this group, send email to >> nodejs+unsubscribe@**googlegroups.com<nodejs%[email protected]> >> For more options, visit this group at >> http://groups.google.com/**group/nodejs?hl=en?hl=en<http://groups.google.com/group/nodejs?hl=en?hl=en> >> > > > -- > Job Board: http://jobs.nodejs.org/ > Posting guidelines: https://github.com/joyent/**node/wiki/Mailing-List-** > Posting-Guidelines<https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines> > You received this message because you are subscribed to the Google > Groups "nodejs" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > nodejs+unsubscribe@**googlegroups.com<nodejs%[email protected]> > For more options, visit this group at > http://groups.google.com/**group/nodejs?hl=en?hl=en<http://groups.google.com/group/nodejs?hl=en?hl=en> > -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
