3 ms·
TL;DR, stack frame all the things. I'm joking (kind of), but I was reminded of this talk about implementing TeX in Clojure [0], in which you are shown the pain
by gavinpc 12y ago
TL;DR, stack frame all the things.
I'm joking (kind of), but I was reminded of this talk about implementing TeX in Clojure [0], in which you are shown the pains Don Knuth took to avoid subroutines calls, ostensibly for performance reasons—such heavy macro usage, for example, that the speaker calls the language a "dialect" of Pascal. Now we have the maxim about programmer cycles versus machine cycles, which is itself getting a little dated because of scale.
Anyway, fun times to be in this field. You might also like the "It's 1982 and I can't believe we're still..." part of the talk, (a.k.a. "Everything's amazing and nobody's happy") for putting things into perspective.
[0] https://www.youtube.com/watch?v=824yVKUPFjU https://www.youtube.com/watch?v=824yVKUPFjU
EDIT Time is on their side though... with tail-call optimization coming to ES6 (just about the only "good part," according to Crockford).