Comment by jameshart

Comment by jameshart 2 days ago

4 replies

Right, but it exists and looks correct and runs and won’t trigger any kind of error if you write code that uses it.

This is what we call a ‘foot gun’.

hombre_fatal 2 days ago

On the other hand, you notice it the second you go use the software you just wrote to ensure it works.

So it’s more like a foot dollar store water gun.

  • const_cast 2 days ago

    No, it's a proper footgun, same as dereferencing a nullptr in C++. You'll notice that too - doesn't mean it's not a footgun.

    And, in fact, most C++ compilers today will actually warn you when you derefernence a nullptr in a stupid, obvious way. Evidently, JS has not caught up to this incredibly sophisticated technology /s.

    • jameshart 2 days ago

      JS has caught up - it has a sophisticated compilation and linting ecosystem called ‘TypeScript’.

      Which at least will tell you you’re using a deprecated API, but won’t overcome the dumb API naming choices JavaScript blindly imported from Java

      • const_cast 2 days ago

        We've come full circle. The build systems for JS, a scripting language, make C++ compilation look trivial. And, unfortunately, that's reflected in the compile times.