Just because JS' _this_ doesn't behave like in other languages doesn't make it bad, I mean it's behaviour is well defined.
JavaScript is more dynamic than most languages and yes this may be hard to grasp for the average developer, especially when they come from languages that are considered "more mature".
Yet we still struggle with making sure we've got all of the tools that could check the mistakes I have accidentally made before I had shipped the code.
XMPP had been defined as formally: where have we ended up with it now?
JavaScript is more dynamic than most languages and yes this may be hard to grasp for the average developer, especially when they come from languages that are considered "more mature".