News for hackers. Stuff that matters.
Re:JavaScript Errors: An Exceptional History by bagol on Tuesday November 05, 2019 @11:15AM (#21453684)
I feel bad for javascript for it always blamed for the fault of the environment where it lives.
Re:JavaScript Errors: An Exceptional History by coldtea on Tuesday November 05, 2019 @11:32AM (#21453902)
The language didn't have other error reporting mechanisms, traces or exceptions, so it was not "the environment where it lived", it was the language itself...
Re:JavaScript Errors: An Exceptional History by duxup on Tuesday November 05, 2019 @11:30AM (#21453867)
And to some extent the acts of bad actors using it.

I just got into webdev a year or so ago and on HN and other places the moral panic about JavaScript on the web is endless because some jerks are out there doing it wrong and everyone thinks of their US local news website (those are a mess) when they talk about it ... and they want to throw the baby out with the bathwater. Meanwhile I'm just trying to write some handy web apps that do it right but can't escape the "omg javascript" medium type articles.

I wonder if folks write some nasty stuff in C ... do people blame C?

Re:JavaScript Errors: An Exceptional History by blotter_paper on Tuesday November 05, 2019 @02:42PM (#21455892)
> the moral panic about JavaScript on the web is endless because some jerks are out there doing it wrong

To be fair, the language allows them to do it wrong by default with all that implicit type conversion and whatnot -- even in the original equality operator! You can write good JavaScript, but you have to purposefully avoid weird behavior that just isn't present in some other modern languages like Python and Ruby. JavaScript had a weird history, got expanded upon accidentally (i.e. through some browser vendor or another deciding to implement something) many times, and has always valued backwards compatability more than languages that feel comfortable expecting the user to install the relevant runtime.

Re:JavaScript Errors: An Exceptional History by strbean on Tuesday November 05, 2019 @05:02PM (#21457221)
Python has

    > a = 100
    > a is 100
    True
    > a = 1000
    > a is 1000
    False
Re:JavaScript Errors: An Exceptional History by blotter_paper on Tuesday November 05, 2019 @05:25PM (#21457435)
CPython stores integers above 256 as individual pieces of data, but a normal Python script doesn't. I think it's technically undefined behavior.
Re:JavaScript Errors: An Exceptional History by peteradio on Tuesday November 05, 2019 @01:42PM (#21455307)
People complain about c all the time. Javascript is 20% footgun.
Re:JavaScript Errors: An Exceptional History by mishac on Tuesday November 05, 2019 @01:22PM (#21455104)
People totally blame C (and C++). There's entire classes of use-after-free and buffer flow errors not possible in other languages, which is what leads to people advocating for Rust or Go (or ADA for that matter, though it's obviously not popular anymore).
Re:JavaScript Errors: An Exceptional History by purple_ducks on Tuesday November 05, 2019 @02:01PM (#21455482)
http://www.devsanon.com/rants/stupid-javascript/

Until Javascript removes the stupid from it's language, it will remain an embarrassment to developers. Completely inexcusable.

Re:JavaScript Errors: An Exceptional History by reificator on Tuesday November 05, 2019 @06:03PM (#21457757)
> http://www.devsanon.com/rants/stupid-javascript/

> Until Javascript removes the stupid from it's language, it will remain an embarrassment to developers. Completely inexcusable.

From that link:

> > typeof NaN

> > "number"

> > NaN == NaN

> > false

> > Ok, so the type of Not a Number is a number? And it also does not equal itself? Oh, well. Let’s try equality with other stuff.

Compliance with IEEE 754 is stupidity that is completely inexcusable? That NaN is non-reflexive is certainly irritating but a standards-compliant language is expected to adhere to that.

Re:JavaScript Errors: An Exceptional History by mr_toad on Tuesday November 05, 2019 @06:27PM (#21458000)
Makes sense to me. 1/0 is not the same as 2/0, etc.