Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Proceeds to assist with the most unimaginably complex system known to man to solve fancy forms and partial refreshes.


Compared to what? Ruby? Python? .net? Java?

Maybe Go can claim to be simpler. But there are many runtimes that are popular and equally complex as nodejs.


Compared to not doing fancy forms and partial refreshes?

I know, I’ll let myself out.


Node.js is a server framework for quickly building small systems like server daemons with good performance and security. It's interesting how much over-engineered it has become (blaming JavaScript) considering that it's now mainly a compiler target for web frameworks.


It's so easy to blame JS though. I recently rediscovered that it can't do divide by zero right. And it even does it wrong in two different ways:

    > 1/0
    Infinity

    > 0/0
    NaN


JavaScript's behaviour in this case is consistent if we accept that JavaScript would always rather compute the next-best gibberish than throw an error.

While `1 / 0` is not a valid operation, it can be interpreted using limits. If `x` approaches 0, then `1 / x` will approach `Infinity`, hence JavaScript's result of this operation.

But with `0 / 0`, there is no unambiguous interpretation, so JavaScript defaults to `NaN` as its indicator for when a number is expected, but not received in valid form.

I'm not defending this behaviour of the language, just pointing out that there aren't "two different ways" of wrong behaviour at display here.


That's not the fault of JavaScript, but of IEEE-754 floating point math. The behavior you're seeing is per design.


That's a huge copout, and thankfully not one Python follows.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: