Message from JavaScript discussions
November 2017
— An object used over and over, generally mutated over and over without being replaced or duplicated
Good example is sprites in Super Mario Brothers or something, where each "brick" tile isn't a seperate instance of an object, but rather one instance rendered with an offset over and over
— Saves memory
— Not at all, now everyone is able to code easily
— High level langs are a 1:1 relation to resources
— Fit more in memory, more abstractions
— You wouldn't run Ruby or Java on an Arduino... but what if it had 8GB of RAM and a 3GHz processor
— But that's a problem too... abstraction fits into 2 categories (well, two main ones at least). Abstraction via convolution and abstraction via mux/demux
— A lot of the time, people mistake convolution for abstracton, and you can run into badly designed libs/frameworks this way where it's easier to poke the innards of the thing than it is to use the provided interfaces
— Like those asserts I wrote, that is abstraction via thunk mux/demux
— User experience
— Either they can get a cryptic error which may not explain the type is wrong althrough it is the cause of the error, or they get a nice message clearly explaining it