Hacker Newsnew | past | comments | ask | show | jobs | submit | toolslive's commentslogin

Satanic? never assume malice where incompetence suffices

Don’t assume either malice or incompetence when it’s just that you don’t understand the context and the reasons things are this way.

The reason is that the language was designed in a week with a "product manager" pushing the developer's design into something that only has "is a programming language" in common with it during that week.

The sooner that abomination is killed, the best.


Prototype based languages existed before Javascript and even before Self. It wasn’t an adhoc or new idea.

The prototype ("Mocha") was created in a week, but the language went through multiple iterations. (See https://www.wirfs-brock.com/allen/jshopl.pdf)

Honestly, I can point you to languages with worse design than JS.

There was an idea (perhaps from BASIC) that "scripting" means permissive. Instead of failing fast, it was designed to fall back to something that works (e.g., '1'+1=2). That's a terrible design decision, and JS tried to reverse it in every future iteration.

The other two big issues for me were: trying to imitate Java (with the new keyword, instanceof, and null). The prototype mechanism that JS took from Self is simpler and easier to understand if you leave out those constructs.

The other issue was the lack of modules. That was part of the idea that JS was for short, interactive scripts on a page; the initial version didn't plan for how we use it today.

Other than that, I prefer JS over Perl, C, C++, PHP, shell scripting, or TCL.

Edit: Actually, '1'+1 is '11' in JS (facepalm), but '1'*2 converts to a number. That's why it was a terrible idea. But, to be fair, many "scripting" languages did that kind of type coercion. I guess that language designer hated cryptic compile errors.


More and more, this has been weaponised: "No, we're not evil! We never intended for this to happen. It was just an accident" Is something I hear too often

Not only that: `-ffast-math` might change the result of flops when the arguments are regular floats too. (It abandons IEEE754 compliance)

probably the:

  ```
       ...
       bla, err := doSomething(...);
       if err != nil {
           ...
       }
       ...

  ```
pattern.

in C that's

...

    ...

    err = do_someting(&bla, ...);

    if err != 0 {

        ...

    }

    ...
...

It's not that different


C was 1972, and golang was 2007. It's not that no new concepts <cough>exceptions</cough> were discovered in between. A pen is more elegant than a chisel.

not so classical after all I guess

He didn't say he didn't hate C too.

That's fair; in my mind "classical software engineer" means C, but that may very well be a bad assumption.

For some of us, it's Fortran, but fair point. :-)

Here in Belgium, there's "a bit" of asymmetry: the price per kWh I pay from the grid is roughly 3 times of what I get when I inject. I also have a fixed cost per year to have the right to inject. I knew this before I installed solar and have a home battery, so it only happens during summer.


When I had my house in Belgium we had ours just before that change. Our meter (analogue) rolled back.

I know they were phasing that out, but I don't remember if it was phased out for everybody, even the ones grandfathered in?


2 things. - meter rolling backward: it's completely gone. You cannot refuse the replacement and they have ben replacing them since 2021.

- I was wrong: the asymmetry is a factor 6 iso a factor 3. :(


get a "Stella 0.0" and tell me it tastes terrible.


Stella - the Belgian equivalent to Budweiser.


In Belgium, Stella is fully accepted, contrary to fe "Cristal" or "Maes". Of course, it's no "Jupiler".


lol that stuff is absolutely awful


It is. Actually the best candidates for 0% seems to be the IPA beers as the bitterness adds this little "punch" classic zero alcohol beers seems to suffer from.


it was called "Slow arse". This was because it was rather reluctant in handing out resources (memory fe). Having fought it, I remember the system APIs being really well defined and picky (which was good). At one point, the C compiler had some identity issues "am I 32 bit, or 64 bit?"


There also was the Corsican wildcat[0] which briefly was a new species and now has "uncertain taxonomic status" (whatever that may mean).

[0] https://en.wikipedia.org/wiki/Corsican_wildcat


pattern is there: first hit a public place (market, ...), then when people are scrambling to help, hit them again. "double-tap". Seen in Gaza, Ukraine, Syria, Yemen, ... It's quite cynical, the topic has its own Wikipedia page:

https://en.wikipedia.org/wiki/Double-tap_strike


Where does the article you linked say "Public Place"?

You just linked to a standard military tactic


your body needs exercise or you end up an obese couch potato. Your mind is similar: it needs exercise or you end up a dunce.


Consider applying for YC's Winter 2027 batch! Applications are open till November 2.

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

Search: