One of my goals for #mollytime is to avoid introducing a concept of errors into the language.
-
@aeva certainly my experience - in essence, the function of most types of compile-time checking is to intentionally increase the minimum Hamming distance in the set of inputs the compiler accepts
@rygorous @aeva which is at odds with the design goal of decreasing the levenshtein distance to making a meaningful change to the program.
i guess it boils down to: what's the worst harm a typo can do in your language?
funny then to consider the shell which has no types and permits casual mistakes of devastating proportions.
-
@aeva I think one of the benefits is that declarations are more self documented. In statically typed languages, I can go read a function signature or variable declaration and know all the information about it. I don’t need to go read the return statement of a function to know what type a variable will have. I don’t need to research what arguments are valid for a function, it just says it in the prototype.
@Camwin oh yeah totally like, this is super obvious:
float Fnord(float A, float B, float C, float& D, void*** E, int F);
-
@Camwin oh yeah totally like, this is super obvious:
float Fnord(float A, float B, float C, float& D, void*** E, int F);
-
@rygorous @aeva which is at odds with the design goal of decreasing the levenshtein distance to making a meaningful change to the program.
i guess it boils down to: what's the worst harm a typo can do in your language?
funny then to consider the shell which has no types and permits casual mistakes of devastating proportions.
-
@morten_skaaning @rygorous @aeva isn't that a big part of every compiler?
-
@morten_skaaning @rygorous @aeva isn't that a big part of every compiler?
-
@morten_skaaning @lritter @rygorous can you check if it halts while you're at it?
-
@morten_skaaning @lritter @rygorous can you check if it halts while you're at it?
@aeva @morten_skaaning @lritter The Halting Problem is oversold.
1. It's not actually generally hard to prove whether any particular invocation will halt. (Just hard to give a single approach that works on everything.)
2. The HP is not even theoretically hard if you expand the set of valid answers to be { yes, no, not sure }
3. practically speaking, the answer is always yes because at some point there will be a sufficiently long power outage or, more likely, forced OS update -
@rygorous @aeva which is at odds with the design goal of decreasing the levenshtein distance to making a meaningful change to the program.
i guess it boils down to: what's the worst harm a typo can do in your language?
funny then to consider the shell which has no types and permits casual mistakes of devastating proportions.
-
@JamesWidman @lritter @rygorous that'll definitely save me from accidentally transposing the source and destination paths on various commands to exciting effect
-
@JamesWidman @lritter @rygorous that'll definitely save me from accidentally transposing the source and destination paths on various commands to exciting effect
@aeva @JamesWidman @lritter see, if this was typesafe with proper constructors that could not happen:
cp(ThisIsTheSourcePath("foo"), ThisIsTheDestinationPath("bar"));