Anything can change at any time in Smalltalk.
ifFalse: alternativeBlock
"Answer the value of alternativeBlock. Execution does not actually
reach here because the expression is compiled in-line."
^alternativeBlock value ~
"Creating blocks in Smalltalk has always been a potential source of performance problems. … In Resilient, we have restricted blocks to be last
in-first-out (LIFO)…"https://blog.bracha.org/resilient-paper.pdf
~
"Digitalk’s Team/V unobtrusively introduced a non-reflective syntax…"But you’re not wrong in general. Even for Python there’s PyPy, with a JIT ~3x faster than CPython.
Also to note that even in that regard, Java happens to be more dynamic that people think, while the syntax is C++ like, the platform semantics are more akin to Smalltalk/Objective-C, hence why a JIT with such a background was a great addition.
There is enough stuff to fill at least one semester.
people really don't know enough about this to be talking about it with such confidence...
There's lots of Python code out there that relies on not using slots. If you're making a JIT, you can't assume that all code is using slots.