The only reason why Node is taken seriously is the fact that beginners only have to learn one language and switching languages initially can be a deal breaker for many.
I have personally taught programming to a few people, and most people are really motivated if they get to see a usable web app rather then a terminal program, and for a web app NodeJS + Browser is far easier to teach then PHP,Rails,.. + Browser in my experience. They never really understand callbacks initially, but they can mash things up to see something on their screen.
Another big thing about Node is the boilerplate to run NodeJS programs (compared to PHP where installing apache can be a nightmare for beginners, and makes it much harder to understand the big picture)
Async is hard, and takes a long time to breath in I agree. But closures + callbacks nearly look similar to to sync code in other languages. Async code looks much more scary in other languages
I have personally taught programming to a few people, and most people are really motivated if they get to see a usable web app rather then a terminal program, and for a web app NodeJS + Browser is far easier to teach then PHP,Rails,.. + Browser in my experience. They never really understand callbacks initially, but they can mash things up to see something on their screen.
Another big thing about Node is the boilerplate to run NodeJS programs (compared to PHP where installing apache can be a nightmare for beginners, and makes it much harder to understand the big picture)
Async is hard, and takes a long time to breath in I agree. But closures + callbacks nearly look similar to to sync code in other languages. Async code looks much more scary in other languages