bss03

joined 2 years ago
[–] bss03 2 points 4 months ago

I think that reason would make it "Technically Yes", since False (pi = 5) implies False (cylinders exist) is (vacuously) True ("absurd premise").

[–] bss03 3 points 4 months ago (1 children)

Only if that browser somehow becomes overwhelmingly popular in a market segment BEFORE it gets JS support.

[–] bss03 1 points 4 months ago

The run time still has to assign a semantics to it, even if that semantics is a fatal error. In a compiled language, you can prevent the run time from having to assign any semantics by eliminating the error condition at compile time.

[–] bss03 1 points 4 months ago (1 children)

Python also has no separate compilation step and yet it did not adopt this philosophy

Yes. It did. It didn't assign exactly the same semantics, but it DOES assign a run time semantic to min().

[–] bss03 5 points 4 months ago (1 children)

Cause it's just a (n-1)-dimensional ball extruded along the remaining axis, or do all 3d shapes exist on (nearly) all 3d metrics?

[–] bss03 6 points 4 months ago

Absolutely. It might be the janitorial work of "the academy" but that work is important.

I'm actually not sure if the problem right now is funding that work or the unfortunate fact that there's rarely any accolades for it. And "publish or perish" is still too true.

[–] bss03 11 points 4 months ago (5 children)

Do cylinders even exist in metrics where pi = 5 ?

[–] bss03 6 points 4 months ago (3 children)

JS is the machine code of the web. Fewer and fewer people might write it directly, but it will live as long as the web platform does.

[–] bss03 4 points 4 months ago (5 children)

Not having a separate compilation step absolutely affects error handling. With a compilation step, you can have errors that will only be seen by and must be address by a developer prior to run time. Without one, the run time system, must assign some semantics to the source code, no matter how erroneous it is.

No matter what advisory "signature" you imagine for a function, JS has to assign some run time semantics to that function being called incorrectly. Compiled languages do not have to provide a run time semantics to for signatures that can be statically checked.

[–] bss03 1 points 4 months ago* (last edited 4 months ago)

All functions built with function name(args) { body } syntax have a length based on the form of args. Other ways to create functions might set length (I'm not sure). Most of the functions provided by the runtime environment do have a length, usually based on the number of "required" arguments.

[–] bss03 35 points 4 months ago (7 children)

So, the language isn't compiled (or wasn't originally) so they couldn't make min() be an error that only a developer saw, it has to be something that the runtime on the end-user system dealt with. So, it had to be assigned some value. Under those restrictions, it is the most mathematically sound value. It makes miniumum-exactly-2(x, min(<...>)) be exactly the same as min(x, <...>), even when the "<...>" has no values.

As a developer, I see a lot of value in static analysis, including refusing to generate output for sufficiently erroneous results of static analysis, so I don't like using JS, and the language that I tinker with will definitely have a separate compilation step and reject the equivalent of min(). But, if I HAD to assign something like that a value, it probably would be a representation of infinity, if we had one (probably will due to IEEE floats).

HTH

[–] bss03 1 points 4 months ago (1 children)

Oh, I may have violated distancing protocols then. My personal delay device doesn't have sub-microsecond accuracy. Should I will have gotten a test for time-invariant COVID ?

view more: ‹ prev next ›