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

Implicit coercion is always iffy, and JS's coercion rules are broken along the same lines as PHP's, where == and === have to be carefully managed. There's no actual identity check, only two different strengths of equality.

Booleans coercing to strings instead of strings coercing to booleans is weird.

There's no operator overloading. Sometimes this is useful, in languages which have it. Notably, there's no way to override how equality, coercion, and arithmetic are handled.

There are no metaclass operations. The type model is incomplete; it's not possible to create new first-class types or query type information respecting inheritance. For that matter, there's no blessed way to have inheritance. Makes sense since the language doesn't have classes per se, but it's kinda annoying in an object-based language to not be able to actually examine objects in a unified way.

Those are the ones off the top of my head. There are others, but they're matters of opinion.



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

Search: