Ryan Peterman
๐ค SpeakerAppearances Over Time
Podcast Appearances
And because they might do it, and to give you an example, which is really astonishing about R is, in R, for instance, the brace that you use to define a block is an operator that can be overridden and the user can redefine.
so they can make braces mean something else.
So that means when you see a brace in code, you can't just be like, I know what this is.
I can move on.
You have to be like, no, I need to look up and check, did the user redefine this?
I think it's brace and not parenthesis, but it's been a while, so I haven't dug in.
But it may also be parenthesis, or it's possible I flipped them.
We can check offline and see whether my memory is good.
But you just wind up with so much stuff like this that is so like,
may be changed, and you don't know whether it changed.
So you need to go check whether it changed.
And the checks are very expensive, especially if you're doing something like adding two 64-bit integers.
That's like one machine cycle.
It is one machine cycle.
But a check, does addition still mean what I think it is?
Could be hundreds to thousands of machine cycles.
And so you wind up swapping in things that are very inefficient.
places that you don't need.
And this is particularly, R is amazing.
There's this amazing paper by a couple of students and a senior professor named Jan Vitek, but it's about the design, called something like Evaluating Design of the R Programming Language.